Challenge

Week 3 - Solving second order ODEs

Program to simulate simple pendulum

%Write a program that will simulate the pendulum motion

clear all
close all
clc

b=0.05;
g=9.81;
l=1;
m=1;

%Initial condition
theta_0=[0;3];

%time_plots
t_span=linspace(0,20,500);

%solve for ode

[t,results]=ode45(@(t,theta) ode_func(t,theta,b,g,l,m),t_span,theta_0);

%Pendulum

ct=1;
for i=1:length(results(:,1))
    x0=0;
    y0=0;
    x1=l*sin(results(i,1));
    y1=-l*cos(results(i,1));
   plot([-0.5,0.5],[0,0],'linewidth',3);
   line([x0,x1],[y0,y1],'linewidth',3);
   hold on
   plot(x1,y1,'o','MarkerS',20,'MarkerFaceColor','r');
   grid on
   axis([-1.5 1.5 -1 0.5]);
   pause(0.02);
   M(ct)=getframe(gcf);
   hold off
   ct=ct+1;
end

movie(M)
videofile=VideoWriter('Pendulum_motion.avi','Uncompressed AVI')
open(videofile)
writeVideo(videofile,M)
close(videofile)

Explanation of program:

  1. Firstly the inputs are given such as damping coefficient (b), gravity (g),length (l),mass (m).
  2. Initial conditions are given for velocity & displacement.
  3. time span is defined using linspace command.
  4. differential equation s solved using ode45 inbuilt command.
  5. Time function is call to define the values of variables & calculates column matrics.
  6. for loop is used to calculate motion of pendulum at different time interval.
  7. Marker command is used to creat ball.
  8. movie command is used to make movie.

Call function:

function[dtheta_dt]=ode_func(t,theta,b,g,l,m)
theta1=theta(1);
theta2=theta(2);
dtheta1_dt=theta2;
dtheta2_dt=-(b/m)*theta2-(g/l)*sin(theta1);
dtheta_dt=[dtheta1_dt;dtheta2_dt];
end

Image that represents position of pendulum

Output:

Error faced during Programming:

Inverted comma (') is given at videofile. Inverted comma removed and then run the program.

Video link of simulation

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.