Control systems engineering requires knowledge of at least two basic components of a system: the plant, which describes the mathematically modeled behavior of your system, and the output which is the goal you are trying to reach. A control system which has become commonplace in the automotive industry is the cruise control system: an output is programmed by the driver, and the control system has to manage all of the vehicle readings in order to maintain velocity.
Because the road we drive on has imperfections, sometimes the system will have to accelerate or decelerate automatically. If you’ve ever used this feature on a car, you may have noticed that the car tends to keep a very smooth pace on the velocity you’ve chosen - it doesn’t abruptly accelerate or decelerate. This means that the vehicle’s control system is first given a desired output, then manages errors of the actual output by compensating for the input (for example, by how much fuel is provided to the engine).
Before solving for a system, we will briefly analyze the components and behavior of a system (uncompensated) and then the individual components of a PID (proportional-integral-derivative) controller. The final step would be to bring these two together and design a PID controller that will compensate the originally observed system. It is important to know that PID controllers are not the only type of compensation a designer can apply to system, but it's a great place to start and learn some of the universal characteristics that will stay true in other methods.
Note: In this tutorial we will be analyzing analog systems under ideal conditions (no noise or disturbance) and all or most the mathematical analysis will done via MATLAB.
Now that we know what a system is made of and how we will applying our PID controller, we can start to talk about the characteristics of our output signal (afterall, this is what we're monitoring and attempting to change)
Controller Design in Matlab
There are several improvements we need to do once we have our transfer function of the component (or plant) whose response needs to be improved. MATLAB includes many “engineering toolboxes” that enable engineers to create, analyze and simulate a variety of different projects. In our case, MATLAB has included the Control Systems Toolbox which includes several functions tailored for control systems engineering. They’ve also included the SISO (single-input single-output) tool, a GUI that allows for interactive system analysis and control design.
As previously mentioned, this article attempted to substitute the mathematical modeling and analysis by using visual manipulations of the system’s behavior and requirements. As our end result shows, we were able to meet our design requirements and implement the mathematical model of our compensator. It’s important to note that it would require an active circuit to implement the design our PID controller, and that there are several viable solutions to our problem. Should you decide to design your own controller for the same system, it is recommended that you choose different values for the poles and zeroes.
It is likely that you could design a controller that still meets the requirements and does not have the exact values as shown above. It becomes clear how each step impacted our end result. By simply defining the region of overshoot and adjusting our gain, we were able to achieve an output that resembled our input (albeit with an obvious error). We can immediately tell that our next attempt (PD controller) was able to dramatically improve our peak time and steady-state error. Finally, our PID was able to take what we already had defined in our PD and improve our steady-state error to our goal of zero. Becoming proficient with the SISO tool not only helps improve the time it takes to design a functional controller, but helps to ingrain the relationships of each aspect/component to our end result.
Note:This Post represents only the author's point of view. ALLPCB shall not be liable in any way for the accuracy, completeness, legitimacy or authenticity of all the information in the community.