?? c6exsf1.m
字號:
function [sys,x0,str,ts] = c6exsf1(t,x,u,flag,A,B,C,D)
switch flag,
case 0 % 初始化設(shè)置
[sys,x0,str,ts]=mdlInitializeSizes(A,D);
case 1 % 連續(xù)狀態(tài)變量計算
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 進行初始化,設(shè)置系統(tǒng)變量的大小
%==============================================================
function [sys,x0,str,ts] = mdlInitializeSizes(A,D)
sizes = simsizes; % 取系統(tǒng)默認設(shè)置
sizes.NumContStates = size(A,1); % 設(shè)置連續(xù)變量個數(shù)
sizes.NumDiscStates = 0; % 設(shè)置離散狀態(tài)個數(shù),因為無離散狀態(tài),故設(shè)其為0
sizes.NumOutputs = size(A,1)+size(D,1); % 設(shè)置輸出變量個數(shù),為D的行數(shù)加系統(tǒng)的階次
sizes.NumInputs = size(D,2); % 設(shè)置輸入變量的個數(shù),為D的列數(shù)
sizes.DirFeedthrough = 1; % 輸出量的計算取決于輸入量D
sizes.NumSampleTimes = 1; % 采樣周期的個數(shù),
sys = simsizes(sizes); % 設(shè)置系統(tǒng)的大小參數(shù)
x0 = zeros(size(A,1),1); % 設(shè)置為零初始狀態(tài)
str = []; % 設(shè)置字符串矩陣
ts = [-1 0]; % 采樣周期設(shè)置,前面的-1表示繼承輸入信號的采樣周期
%==============================================================
% mdlDerivatives 計算系統(tǒng)的狀態(tài)變量
%==============================================================
function sys = mdlDerivatives(t,x,u,A,B)
sys = A*x + B*u;
%==============================================================
% mdlOutputs 計算系統(tǒng)輸出
%==============================================================
function sys = mdlOutputs(t,x,u,C,D)
sys = [C*x+D*u; x]; % 系統(tǒng)的增廣輸出
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -