Ayuda con animación de péndulos acoplados
Publicado por Rodrigo (3 intervenciones) el 11/12/2020 02:48:07
Buenas, tengo un problema, ya que necesito animar dos péndulos acoplados a través de un resorte y al momento de graficar no me aparece nada, estos son los códigos que estoy utilizando.}
Este es mi código ejecutor del péndulo acoplado y la animación.
Y este código es el que realiza las operaciones.
Este es mi código ejecutor del péndulo acoplado y la animación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
clc
clear
close all
global g m1 m2 L a k c
g=9.81;
m1=5;
m2=5;
L=1;
a=0.5;
k=5;
c=0.5;
tmax=50;
Dt=0.001;
x10=0;
v10=2;
x20=0;
v20=0;
options= odeset('RelTol', 1e-5, 'AbsTol', [1e-5 1e-5 1e-5 1e-5]);
[T,Y] = ode45(@Penduloacoplado, [0 tmax], [x10 v10 x20 v20], options);
figure('position', [300 140 1200 820]);
sub1= subplot('position', [0.13 0.11 0.5 0.8]);
plot(0,0), axis equal, xlim([0 2*L]), ylim([0 6*L/5]);
set(gca,'YTick',[],'YTickLabel',[]),set(gca,'XTick',[],'XTickLabel',[])
p1=animatedline('Color','r','Marker','S','MarkerFaceColor','r','MaximumNumPoints',1,'Parents',sub1);
La=animatedline('Color','r','Linewidth',0.5,'LineStyle','-','MaximumNumPoints',2,'Parents',sub1);
tr1=animatedline('Color',(1/256)*[255, 153, 153],'Parent',sub1);
tr2=animatedline('Color',(1/256)*[255, 153, 153],'Parent',sub1);
tr1n=animatedline('Color',(1/256)*[153, 153, 255],'Parent',sub1);
tr2n=animatedline('Color',(1/256)*[153, 153, 255],'Parent',sub1);
Y este código es el que realiza las operaciones.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function dy=Penduloacoplado(t,u)
global g m1 m2 L a k c
dy=zeros(4,1);
S=sin(u(3))-sin(u(1));
M1=m2*L*g*sin(u(3));
M2=k*(a.^2)*S*cos(u(3));
M3=c*u(3);
M4=(m2*(L.^2));
N1=m1*L*g*sin(u(1));
N2=k*(a.^2)*S*cos(u(1));
N3=c*u(2);
N4=m1*(L.^2);
dy(1)=u(2);
dy(2)=-(N1-N2+N3)/N4;
dy(3)=u(4);
dy(4)=-(M1+M2+M3)/M4;
end
Valora esta pregunta


0