Project by Tereza Almášiová: Programming of a neural network on embedded systems

The rapid advancement of artificial intelligence (AI) and machine learning (ML) has significantly transformed various fields, particularly process control. Traditionally reliant on human capabilities, these areas now benefit from technologies enabling machines to perform tasks autonomously, thereby enhancing the efficiency and effectiveness of control systems. This study explores the feasibility of employing neural networks on microprocessors as replacements for traditional analytical algorithms, which are often complex and challenging to implement.

Project Objectives

The primary goal of this research was to program the ESP32-S3 microprocessor to perform two fundamental functions: data collection and process control using hardware solutions, along with the implementation of neural network learning. The overall aim was to train the neural network to emulate the behavior of traditional controllers and prepare it for use in real-world control systems.

Methodology

Figure 1: ESP32-S3.

The ESP32-S3, chosen for its dual-core system, allocated one core to process control tasks while the other was dedicated to training neural networks. FreeRTOS facilitated efficient management of this dual-core system, enabling the application of neural networks to simulated processes. The neural network was designed with adjustable weights and biases to simulate the input behavior of a traditional controller as accurately as possible.

The training process began with data generation and simulation of linear quadratic regulator (LQR) control. Iterative adjustments to the network parameters were made to optimize its performance. The neural network weights were initially randomized and iteratively adjusted to minimize the difference between the LQR controller output and the neural network output.

Results and Insights

Figure 2: Setup 1 - States vs. Time.
Figure 3: Setup 1 - Control Inputs vs. Time.
Figure 4: Setup 2 - States vs. Time.
Figure 5: Setup 2 - Control Inputs vs. Time.

The experiments provided valuable insights into the performance and accuracy of the neural network under various conditions:

  1. Evaluation of the Initial Model: The baseline model with a batch size of 1 demonstrated reasonable accuracy in replicating the behavior of the LQR controller. However, this model was based on simulation rather than real processes and served as a starting point for further improvements.
  2. Impact of Parameter Variation: Significant variations in network configurations such as batch size, number of iterations, and training datasets had a profound effect on performance. Larger batch sizes and increased iterations generally improved accuracy but at the expense of longer training times.
  3. Optimal Model Configuration: The most accurate model was achieved with a batch size of 10, 100 iterations, and testing of 10,000 random weights. This configuration closely matched the behavior of the LQR controller, emphasizing the critical role of parameter optimization in enhancing performance.
  4. Effect of Training Data Quality:     Improving the quality and quantity of training datasets enhanced the neural network's ability to generalize and accurately replicate the behavior of the LQR controller.

Future Steps

Future efforts will focus on transitioning from simulated environments to real-world laboratory processes. Key objectives include:

  • Implementation of Real Processes: Deploying the neural network on physical laboratory systems to validate its performance in real-time control scenarios.
  • Expansion of Architecture: Enhancing the neural network's architecture to handle more complex control tasks and adapt to dynamic operational conditions.
  • Algorithm Optimization: Incorporating advanced optimization algorithms to streamline the training process and improve overall efficiency.

Conclusion

In conclusion, this study has laid a solid foundation for integrating neural networks into embedded systems for process control. The results underscore the potential of AI-driven approaches to enhance automation and efficiency in industrial applications. Continued development and refinement will further validate and optimize these technologies for broader deployment in real-world settings.