how to define mpc object's plant as state space ?
    5 ビュー (過去 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 で Refinement についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!