Red de conocimiento informático - Conocimiento de la instalación - Hay un programa llamado s.

Hay un programa llamado s.

Lo he probado yo mismo y funciona muy bien. La onda fundamental de PWM es una onda sinusoidal con un período de 0,015 s. No sé si eso es correcto. Por favor compruébalo.

Función[sys,x0,str,ts] = pwm(t,x,u,flag)

Alternar indicador,

Caso 0,

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);