This work is supported by TUBITAK research grant 106E155
Communication network in a networked control system(NCS) brings about the problems of loop delay and data loss. To remove the effect of these problems, we propose a NCS where destabilizing effect of occasional data losses will be removed by using predictions of the control signal based on the current state of the plant. This means the controller must have a model of the plant within, which must be reset to the actual plant state whenever communications are possible. If communications are interrupted, between the sensor and the controller node, the control algorithm is applied to the stateof the plant model instead of the actual plant. Similarly, instead of generating one control output per sampling time, the controller generated one control output and several predicted control outputs using the plant model and sends them all at once to the actuator node. If the control output cannot be transmitted to the actuator node because of communication failure, the actuator uses the predictions transmitted earlier until communications are esteblished again.
A more detailed insight into the method, some problems encountered and their solutions can be found here.
A simulation was written to implement the above idea and try out others. Two versions were written separately for verification. Both were written using Matlab, Simulink and TrueTime toolbox, however one implementation was in Matlab native code and the other in C++. A view of the generated simulink system model can be seen below:
Here the green box simulates a network connection out of choices such as Ethernet, CAN etc. The red boxes represent the sensor, controller and actuator node. A fourth computer is included as a source of random network traffic. Finally an analog plant is included as the blue box. Although the general shape of the system is differentfrom what is given at the top, the structure is the same.
The TrueTime toolbox allows us to simulate the computers in the instruction level. Separate programs for each computer in the model must be written (in C++ or native Matlab code). The programs are simulated under a real-time task scheduler for each simulated computer node in the model.
Similarly, TrueTime allows us to simulate the network in the packet level. Accurac down to individual packet collisions and throughput can be achieved.
The main results obtained from this model compare it with a plain networked control system where no precaution is taken against packet delay and data loss. In this case, delay can also be interpreted as a loss. We slowly increased packet delay rate and simulated both systems. The results can be seen in the graphs of reference(dotted) vs. actual plant output(solid).
Standard NCS, 20% data loss.
Model Based Predictive NCS, 20% data loss.
At these rates, the performances are similar. However as we increase the loss rate standard NCS can not keep up:
Standard NCS, 60% data loss.
Model Based Predictive NCS, 60% data loss.
As loss rate is increased further, standard NCS becomes unstable:
Model Based Predictive NCS, 90% data loss.
However, model based predictive NCS can still work under these circumstances.However, there is one strange result: The model based predictive NCS cannot follow the reference signal accuretely in time. We observe that the response to the reference signal is delayed. This happens during the times of repetitive packet losses where the system literally runs open loop, without getting the reference input.
The respose to sensor noise was also investigated.
As seen above, the system can work under noisy conditions and data packet loss.
In these examples, the plant and its model were taken as identical which is hardly the case in actual systems. This is a subject of further research. These results were obtained under collaboration with my MS student Teoan Naskali, who graduated in 2006 Summer.
To experiment with the system further, we are building a hardware platform (with a grant from Turkish Science and Technology Foundation).
In this picture we can see most components of the system. Rightmost is the development computer which we produce most of the code. At the left on the brown platform is our system main components, at the moment configured as a conventional centralized control computer doing positioncontrol of two motors. A detailed shot is given below:
Starting from top left, clockwise are: Computer for doing the centralized control, patch board, two DC motors, and motor drivers. Power supply and emergency stop are not seen here, but appear in the photo at the top.
Most of the software was written by our MS student Emrah Parlakay as extracurricular activity. The system is a special real-time Linux distribution built for this system. We also wrote device drivers for the hardware used. We can now do position control of two motors on this system. As an example, the source code of the motor position control program can be found here.
In the near future, we are planing to complete the rea-time UDP packet communication, complete deriving the model of the motor and implement our algorithm to get experimental results. To do this we have purchased extra industrial computers, a network hub and several other equipment.
More information about the control computer and real-time linux can be found here.