?? ch2example20sfun.m
字號(hào):
function [sys,x0,str,ts] =ch2example20Sfun(t,x,u,flag,b,a)
% 離散系統(tǒng)傳遞函數(shù)的S-函數(shù)實(shí)現(xiàn)
% 參數(shù)b,a 分別為H(z)的分母、分子多項(xiàng)式的系數(shù)向量
[A,B,C,D]=tf2ss(b,a);% 將H(z)轉(zhuǎn)換為狀態(tài)空間方程系數(shù)矩陣
switch flag,
case 0 % flag=0 初始化
sizes = simsizes;% 獲取SIMULINK仿真變量結(jié)構(gòu)
sizes.NumContStates = 0;% 連續(xù)系統(tǒng)的狀態(tài)數(shù)是0
sizes.NumDiscStates = size(A,1);% 離散系統(tǒng)的狀態(tài)數(shù)
sizes.NumOutputs = size(D,1);% 輸出信號(hào)數(shù)目
sizes.NumInputs = size(D,2);% 輸入信號(hào)數(shù)目
sizes.DirFeedthrough = 1; % 該系統(tǒng)是直通的
sizes.NumSampleTimes = 1; % 這里必須為1
sys = simsizes(sizes);
str = []; % 通常為空矩陣
x0 = zeros(sizes.NumDiscStates,1);% 零狀態(tài)
ts = [-1 0]; % 采樣時(shí)間由外部模塊給出
case 2 % flag=2 離散狀態(tài)方程計(jì)算
sys = A*x+B*u;
case 3 % flag=3 輸出方程計(jì)算
sys = C*x+D*u;
case {1,4, 9 }% 其他作不處理的flag
sys=[]; % 無(wú)用的flag時(shí)返回sys為空矩陣
otherwise % 異常處理
error(['Unhandled flag = ',num2str(flag)]);
end
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -