Simulating pendulum with a for loop

9 visualizaciones (últimos 30 días)
Laidog
Laidog el 26 de Ag. de 2022
Comentada: Voss el 26 de Ag. de 2022
I was asked to simulate a pendulum with a for loop. However, I was struggling with the hold on and off command, and the animation I generated only consists of the x and y points, but the line that connects to moving x and y points remains at the original position. Any help or explanation will be appreicated.
Below is my code so far
L = 2;
g = 9.81;
squarerootvalue_gl = sqrt(g./L);
squarerootvalue_lg = sqrt(L./g);
T = 2 .* pi .* squarerootvalue_lg;
t = 0:0.01:T;
theta = pi./3 .* cos(squarerootvalue_gl*t);
x = L .* sin(theta);
y = L .* (1 - cos(theta));
A = [0 x];
B = [L y];
figure
line(A,B)
hold on
axis equal
for i = 1:length(t)
plot (A(i),B(i),'b.', 'MarkerSize', 10)
drawnow
end

Respuestas (1)

Voss
Voss el 26 de Ag. de 2022
Notice that in each iteration of your loop you plot one point: (A(i),B(i)). That's why only the end of the pendulum shows up. If you want to show the entire pendulum moving, you have to plot two points - the other one being the fixed point at the top of the pendulum, (0,L), which is also (A(1),B(1)).
L = 2;
g = 9.81;
squarerootvalue_gl = sqrt(g./L);
squarerootvalue_lg = sqrt(L./g);
T = 2 .* pi .* squarerootvalue_lg;
t = 0:0.01:T;
theta = pi./3 .* cos(squarerootvalue_gl*t);
x = L .* sin(theta);
y = L .* (1 - cos(theta));
A = [0 x];
B = [L y];
figure
temp = [min(A) max(A)];
axis([temp 1+temp]);
p = line(NaN, NaN, 'Color','b', 'Marker','.', 'MarkerSize', 10);
for i = 2:length(t)
set(p,'XData',A([1 i]),'YData',B([1 i]));
drawnow
end
  4 comentarios
Laidog
Laidog el 26 de Ag. de 2022
I don't know how to upload my animation here, but when I run it, it lasted less than 1 second, and it didn't even swing past the origin. I am just confused what's wrong.
Voss
Voss el 26 de Ag. de 2022
Post your code as it is now.

Iniciar sesión para comentar.

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by