?? m05_lisanxitong.m
字號:
function [sys,x0,str,ts] = m05_lisanxitong(t,x,u,flag)
%定義離散系統(tǒng)的S函數(shù)例子
%此S函數(shù)遵循下面的方程:
% x(n+1) = Ax(n) + Bu(n)
% y(n) = Cx(n) + Du(n)
%
% See sfuntmpl.m for a general S-function template.
%
% 生成離散線性系統(tǒng)
A=[-1 -0.05
1 0];
B=[1 -6
0 -2];
C=[ 0 2
1 0];
D=[-2 0
2 0];
switch flag,
%%%%%%%%%%%%%%%%%%
% Initialization ——初始化%
%%%%%%%%%%%%%%%%%%
case 0,
[sys,x0,str,ts] = mdlInitializeSizes(A,B,C,D);
%%%%%%%%%%
% Update ——提升離散狀態(tài)%
%%%%%%%%%%
case 2,
sys = mdlUpdate(t,x,u,A,B,C,D);
%%%%%%%%%%
% Output ———計算輸出%
%%%%%%%%%%
case 3,
sys = mdlOutputs(t,x,u,A,C,D);
%%%%%%%%%%%%%
% Terminate ——終止%
%%%%%%%%%%%%%
case 9,
sys = []; % do nothing
%%%%%%%%%%%%%%%%%%%%
% Unexpected flags——無用標示 %
%%%%%%%%%%%%%%%%%%%%
otherwise
error(['unhandled flag = ',num2str(flag)]);
end
%end m05_lisanxitong 自定義子函數(shù)結(jié)束
%以下是各子函數(shù)模塊
%=======================================================================
% mdlInitializeSizes——初始化子函數(shù)
% Return the sizes, initial conditions, and sample times for the S-function.
%=======================================================================
%
function [sys,x0,str,ts] = mdlInitializeSizes(A,B,C,D)
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = size(A,1);
sizes.NumOutputs = size(D,1);
sizes.NumInputs = size(D,2);
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = ones(sizes.NumDiscStates,1);
str = [];
ts = [1 0];
% end mdlInitializeSizes
%
%===============================================================
% mdlUpdate————提升離散狀態(tài)子函數(shù)
% Handle discrete state updates, sample time hits, and major time step
% requirements.
%===============================================================
%
function sys = mdlUpdate(t,x,u,A,B,C,D)
sys = A*x+B*u;
%end mdlUpdate
%
%===============================================================
% mdlOutputs ———計算輸出子函數(shù)
% Return the output vector for the S-function
%===============================================================
%
function sys = mdlOutputs(t,x,u,A,C,D)
sys = C*x+D*u;
%end mdlOutputs
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -