Challenge

Week 3 - Solving second order ODEs

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

% initial condition
theta_0 = [0,3];

% time points
t_span = linspace(0,20,500);

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

plot(t,results(:,1))
hold on
plot(t,results(:,2))
ylabel('plot')
xlabel('time')



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

An ordinary differential equation is used to describe the transient behaviour of a system. It can be used to describe the changes in position, speed or any variable with respect to time.

To simulate the ODE for a simple pendulum, the values for the length of the string or the bar, the mass of the bob, the damping coefficient and gravity are defined.

The initial conditions for time and velocity are defined since there are two ode functions.

The limits for time are defined and 500 values between 0 and 20th sec are evaluated.

To integrate the ode, an in-built function "ODE45" is used. The primary inputs for the ode, t and theta are entered. A separate Matlab program 'Ode_func' that defines the second-order differential equation for the simple pendulum is integrated into this. The Runge-Kutta method is used to simplify the second-order ODE.

The results are plotted graphically using the 'plot' command.

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.