函數[sys,x0,str,ts] = pwm(t,x,u,flag)
切換標誌,
案例0,
[sys,x0,str,ts]= mdlInitializeSizes;
案例二,
sys=mdlUpdate(t,x,u);
案例三,
sys=mdlOutputs(t,x,u);
案例{4,9},
sys =[];
否則
錯誤(['未處理的標誌= ',num 2 str(flag)]);
結束
函數[sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes
尺寸。NumContStates = 0;
尺寸。NumDiscStates = 4;
尺寸。NumOutputs = 1;
尺寸。NumInputs = 0;
尺寸。dir feed through = 1;
尺寸。NumSampleTimes = 0;
sys = simsizes(大小);
x0 =[0 1/9000/4 0 0];
str =[];
ts =[];
函數sys=mdlUpdate(t,x,u)
t = 1/9000;
如果x(3)>= 179
x(3)= 0;
結束
如果t & gt= x(2)
如果x(1) == 0
x(1)= 1;
x(4)= T *(1+0.45 * sin(2 * pi * x(3)/180))/2;
其他
x(1)= 0;
x(4)= T *(1-0.45 * sin(2 * pi * x(3)/180))/4;
x(3)= x(3)+1;
結束
x(2)= x(2)+x(4);
結束
sys = x;
函數sys=mdlOutputs(t,x,u)
sys = x(1);