它的第壹行是這樣的:
function [sys,x0,str,ts]=sfuntmpl(t,x,u,flag)
先說輸入輸出變量的含義:T是采樣時間,X是狀態變量,U是輸入(是simulink模塊的輸入),flag是仿真過程中的狀態標誌(用來判斷是初始化還是運行等。);sys的輸出根據不同的標誌而不同(sys的含義下面會結合標誌來討論),x0是狀態變量的初始值,str是保留參數(mathworks公司還沒有決定如何使用,通常只是在初始化時留空,str=[]),ts是1×2的向量,ts(1)是采樣周期,ts。
下面用sfuntmpl.m中的代碼來說壹下具體的結構:
切換標誌,% 1判斷標誌,看它當前處於哪個狀態。
案例0,
[sys,x0,str,ts]= mdlInitializeSizes;
Flag=0表示它處於初始化狀態。此時,它用函數mdlInitializeSizes初始化。這個函數在sfuntmpl.m的149行我們找他。在初始化狀態下,sys是壹個結構,用來設置模塊的壹些參數。每個參數詳細描述如下。
size = simsizes%用於設置模塊參數的結構是由simsizes生成的。
尺寸。NumContStates = 0;%模塊的連續狀態變量的數量
尺寸。NumDiscStates = 0;%模塊的離散狀態變量的數量
尺寸。NumOutputs = 0;%模塊輸出變量的數量
尺寸。NumInputs = 0;%模塊輸入變量的數量
尺寸。dir feed through = 1;%模塊有直通嗎(直通是我的理解輸入可以直接控制輸出)
尺寸。NumSampleTimes = 1;% module的采樣次數,至少壹次。
sys = simsizes(大小);%設置後分配給系統輸出。