%solving ODE for the undamped pendulum motion
clear all
close all
clc
g=9.81;
l=0.5;
m=0.5;
theta_0 = [0;5];
t_span = linspace(0,8,500);
[t,results] = ode45(@(t,theta) ode_func(t, theta, g,l,m),t_span,theta_0);
figure(1)
plot(t,results(:,1))
hold on
plot(t,results(:,2))
xlabel('plot')
ylabel('time')
legend({'Displacement','Velocity'});
%%Animating the simple pendulum
figure (2)
angle = results(:,1);
Xa1=1.5;
Ya1=2;
Xa2=-1.5;
Ya2=2;
%Creating loop
ct=1;
for i=1:length(t)
x0 = 0;
y0 = 2;
x1 = l*sin(angle(i));
y1= -l*cos(angle(i));
r = 0.15;
xc = x1;
yc = y1;
theta_c = linspace(0,2*pi);
x_c = r*cos(theta_c) + xc;
y_c = r*sin(theta_c) + yc;
plot([x0 x1],[y0 y1],[Xa1 Xa2],[Ya1 Ya2],x_c,y_c,'linewidth',2)
% plot([Xa1 Xa2],[Ya1 Ya2])
axis([-2 2 -2 3])
pause(0.03)
M(ct)= getframe(gcf);
ct=ct+1;
end
Movie(M)
videofile= VideoWriter('pendulum_undamping.avi','uncompressed AVI ');
open(videofile)
writeVideo(videofile,M)
close(videofile)
%ODE Solver Code
function [dtheta_dt] = ode_func(t, theta ,g,l,m)
theta1 = theta(1);
theta2 = theta(2);
dtheta1_dt = theta2;
dtheta2_dt = -((g/(l*m))^2) *sind(theta1);
dtheta_dt = [dtheta1_dt; dtheta2_dt];
end
https://youtu.be/3vUk8PWzy08