Why are the output constraints not applied when using MPC Controller?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Linear Plant Specification finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!