Embedded Control Systems in C/C++: An Introduction for Software Developers Using MATLAB

In this chapter, I cover the final steps in the development and test processes for embedded control systems. These topics include the addition of nonlinear features to the controller, the integration of the controller into the larger embedded system, and thorough testing of the complete system.
After completing a linear controller design with the techniques discussed in previous chapters, it is often necessary to include nonlinear elements such as limiting and gain scheduling to achieve satisfactory performance in all situations. These design components compensate for nonlinearities within the plant and for variations in a system's operational environment.
The control system must be integrated into the larger structure of the embedded system's software. The techniques for doing this vary depending on the operating system in use, or the lack thereof. Whether the embedded system's software environment supports real-time multitasking or uses a single thread of execution that polls a real-time clock, the controller algorithm must be carefully integrated with the other elements of the system software.
Following the integration of the controller into the embedded software environment, it is important to perform thorough testing of the complete system. System-level testing must ensure correct control system operation in normal situations, as well as under extreme conditions. I discuss two approaches for performing complete system-level tests in this chapter: simulation and operational testing.
System-level simulation is a valuable tool for performing many types of tests in a comparatively quick and low-cost manner. With simulation, it is possible to rapidly and...