PID controller

A proportional–integral–derivative controller (PID controller) is a control loop feedback mechanism which is widely used in industrial control systems. A PID controller is a three component controller having proportional, integral and derivative terms. A PID controller continuously calculates the error value as the difference between a desired set point and a measured process variable and applies a correction based on the proportional, integral, and derivative terms.

An Auto-tuning PID controller is simply the adjustment of its control parameters (proportional gain, integral gain, derivative gain) to equal the optimum values for the desired control response. Ziegler–Nichols method for auto-tuning is by far the most common method in practice.

MatDeck provides a PID controller for real-time operations and control with the communication where its system is implemented through the TCP/IP channel. The PID controller can be used in the graphical mode by invoking the PID Controller widget using the function pid controller, widget(). In the graphical mode all parameters are set by choosing the corresponding options. The proportional, integral, and derivative gains can be entered manually or they can be determined by auto-tuning. The auto-tuning is based on the Ziegler–Nichols method, with the following different controllers: p, pi, pid, less overshoot, no overshoot, and Pessen integral. The PID controller widget contains the graph where you can see the value of the measured processes variable versus the set point.

In order to illustrate the PID controller in real-time we have implemented the three different systems as software models which communicate with the PID controller trough the TCP/IP channel. These models are:

  • Spring model – PID is used to control the position of the object that is attached to the spring by controlling the acting force.
  • Heater – PID is used to control the temperature of the system by switching the heater on or off.
  • DC motor speed – PID is used to control the speed of the DC motor by controlling voltage.

Examples