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