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

mechanical
fuente
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);
MrYouMath
fuente