how to define mpc object's plant as state space ?
1 回表示 (過去 30 日間)
古いコメントを表示
how to define the mpc object's plant as state space rather than transfer function. i tried to run this code but not working.
% Define system matrices (Ad, Bd, Cd, Dd) for the quadruple tank system
Ad = [-0.0173190, 0, 0.026219, 0; 0, -0.0113455, 0, 0.017708; 0, 0, -0.026219, 0; 0, 0, 0, -0.017708];
Bd = [0.0395, 0; 0, 0.03598; 0, 0.076375; 0.06378, 0];
Cd = [1, 0, 0, 0; 0, 1, 0, 0];
Dd = [0, 0; 0, 0];
% Define prediction and control horizons
predictionHorizon = 10; % Adjust as needed
controlHorizon = 3; % Adjust as needed
% Define constraints (input and state constraints)
inputConstraints = [-10, 10; -10, 10]; % Adjust as needed
stateConstraints = [0, 40; 0, 40; 0, 40; 0, 40]; % Adjust as needed
% Define cost function weights
Q = eye(4); % State weight matrix (adjust as needed)
R = eye(2); % Input weight matrix (adjust as needed)
% Initial state
x0 = [10; 10; 10; 10]; % Adjust the initial state as needed
% MPC setup
mpcobj = mpc(Ad, Bd, Cd, Dd, 'PredictionHorizon', predictionHorizon, 'ControlHorizon', controlHorizon);
0 件のコメント
採用された回答
Sam Chak
2023 年 10 月 19 日
Hi @AMAN
There was an incorrect syntax issue with mpc(), but it is now fixed below:
% Define system matrices (Ad, Bd, Cd, Dd) for the quadruple tank system
Ad = [-0.0173190, 0, 0.026219, 0; 0, -0.0113455, 0, 0.017708; 0, 0, -0.026219, 0; 0, 0, 0, -0.017708];
Bd = [0.0395, 0; 0, 0.03598; 0, 0.076375; 0.06378, 0];
Cd = [1, 0, 0, 0; 0, 1, 0, 0];
Dd = [0, 0; 0, 0];
sys = ss(Ad, Bd, Cd, Dd) % <-- added this
% Define prediction and control horizons
predictionHorizon = 10; % Adjust as needed
controlHorizon = 3; % Adjust as needed
% Define constraints (input and state constraints)
inputConstraints = [-10, 10; -10, 10]; % Adjust as needed
stateConstraints = [0, 40; 0, 40; 0, 40; 0, 40]; % Adjust as needed
% Define cost function weights
Q = eye(4); % State weight matrix (adjust as needed)
R = eye(2); % Input weight matrix (adjust as needed)
% Initial state
x0 = [10; 10; 10; 10]; % Adjust the initial state as needed
% MPC setup
ts = 0.1; % <-- added this
mpcobj = mpc(sys, ts, predictionHorizon, controlHorizon) % <-- fixed this
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Model Predictive Control Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!