Hay un programa llamado s.
Función[sys,x0,str,ts] = pwm(t,x,u,flag)
Alternar indicador,
Caso 0, p>
p>
[sys, x0, str, ts]= mdlInitializeSizes;
Caso 2,
sys=mdlUpdate(t, x, u);
Caso 3,
sys=mdlOutputs(t, x, u
Caso {4, 9},
sys; = [];
De lo contrario
Error(['Unhandled flag = ', num 2 str(flag)]);
Fin
Función [sys, x0, str, ts] = mdlInitializeSizes
tamaños = simsizes
Tamaños. NumContStates = 0;
Dimensiones. NumDiscStates = 4;
Dimensiones. NumOutputs = 1;
Dimensiones. NumInputs = 0;
Dimensiones. alimentación del directorio = 1;
Tamaño. NumSampleTimes = 0;
sys = simsizes(tamaño);
x0 =[0 1/9000/4 0 0];
str =[];
ts =[];
Función sys=mdlUpdate(t, x, u)
t = 1/9000;
Si x(3)>= 179
x(3)= 0;
Fin
Si t & gt= x(2)
Si x(1) == 0
x(1)= 1;
x(4)= T *(1+0.45 * sin(2 * pi * x(3)/180))/2;
Otros
x(1)= 0;
x(4)= T *(1- 0,45 * sin(2 * pi * x(3)/180))/4;
x(3)= x(3)+1;
Fin
x(2)= x(2)+x(4);
Fin
sys = x;
Función sys=mdlOutputs(t , x, u)
sys = x(1);