?? s4_4.m
字號:
function [sys,x0,str,ts] = s4_4 (t,x,u,flag,A,B,C,D)
switch flag,
case 0 % 初始化設置
[sys,x0,str,ts]=mdlInitializeSizes(A,D);
case 1 % 連續狀態變量計算
sys = mdlDerivatives(t,x,u,A,B);
case 3 % 輸出量計算
sys = mdlOutputs(t,x,u,C,D);
case { 2, 4, 9 } % 未定義標志
sys = [];
otherwise % 處理錯誤
error(['Unhandled flag = ',num2str(flag)]);
end
%==============================================================
% mdlInitializeSizes 進行初始化,設置系統變量的大小
%==============================================================
function [sys,x0,str,ts] = mdlInitializeSizes(A,D)
sizes = simsizes; % 取系統默認設置
sizes.NumContStates = size(A,1); % 設置連續變量個數
sizes.NumDiscStates = 0; % 設置離散狀態個數,因為無離散狀態,故設其為0
sizes.NumOutputs = size(A,1)+size(D,1); % 設置輸出變量個數,為D的行數加系統的階次
sizes.NumInputs = size(D,2); % 設置輸入變量的個數,為D的列數
sizes.DirFeedthrough = 1; % 輸出量的計算取決于輸入量D
sizes.NumSampleTimes = 1; % 采樣周期的個數,
sys = simsizes(sizes); % 設置系統的大小參數
x0 = zeros(size(A,1),1); % 設置為零初始狀態
str = []; % 設置字符串矩陣
ts = [-1 0]; % 采樣周期設置,前面的-1表示繼承輸入信號的采樣周期
%==============================================================
% mdlDerivatives 計算系統的狀態變量
%==============================================================
function sys = mdlDerivatives(t,x,u,A,B)
sys = A*x + B*u;
%==============================================================
% mdlOutputs 計算系統輸出
%==============================================================
function sys = mdlOutputs(t,x,u,C,D)
sys = [C*x+D*u; x]; % 系統的增廣輸出
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -