資源簡(jiǎn)介
跟蹤微分器主函數(shù)han_td.m文件,MATLAB程序
代碼片段和文件信息
function?[sysx0strts]=han_td(txuflagrhT)
switch?flag
case?0?%調(diào)用初始化函數(shù)
?[sysx0strts]=mdlInitializeSizes(T);
case?2?%調(diào)用離散狀態(tài)的更新函數(shù)
??sys=mdlUpdates(xurhT);
case?3?%調(diào)用輸出量的計(jì)算函數(shù)
??sys=mdlOutputs(x);
case{149}%
???sys=[];
otherwise?%?處理錯(cuò)誤
??errror([‘Unhandled?flag=‘num2str(flag)]);
end;
%當(dāng)flag為0時(shí)進(jìn)行整個(gè)系統(tǒng)的初始化
function?[sysx0strts]=mdlInitializeSizes(T)
%首先調(diào)用simsizes函數(shù)得出系統(tǒng)規(guī)模參數(shù)sizes并根據(jù)離散系統(tǒng)的實(shí)際情況
%設(shè)置sizes變量
sizes=simsizes;%讀入初始化參數(shù)模板
sizes.NumContStates=0;%無(wú)連續(xù)狀態(tài)
sizes.NumDiscStates=2;%有兩個(gè)離散狀態(tài)
sizes.NumOutputs=2;%輸出兩個(gè)量:跟蹤信號(hào)和未分信號(hào)
sizes.NumInputs=1;%系統(tǒng)輸入信號(hào)一路
sizes.DirFeedthrough=0;%輸入不直接傳到輸出口
sizes.NumSampleTimes=1;%單個(gè)采樣周期
sys=simsizes(sizes);%根據(jù)上面的設(shè)置設(shè)定系統(tǒng)初始化函數(shù)
x0=[0;0];%設(shè)置初始狀態(tài)為零狀態(tài)
str=[];%將str變量設(shè)置為空字符串即可
ts=[T?0];%采樣周期,若寫(xiě)成-1則表示繼承其輸入信號(hào)
?????????%在主函數(shù)的flag=2時(shí),更新離散系統(tǒng)的狀態(tài)變量
function?sys=mdlUpdates(xurhT)
sys(11)=x(1)+T*x(2);
sys(21)=x(2)+T*fst2(xurh);
%在主函數(shù)flag=3時(shí),計(jì)算系統(tǒng)的輸出變量:返回兩個(gè)狀態(tài)
function?sys=mdlOutputs(x)
sys=x;
%用戶(hù)定義的子函數(shù):fst2
function?f=fs
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????1457??2007-04-15?08:54??han_td.m
-----------?---------??----------?-----??----
?????????????????1675????????????????????2
評(píng)論
共有 條評(píng)論