Tengo un problema con las coordenadas cartesianas péndulo EOM en matlab [cerrado]


0

enter image description here

enter image description here

Hice mi código como este,

function DK = pendulum_cartesian(t,K)    
g = 9.8; l = sqrt(K(1)^2 + K(2)^2);  
DK = zeros(4,1);
DK(1) = K(3);
DK(2) = K(4);
DK(3) = ( (-K(1)*K(3)^2) - (K(1)*K(4)^2) + K(1)*K(2)*g )/(l^2);
DK(4) = ( (-K(2)*K(3)^2) - (K(2)*K(4)^2) - (K(1)^2)*g )/(l^2);

theta = atan(K(2)/K(1));

plot(t,theta);

end

y escribí,

[t, K] = ode45 (@pendulum_cartesian, [0,10], [0.1,0.00017,0.1,0])

pero no hay valor en theta, y las tramas nada.

donde hay un problema


1
El hecho de que no esté obteniendo una salida sugiere que esto es un problema de codificación, no un problema de métodos numéricos de ingeniería. Sugeriría un foro diferente, la ayuda de codificación está fuera de tema aquí.
BarbalatsDilemma

lo siento, me disculpo ...
mechanical

No necesito disculparme, solo te lo hago saber
BarbalatsDilemma

Respuestas:


0

Asumiendo tus ecuaciones y tu código es correcto.

Esto es lo que usé para la función:

function DK = pendulum_cartesian(t,K)    
DK = zeros(4,1);
DK(1) = K(3);
DK(2) = K(4);
DK(3) = ( (-K(1)*K(3)^2) - (K(1)*K(4)^2) + K(1)*K(2)*9.81 )/(K(1)^2 + K(2)^2);
DK(4) = ( (-K(2)*K(3)^2) - (K(2)*K(4)^2) - (K(1)^2)*9.81 )/(K(1)^2 + K(2)^2);
end

A continuación, ejecute con:

[t,K] = ode45(@pendulum_cartesian, [0,10], [0.1;0.00017;0.1;0]);
theta = atan(K(:,2)/K(:,1));
plot(t,theta);
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.