Why are the output constraints not applied when using MPC Controller?
2 views (last 30 days)
Show older comments
I am trying to develop a Model Predictive Controller using a simple Suspension Model. I defined a state space model and then used 'mpcDesigner' to design the controller. As I see, the constraints assigned to the outputs using the toolbox are not being assigned when I simulate the model.
% Define the matrices A, B ,C and D in the continuous state
A = [0 1 0 -1; (-cc/mc) (-dc/mc) 0 (dc/mc); 0 0 0 1; (cc/mw) (dc/mw) (-cw/mw) ((-dc-dw)/mw)];
B = [0 0; 0 (1/mc); -1 0; (dw/mw) (-1/mw)];
C = [1 0 0 0;(-cc/mc) (-dc/mc) 0 (dc/mc); 0 0 -cw -dw];
D = [0 0; 0 0;0 0];
%D = [0 (1/mc); dw -1];
% state space
sys = ss(A,B,C,D,'StateName',{'Suspension Deflection' 'Chassis Velocity' 'Tire Deflection' 'Wheel Velocity'},...
'StateUnit',{'m','m/s','m','m/s'},...
'InputName',{'Road Disturbance', 'Actuator Force'},...
'InputUnit',{'m/s','N'},...
'OutputName', {'Suspension Deflection','Chassis Acceleration','Dynamic Wheel Load'},...
'OutputUnit', {'m','m/(s^2)','N'});
Then I used 'mpcDesigner' and defined the variables from MPC Structure
Then from the 'Tuning' Tab, I clicked on 'Constraints' to define my constraints on manipulated variable and the outputs
Then I exported the simulink model and excited it with a sinewave of Amplitude '3' (physically unrealistic value for an excitation)
When I run the simulation for 10 seconds and check the output scope block, I see this
As seen, the first plot output definitely does not lie between -0.08 and 0.08 as specified when designing the controller.
Am I doing anything wrong or how can I limit the output?
0 Comments
Answers (0)
See Also
Categories
Find more on Linear Plant Specification in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!