Neural Network Model Predictive Control issue with Simulink pneumatic actuation system
8 views (last 30 days)
Show older comments
Hi all,
I am working on a project which aims to control a pneumatic actuator with the 'Neural Network MPC' block found in the Simulink 'Deep Learning' toolbox.
I have reduced my model to the simplest model possible which is a frictionless piston with a cylinder of 0.1m in length, with a variable pressure (0.3~2.3 bar) on side A and a constant pressure of 2 bar on the opposite side of the piston, side B. Because the surface areas of the two sides are different, the equilibrium pressure is approximately 1.2828 bar acting on side A.
I have 3 training sets of 10000 samples each with a sampling interval of 0.01, 0.001 and 0.0001 seconds respectively and my NN for plant identification contains 100 nodes in the hidden layer with 20 delayed inputs & outputs. Given all of the above, I get low validation errors in the range of 10^-5 mean squared error for the 0.01 s dataset and up until 10^-9 for the 0.0001s for plant identification.
I have also applied the NPC controller with the default settings, with a cost horizon of 7 and control horizon of 2. The link to the documentation page is the following: https://uk.mathworks.com/help/deeplearning/ug/design-neural-network-predictive-controller-in-simulink.html
The issue I am having is that the response is extremely poor for all datasets when the standard controller settings are applied, which is surprising given the low validation errors for plant identification and the fact that every simulation takes ages to run. For example, a 1 second simulation on the 0.0001s dataset takes around 6 hours, and the response is shown below:

I had assumed that the error may lie with the controller parameters, so I doubled the cost horizon and control horizon, but I am getting a similar response in my current simulation (which is also taking around 6 hours):

It seems to me something is clearly wrong as my system is not particularly complex, plus I have a good NN model of the plant and ample cost horizons for my controllers. My only thought is that the system is very sensitive to the pressure input on side A, so even a small deviation due to an error can cause a great pressure imbalance, leading to an unstable system. Can anyone else think of a reason as to why the perfromance is so poor no matter what I try? Many thanks!
Also, the picture below shows my simple Simulink model. Again, I reiterate that I assume the piston to be frictionless, so it is essentially a force balance due to opposing pressures, which happens in the Matlab function block 'Net driving force2'.

0 Comments
Answers (0)
See Also
Categories
Find more on Linear Plant Specification in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!