?? mssfunqconvert.m
字號:
function [sys,x0,str,ts] = MSSFUNQConvert(t,x,u,flag)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 主要功能:根據輸入參數flag的數值調用相應的函數
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
switch flag
case 0,
%調用mdlInitializeSizes函數執行初始化
[sys,x0,str,ts]=mdlInitializeSizes;
case 2,
%調用mdlUpdate函數計算離散狀態的數值
sys=mdlUpdate(t,x,u);
case 3,
%調用mdlOutputs函數計算輸出信號的數值
sys=mdlOutputs(t,x,u);
case {1,4,9}
%沒有相應的操作(沒有連續狀態)
sys=[];
otherwise
error(['Unhandled flag=',num2str(flag)]);
end
%end MS_SFUN_QConvert
%=======================================================================
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-function.
%=======================================================================
%
function [sys,x0,str,ts] = mdlInitializeSizes
%調用simsizes獲得一個用于存放長度信息的結構
sizes = simsizes;
%設置連續狀態的個數
sizes.NumContStates = 0;
%設置兩個離散狀態
sizes.NumDiscStates =2;
%設置輸出信號的個數為1
sizes.NumOutputs =1;
%設置輸入信號的個數為1
sizes.NumInputs = 1;
%設置直接反饋的狀態,0表示沒有直接反饋,1表示存在直接反饋
sizes.DirFeedthrough = 1;
%設置抽樣時間的個數(大于等于1)
sizes.NumSampleTimes = 1;
%通過simsizes把sizes結構返回給sys
sys = simsizes(sizes);
%設置S函數的初始狀態x0
x0 = [0 0]';
%設置S函數的保留參數str(應該設置為空向量
str = [];
%初始化抽樣時間
ts = [-1 0];
% end mdlInitializeSizes
%
%=======================================================================
% mdlUpdate
% Handle discrete state updates, sample time hits, and major time step
% requirements.
%=======================================================================
%
function sys = mdlUpdate(t,x,u)
%就算S函數的離散狀態并且通過sys參數返回給Simulink
if x(1)==0
x(2)=-1*u;
x(1)=1;
else
x(1)=0;
end
sys=x;
%end mdlUpdate
%
%=======================================================================
% mdlOutputs
% Return the output vector for the S-function
%=======================================================================
%
function sys = mdlOutputs(t,x,u)
%就算S函數的輸出信號并且通過sys參數返回給Simulink
if x(1)==0
sys=u;
else
sys=x(2);
end
%end mdlOutputs
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -