¡Urgente! pantalla de programación matlab ==> myfun01 en 5 dy(1) = (y(2)-1)*w1;
Para usar ode45 para resolver ecuaciones diferenciales, el enfoque habitual es guardar las funciones que describen las ecuaciones diferenciales como archivos m separados (como myfun01, myfun02 en este ejemplo) y luego llamar a la parte de función principal de ode45 (en este ejemplo, la parte después de borrar) también se guarda como un archivo de secuencia de comandos para ejecutar, por lo que debería haber tres archivos m en un ****.
A juzgar por el mensaje de error, lo más probable es que hayas guardado todo el código anterior directamente en un archivo. Guardar en un archivo no es un problema, pero debe colocar el programa principal en la parte superior y agregar un límite de función para convertirlo en una función: function?zd
t0=0;?tc=0.15 ; ?tm=2.0;
d0=(34.53/180)*pi;?w0=1.0;
[T1,Y1]=?ode45(@myfun01,[t0? tc ],[d0?w0]);
dc=Y1(longitud(Y1),1);
wc=Y1(longitud(Y1),2);
p>[T2,Y2]=?ode45(@myfun02,[tc?tm],[dc?wc]);
plot(T1,(Y1(:,1)/ pi )*180,'-',T2,(Y2(:,1)/pi)*180,'-',tc,(dc/pi)*180,'*')
texto ( 0.28,. 50,'\it{t}_{c}=0.15s','FontSize',8)
text(0.28,43,'\it{\delta}_{c } =51.71\circ','FontSize',8)
xlabel('\it{t}')
ylabel('\it{delta}')
función?dy?=?myfun01(t,y)
f=50;?w1=2*pi*f;
TJ=8.18;?Pt= 1,0 ;?P2m=0,504;
dy?=?zeros(2,1);
dy(1)?=?(y(2)-1)*w1;
dy(2) =?(1/TJ)*(Pt-P2m*sin(y(1)));
función?
TJ = 8,18;?Pt=1,0;?P3m=1,35;
dy?=?zeros(2,1);
dy(1)?(y(2)-1 ) *w1;
dy(2) =?(1/TJ)*(Pt-P3m*sin(y(1)));
Los resultados son los siguientes:
El código se ha subido como archivo adjunto. Espero que sea útil para el autor.