Why are the output constraints not applied when using MPC Controller?
조회 수: 2 (최근 30일)
이전 댓글 표시
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
답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Linear Plant Specification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!