You are on page 1of 299

COMPUTING APPLICATIONS IN

MECHANICAL SYSTEMS

(MEEN-561)
INTRODUCTION
TO
MATLAB- SIMULINK

By
Kiran Kumar. K
Lecturer in Mechanical Engineering Department
Eritrea Institute Of Technology
Email:- kiranmek3@gmail.com
kiranmedesign@gmail.com

This Lab Consists of Modules


1.
2.
3.
4.
5.
6.
7.

STATIC ANALYSIS
KINEMATIC ANALYSIS
DYNAMIC ANALYSIS
VIBRATION ANALYSIS MODULE
CONTROL SYSTEM ANALYSIS
MECHANISMS SIMULATION MODULE
HYDRAULIC SYSTEM SIMULATION MODULE

ASSESSMENT SCHEME
(75% FOR CONTINUOUS ASSESSMENTS)

COURSE LEARNING OBJECTIVES


To realize the importance of Computational efficiency in
simulation of Real time Mechanical systems.
To Implement Statics, kinematics, dynamics and control
problems.
To Implement Dynamics and control problems in Vibratory
systems.
To learn vibration pattern in vibratory systems with damping
and without damping for programming effectively differential
equation problems with Ode solvers.
To learn the simulation of Hydraulic systems.
To learn the simulation of mechanism systems.
To implement automation systems by virtual simulation and
analysis of Real Time systems.

BOOKS FOR REFERENCE

OPEN WEB RESOURCES


www.mathworks.com/
www.mathtools.net/MATLAB
www.math.utah.edu/lab/ms/matlab/matlab.html
web.mit.edu/afs/athena.mit.edu/software/matlab/
www.utexas.edu/its/rc/tutorials/matlab/
www.math.ufl.edu/help/matlab-tutorial/
www.indiana.edu/~statmath/math/matlab/links.html
www.eng.cam.ac.uk/help/tpl/programs/matlab.html

OPEN WEB RESOURCES


Messner and Tilbury, Controls Tutorial for MATLAB and SIMULINK: A Web-based
approach,

Prentice-Hall, 1999.

Sigmon and Davis, MATLAB Primer, 6th Edition, CRC Press, 2001

Gockenback, A Practical Introduction to MATLAB, 2nd Edition, CRC Press, 2005.

http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.html
http://www.mathworks.com/access/helpdesk/help/toolbox/simulink/
http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/getstart.pdf
http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/using_ml.pdf
http://www.mathworks.com/access/helpdesk/help/toolbox/control/control.shtml
http://www.mathworks.com/academia/student_version/
http://www.mathworks.com/academia/student_version/companion.html
http://travis.eng.man.ac.uk/barry/control2/lab/SIMULINK.htm
http://matlab.kimhua.co.kr/digest/dec98/nonlinear.html

OPEN WEB RESOURCES


http://www.scsolutions.com/feedback.html
http://www.math.mtu.edu/~msgocken/intro/intro.html
http://www-personal.engin.umich.edu/~tilbury/tutorials/matlab_tutorial.html
http://www.eng.fsu.edu/~cockburn/matlab/matlab_help.html

http://www.engin.umich.edu/group/ctm/working/mac/simulink_basics/
http://www.messiah.edu/acdept/depthome/engineer/Resources/tutorial/matlab/simu.html
http://rclsgi.eng.ohio-state.edu/courses/me780/handouts/simulink.pdf
http://www.mae.ncsu.edu/homepages/buckner/simulink2.pdf
http://www.tutorgig.com/showurls.jsp?group=896&index=0
http://www.rpi.edu/dept/chem-eng/WWW/faculty/bequette/lou/simtut/simtut_html.html
http://www.math.siu.edu/matlab/tutorials.html

OPEN WEB RESOURCES


http://wolfman.eos.uoguelph.ca/~jzelek/matlab/ctms/
http://www.engin.umich.edu/group/ctm/
http://www.me.cmu.edu/matlab/html/
http://www.math.utah.edu/lab/ms/matlab/matlab.html
http://www.indiana.edu/~statmath/math/matlab/
http://spicerack.sr.unh.edu/~mathadm/tutorial/software/matlab/
http://www.math.ufl.edu/help/matlab-tutorial/matlab-tutorial.html
http://www.cs.ubc.ca/spider/cavers/MatlabGuide/guide.html
http://www.class.umd.edu/enme/403/0101/t1.html
http://www.math.mtu.edu/~msgocken/intro/intro.html

http://www.engin.umich.edu/group/ctm

OPEN
WEB
RESOURCES
Mathworks Information
Mathworks: http://www.mathworks.com
Mathworks Central: http://www.mathworks.com/matlabcentral
http://www.mathworks.com/applications/controldesign/
http://www.mathworks.com/academia/student_center/tutorials/launchpad.html
Matlab Demonstrations
Matlab Overview: A demonstration of the Capabilities of Matlab
http://www.mathworks.com/cmspro/online/4843/req.html?13616
Numerical Computing with Matlab
http://www.mathworks.com/cmspro/online/7589/req.html?16880
Select Help-Demos in Matlab
Matlab Help
Select Help in Matlab. Extensive help about Matlab, Simulink and toolboxes
Matlab Homework Helper
http://www.mathworks.com/academia/student_center/homework/
Newsgroup: comp.soft-sys.matlab
Matlab/Simulink student version (program and book ~50)
http://www.mathworks.com/academia/student_center
Other Matlab and Simulink Books
Mastering Matlab 6, Hanselman & Littlefield, Prentice Hall
Mastering Simulink 4, Dabney & Harman, Prentice Hall
10/14
EE-M110
W1Simulink
06-07
MatlabEFIS,
and
Student Version Release
14

What is Matlab?
MATLAB (Matrix Laboratory) is basically a high level language
which has many specialized toolboxes for making things easier for
us.
MATLAB is a software for doing numerical computation. It was
originally designed for solving linear algebra type problems using
matrices. Its name is derived from Matrix Laboratory.
MATLAB has since been expanded and now has built-in functions
for solving problems requiring data analysis, signal processing,
optimization, and several other types of scientific computations.
It also contains excellent GUI features of functions for 2-D and 3-D
graphics and animation.
Powerful,
extensible,
highly
integrated
computation,
programming, visualization, and simulation package.
Widely used in engineering, mathematics, and science.
Why?

What are we interested in?


MATLAB is too broad tool used in industry for
real time interfacing of sensors and machine
vision etc. and programming the real time
systems for active control of the system
behavior.
For our course purpose in this Laboratory we
will have brief overview of basics and learn
what can be done with MATLAB at beginner
level.

Need to Perform
Vibration analysis

Human Vibration

Resonance Frequency Ranges of


Human body sections
Eyeball, Intraocular Structure (20-90 Hz)
Head (axial mode) (20-30 Hz)
Shoulder Girdle (4-5 Hz)
Chest wall (50-100 Hz)
Arm (5-10 Hz)
Hand (30-50 Hz)
Abdominal Mass (4-8 Hz)
Spinal column (axial mode) (10-12 Hz)
It may be noted that the abdominal mass mode (around 5 Hz)
makes us nauseating and is avoided in automotive design.
Top gun pilots had problem with a particular maneuver when the eyeball
socket went into resonance.

BASICS
Displacement
distance
35 Metres

Speed
65 m/s

D
Time

Velocity
V
Time

0-60 m/s
in 8.6
second

Acceleration
A
Time

Undamped free vibration


Displacement

d = D sinnt

Displacement

D
Time

Frequency

1
T

Period, Tn in [sec]
k

Frequency, fn=
n= 2 fn =

1
Tn

k
m

in [Hz = 1/sec]

Continued
Natural frequency of a simple single degree of freedom
undamped system is given by the equation
N = square root of (stiffness / mass)

Usually we do not want structures to vibrate in resonance

AREAS WHERE MECHANICAL


ENGINEERS USE MATLAB
Solving kinematics, kinetics and complete
dynamic systems control of Automotive
suspension , Thermal systems etc.,

Aero plane Suspension of landing gear


M

Mg

Fs

Fc

Yo

Ys

Yin

d 2 yo
M 2 Mg Fc Fs
dt

Components of a car
For comfortable ride in a car requires analysis of car frame and
many other components, e.g. exhaust systems (bellows),
shock absorber, tire etc.

Let us look into a shock absorber in more detail

How about Shock absorber


We know what a typical shock absorber does
saves us from unpleasant vibration.

Let us look at a quarter bus/truck/car model


xs

ms
ks

cs
mu

xu

kt

u = road profile input


kt = tire spring constant
mu = unsprung mass
xu = displacement of unsprung mass

ks = suspension spring constant


cs = suspension damping constant
ms = sprung mass
xs = displacement of sprung mass

Four wheeler suspension system

Mg

y
Suspension system

ys

yin

24

Consider the following suspension system.


Solve for y given yin

SUSPENSION SYSTEM IN FOUR


WHEELER

CONTINUED

CONTINUED

CONTINUED

Conventional passive suspension


zs

sprung mass
(body) Ms

suspension spring
unsprung mass
(wheel, axle) Mu
tyre stiffness Kt

suspension damper
zu

zr

CONTINUED

CONTINUED

CONTINUED

Active suspension

MatLab MODEL FOR


Bus suspension
Designing an automatic suspension system for a bus

Simulink MODEL FOR


ROBOT

Dynamics model structure

Matlab WINDOW

Variables
No need for types. i.e., no need of declaring
variables
int a;
double b;
float c;
Accuracy and comfort is very high with MATLAB
codes.
>>x=5;
>>x1=2;

Array, Matrix

Long Array, Matrix

Generating Vectors from functions

Matrix Index

Operators (arithmetic)

MatriX Operations

Matrixes and vectors

x = [1,2,3] , vector-row,
y=[1;2;3], vector-column,
x=0:0.1:0.8 , vector x=[0,0.1,0.2,0.3....0.8],
A = [1,3,5;5,6,7;8,9,10], matrix,
A(1,2), element of matrix, 1. row, 2. column,
A(:,2), second column of matrix,
A(1,:), first row of matrix ,
C=[A;[10,20,30]] matrix with additional row,
B=A(2:3,1:2), part of matrix,
x, transpose.

44

Matrixes and vectors

size(A), matrix size,


det(A), determinant,
inv(A), inverse matrix,
eye(3), unit matrix,
zeros(3,4), matrix of zeros,
rand(3,5), matrix of random values,
sum(A), sum of elements,
A*x, matrix-vector product (if dimensions are
corresponding),
A.*B, element multiplication of two matrixes.
help sqrt, looking for known command,
help, help topics are shown,
45

The use of . -Operation


(Element by element operation)

To find eigen values and eigen


vectors of matrices

Introduction to M-files programming


Type-1 programming
Program:clc;
clear all;
p=10,000;
t=2;
r=11;
I=(p*t*r)/100;
Solution:I = 2200

Type-2
Programming
Program:clc;
clear all;
p=input('enter the value of p:');
t=input('enter the value of t:');
r=input('enter the value of r:');
I=(p*t*r)/100
Solution:Input:
enter the value of p:10000
enter the value of t:2
enter the value of r:11
Output:
I = 2200

Solving Nonlinear Equations by


Function
nle.m (function of the program)
function f = nle(x)
f(1) = x(1)-4*x(1)*x(1)-x(1)*x(2);
f(2) = 2*x(2)-x(2)*x(2)+3*x(1)*x(2);
Main body of the Program:x0 = [1 1]';
x = fsolve('nle', x0)
Solution of the program:x=
0.2500
0.0000

PERFORMING Differentation

Performing Integration

Numerical Integration

Numerical integration of the integral f (x) dx is called quadrature. MATLAB


provides the following built-in functions for numerical integration:

quad:
It integrates the specified function over specified limits, based on adaptive
Simpson's rule.
The general call syntax for both quad and quadl is as follows:
Syntax:integral = quad(function, a, b)
dblquad: (It calculates double integration)
MATLAB provides a function dblquad. The calling syntax for dblquad is:
Syntax:I = dblquad(function_xy, xmin, xmax, ymin, ymax)

Common math functions

Built-in functions for handling arrays

MATLAB built-in array


functions

Random numbers generation

Complex numbers handling functions

GRAPHICS USER INTERFACE (gui)


IN MATLAB
2-D plotting functions
>> plot(x,y)
Example:-

x = 1:2:50;
y = x.^2;
plot(x,y,'*-')
xlabel('Values of x')
ylabel('y')

LINE SPECIFIERS IN THE plot() COMMAND

plot(x,y,line specifiers)

Line
Style

Specifier

Solid
dotted
:
dashed
dash-dot

--.

Line
Color
red
green
blue
Cyan
magenta
yellow
black

Specifier
r
g
b
c
m
y
k

Marker Specifier
Type
plus sign
circle
asterisk
point
square
diamond

+
o
*
.
s
d

Graphics and Data Display


3-D Plotting syntax
Line
>> plotfunction(vector1, vector2, vector3)
Vector lengths must be the same

Example
>> a = 1:0.1:30;
>> plot3( sin(a), cos(a), log(a) )

Basic Task: Plot the function sin(x)


between 0x4

Plot the function e-x/3sin(x) between


0x4

Plot the function e-x/3sin(x) between


0x4

Contd..

Plot of the sine function from limits of 0 to (2* pi).


Graph of sine function in 0 to (2*pi) range
1
sin(x)
0.8

sin(x)

Program:0.6
clear all; % clear all variables
0.4
clc;
% clear screen
0.2
N=30;
0
h=pi/N;
-0.2
x=0:h:(2*pi);
-0.4
y=sin(x);
-0.6
plot(x,y)
-0.8
xlabel('x')
-1
0
1
ylabel('sin(x')
title('Graph of sine function in 0 to (2*pi) range')

Hint: - Direct plotting of curves can be done by fplot command also


Syntax: fplot (function, *lower limit, upper limit)
fplot ('x*cos(x)',[0, 10*pi]);

To plot the function y(x)= -3*x+4 from limits -1 to 2.


plot of function f1(x)
12
f1(x)
10

6
y=f(x)

Program:clc;
clear all;
x=-1:1:2;
y=-3*x+4;
figure
plot(x,y)
xlabel('x')
ylabel('y=f(x)')
grid on
title('plot of function f_1(x)');
legend('f_1(x)');
axis([-2 4 -2 12])

-2
-2

-1

1
x

Plotting multiple plots in same window, for example plotting


sine curve and cosine curve in single window.
Test of multi-plot option in Matlab
1
sine
cosine

0.8

Program:-

0.6

functions

clc;
0.4
clear all;
0.2
N=15;
0
h=pi/N;
-0.2
x=0:h:2*pi;
-0.4
plot(x,sin(x),'r-',x,cos(x),'g--')
-0.6
legend('sine','cosine');
-0.8
grid
-1
xlabel('x');
0
1
ylabel('functions');
title('Test of multi-plot option in Matlab');

4
x

Comparing multiple plots in single window for example


y1 = 2 cos(x), y2 = cos(x), and y3 =0.5* cos(x), in the interval 0 x (2*pi)
Typical example of multiple plots
3

Cosine functions

Program:2
x = 0:pi/100:2*pi;
1
y1 = 2*cos(x);
0
y2 = cos(x);
-1
y3 = 0.5*cos(x);
plot(x,y1,'--',x,y2,'-',x,y3,':'); -2
xlabel('0 \leq x \leq 2\pi');
-3
0
1
ylabel('Cosine functions');
legend('2*cos(x)','cos(x)','0.5*cos(x)');
title('Typical example of multiple plots');
axis([0 2*pi -3 3]);

2*cos(x)
cos(x)
0.5*cos(x)

3
0 x 2

To plot the curve of exponential of x and sin(x) in a single


window
2-D Plot
Sine Wave
Decaying Exponential

Sin(t)

Program:1
clc;
0.9
<--sin(/3)
clear all;
0.8
x=0:.1:2*pi;
0.7
y=sin(x);
0.6
plot(x,y);
0.5
grid on;
0.4
hold on;
0.3
plot(x, exp(-x), 'r:*');
0.2
axis([0 2*pi 0 1]);
0.1
title('2-D Plot');
0
xlabel('Time');
0
1
2
ylabel('Sin(t) ');
text(pi/3, sin(pi/3), '<--sin(\pi/3) ');
legend('Sine Wave','Decaying Exponential');

3
Time

Multiple Plots
t=0:pi/100:2*pi;
y1=sin(t);
y2=sin(t+pi/2);
subplot(2,2,1)
plot(t,y1)
grid on
subplot(2,2,2)
plot(t,y2);
grid on

0.5

0.5

-0.5

-0.5

-1

-1

subplot(i,j,k)
i is the number of rows of subplots in the plot
j is the number of columns of subplots in the plot
k is the position of the plot

For the given data plot the variation of x with y.


x

7.5

10

6.5

5.5

Program:
clc;
Clear all;
x=[1 2 3 5 7 7.5 8 10];
y=[2 6.5 7 7 5.5 4 6 8];
plot(x, y)

For the given data plot the variation of x with y.


Year

1988

1989

1990

1991

1992

1993

1994

Sales (M)

127

130

136

145

158

178

211

Program:

clc;
Clear all;
year = [1988:1:1994];
sales = [127, 130, 136, 145, 158, 178, 211];
plot(year, sales,'--r*')

To plot Three dimensional spiral curve


40

30

Program:clc;
clear all;
z = 0:0.1:10*pi;
x = exp(-z/20).*cos(z);
y = exp(-z/20).*sin(z);
plot3(x,y,z,'LineWidth',2)
grid on
xlabel('x')
ylabel('y')
zlabel('z')

20

10

0
1
0.5

1
0.5

-0.5
y

-0.5
-1

-1

To plot Three dimensional Helix curve


Program:-

clc;
clear all;
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t);

40

30

20

10

0
1
0.5

1
0.5

-0.5

-0.5
-1 -1

Plot the surface defined by the function


f(x,y)= (x-3)2 (y-2)2 on the domain -2 x 4 and 1 y 3.
Program:25
clc;
20
clear all;
15
[X,Y] = meshgrid(-2:0.2:4,1:0.2:3); 10
5
Z = (X-3).^2 - (Y-2).^2;
0
mesh(X,Y,Z);
-5
3
xlabel('x');
ylabel('y');

2.5

4
2

2
1.5
y

0
1

-2

Curve Fitting and Interpolation


Curve fitting is the process of constructing a curve, or mathematical function,
that has the best fit (in a least square sense) to a series of data points,
possibly subject to additional constraints. Interpolation is the method of
constructing new data points within the range of a discrete set of known
data points. Extrapolation is the process of constructing new data points
outside a discrete set of known data points. Matlab has many utilities for
curve fitting and interpolation.
Interpolation:Given the data points (xi, yi), find yj at desired xj xi from yj = f(xj), where f is
a continuous function to be found from interpolation.
Syntax:- ynew = interp1(x,y,xnew, method ).

nearest-> Nearest neighbor interpolation


linear -> Linear interpolation (default)
spline -> Cubic spline interpolation
pchip -> Piecewise cubic Hermite interpolation
cubic -> Same as pchip

Generate a sine curve and interpolate with Curve generation


by nearest interpolation method
nearest interpolation

Program:-

nearest
0.8
0.6
0.4
0.2
sin(x)

clc;
clear all;
x = 0:10;
y = sin(x);
xi = 0:.25:10;
yi = interp1(x,y,xi,'nearest');
plot(x,y,'o',xi,yi)
xlabel('x');
ylabel('sin(x)');
title('nearest interpolation ');
legend('nearest')

0
-0.2
-0.4
-0.6
-0.8
-1

5
x

10

Generate a sine curve and interpolate with Curve generation


by linear interpolation method
nearest interpolation

Program:-

nearest
0.8
0.6
0.4
0.2
sin(x)

x = 0:10;
y = sin(x);
xi = 0:.25:10;
yi = interp1(x,y,xi,'linear');
plot(x,y,'x',xi,yi)
xlabel('x');
ylabel('sin(x)');
title('linear interpolation ');
legend('linear')

0
-0.2
-0.4
-0.6
-0.8
-1

5
x

10

Generate a sine curve and interpolate with Curve generation


by Spline interpolation method
spline interpolation
1
spline
0.8
0.6
0.4
0.2
sin(x)

Program:x = 0:10;
y = sin(x);
xi = 0:.25:10;
yi = interp1(x,y,xi,'spline');
plot(x,y,'o',xi,yi);
xlabel('x');
ylabel('sin(x)');
title('spline interpolation ');
legend('spline');

0
-0.2
-0.4
-0.6
-0.8
-1

5
x

10

Generate a sine curve and interpolate with Curve generation


by Piecewise cubic Hermite interpolation method.
cubic interpolation
1
cubic
0.8
0.6
0.4
0.2
sin(x)

Program:x = 0:10;
y = sin(x);
xi = 0:.25:10;
yi = interp1(x,y,xi,'cubic');
plot(x,y,'o',xi,yi);
xlabel('x');
ylabel('sin(x)');
title('cubic interpolation ');
legend('cubic');

0
-0.2
-0.4
-0.6
-0.8
-1

5
x

10

To Find the solution to the following set of linear equations by Matrix


method:
2x-3y+4z = 5
x+y+4z = 10
3x+4y-2z = 0
Program:clc;
clear all;
A=[2 -3 4; 1 1 4; 3 4 -2];
B=*5 10 0+;
X=inv(A)*B;
(or)
X=A\B;

Write program to calculate the average of the given parameters.


Program:
clc;
clear all;
game1 = input('Enter the points scored in the first game ');
game2 = input('Enter the points scored in the second game ');
game3 = input('Enter the points scored in the third game ');
average = (game1+game2+game3)/3
Solution:
Input:
Enter the points scored in the first game
Enter the points scored in the second game
Enter the points scored in the third game

Output:
average =

Write program to calculate the value of the y given value of n

Program:
clc;
clear all;
close all;
x = 1:1:10;
term = 1./sqrt(x);
y = sum(term);
Solution:
y=

Control Structures

Control Structures

Control Structures

Example Program to understand


if statement
% Program to find whether roots are imaginary or not%
clc;
clear all;
a=input('enter value of a:');
b=input('enter value of b:');
c=input('enter value of c:');
discr = b*b - 4*a*c;
if discr < 0
disp('Warning: discriminant is negative, roots are imaginary');
end
Solution:Input:
enter value of a:1
enter value of b:2
enter value of c:3
Output:
Warning: discriminant is negative, roots are imaginary

Continued

Program:clc;
clear all;
a=input('enter value of a:');
b=input('enter value of b:');
c=input('enter value of c:);
discr = b*b - 4*a*c;
if discr < 0
disp('Warning: discriminant is negative, roots are imaginary');
else
disp('Roots are real, but may be repeated')
end
Solution:Input:
enter value of a:1
enter value of b:3
enter value of c:2
Output:
Roots are real, but may be repeated

Finding out the roots of quadratic equation ax2+bx+c=0.


Program:clear all;
clc;
a=input('Enter values for a:');
b=input('Enter values for b:');
c=input('Enter values for c:');
delta = b^2 - 4*a*c;
if delta < 0
fprintf('\nEquation has no real roots:\n\n')
disp(['discriminant = ', num2str(delta)])
elseif delta == 0
fprintf('\nEquation has one real root:\n')
xone = -b/(2*a)
else
fprintf('\nEquation has two real roots:\n')
x(1) = (-b + sqrt(delta))/(2*a);
x(2) = (-b -sqrt(delta))/(2*a);
fprintf('\n First root = %10.2e\n\t Second root = %10.2f', x(1),x(2))
end
Algorithm:Read in values of a, b, c
Calculate
IF < 0
Print message No real roots Go END
ELSEIF = 0
Print message One real root Go END
ELSE
Print message Two real roots
END
Solution:Input:
Enter values for a:
Enter values for b:
Enter values for c:
Output:

Example
Program :n = input(Enter the upper limit: );
if n < 1
disp (Your answer is meaningless!)

end
x = 1:n;
term = sqrt(x);
y = sum(term)

Jump to here if TRUE


Jump to here if FALSE

Example
Program:clc;
clear all;
A=input(enter the value of A: );
B=input(enter the value of B:);
if A > B
'A is bigger'
elseif A < B
'B is bigger'
elseif A == B
'A equals B'
else
error('Something odd is happening')
end

Solution:Input:
enter the value of A: 4
enter the value of B: 3.9
Out put:
A is bigger

Example of for loop


b.)
Problem: Draw graphs of sin(n x) on the interval 1 x 1 for n = 1,2,....,8.We could do this by
giving 8 separate plot commands but it is much easier to use a loop.
Program:x=-1:0.05:1;
1
1
for n=1:8
0
0
subplot(4,2,n);
-1
-1
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
plot(x, sin(n*pi*x));
1
1
end
0

-1
-1
1

-0.5

0.5

0
-1
-1
1

-1
-1
1

-0.5

0.5

-0.5

0.5

-0.5

0.5

0
-0.5

0.5

0
-1
-1

-1
-1
1
0

-0.5

0.5

-1
-1

Example of for & while loop


% example of for loop%
Program:for ii=1:5
x=ii*ii
end
Solution:
1 4 9 16 25
%example of while loop%
Program:x=1
while x <= 10
x = 3*x
nd
Solution:
x=1 x=3 x= 9 x=27

While Loop EXAMPLES


Program:S = 1;
n = 1;
while S+(n+1)^2 < 100
n = n+1;
S = S + n^2;
end
Solution:[n,S] = 6 91

switch Statement EXAMPLE


Program:n=input(enter the value of n: );
switch(rem(n,3))
case 0
m = 'no remainder'
case 1
m = the remainder is one'
case 2
m = the remainder is two'
otherwise
error('not possible')
end
Solution:enter the value of n: 8
m =the remainder is two

Plotting user defined observations of the


theoretical and Experimental observations
FORMATTING PLOTS

A plot can be formatted to have a required appearance.


With formatting you can:
Add title to the plot.

Add labels to axes.


Change range of the axes.
Add legend.
Add text blocks.

Add grid.

Contd
There are two methods to format a plot:
1.

Formatting commands.
In this method commands, that make changes or additions to the
plot, are entered after the plot() command. This can be done in
the Command Window, or as part of a program in a script file.

2.

Formatting the plot interactively in the Figure Window.


In this method the plot is formatted by clicking on the plot and
using the menu to make changes or add details.

FORMATTING COMMANDS
title(string)
Adds the string as a title at the top of the plot.

xlabel(string)
Adds the string as a label to the x-axis.

ylabel(string)
Adds the string as a label to the y-axis.

axis([xmin xmax ymin ymax])


Sets the minimum and maximum limits of the x- and y-axes.

FORMATTING COMMANDS
legend(string1,string2,string3)
Creates a legend using the strings to label various curves (when
several curves are in one plot). The location of the legend is
specified by the mouse.

text(x,y,string)
Places the string (text) on the plot at coordinate x,y relative to the
plot axes.

gtext(string)
Places the string (text) on the plot. When the command executes
the figure window pops and the text location is clicked with the
mouse.

Example Program
Light Intensity as a Function of Distance
1200

INTENSITY (lux)

clc;
Theory
Experiment
clear all;
1000
x=[10:0.1:22];
y=95000./x.^2;
800
Comparison between theory and experiment.
xd=[10:2:22];
600
yd=[950 640 460 340 250 180 140];
plot(x,y,'-','LineWidth',1.0)
400
hold on
plot(xd,yd,'ro--','linewidth',1.0,'markersize',10)
200
hold off
0
xlabel('DISTANCE (cm)')
8
10
12
14
16
18
20
22
DISTANCE (cm)
ylabel('INTENSITY (lux)')
title('\fontname{Arial}Light Intensity as a Function of Distance','FontSize',14)
axis([8 24 0 1200])
text(14,700,'Comparison between theory and experiment.','EdgeColor','r','LineWidth',2)
legend('Theory','Experiment',0)

24

Consider a particle moving in a straight line, and assume that its position is defined by the
equation, where x is expressed in meters and t in seconds. Write a program in MATLAB to
determine the displacement, velocity and acceleration variation with respect to time interval
from 0 to 120 seconds.

Program:clc;
clear all;
syms t;
t=0:0.1:120;
x=6.*t.^2-t.^3;
v=12.*t-3.*t.^2;
a=12-6.*t;
plot(t,x);
xlabel(time in seconds);
ylabel(displacement in m);
title(displacement of a particle along its motion);
%plot(t,v);
%xlabel(time in seconds);
%ylabel(velocity in m/s);
%title(velocity of a particle in motion);
%plot(t,a);
%xlabel(time in seconds);
%ylabel(acceleration in m/s2);
%title(acceleration of a particle);

A particle moves along a straight line with variable acceleration. If the displacement is
measured in m, and given by the relation interms of time taken t, as below, determine the
displacement, velocity and acceleration of the particle
S=t3 +2t2+7t+3

Program:clc;
clear all;
syms t;
t=0:0.1:120;
x=t.^3+2*t.^2+7.*t+3;
v=3.*t.^2+4.*t+7;
a=6.*t+4;
plot(t,x);
xlabel(time in seconds);
ylabel(displacement in m);
title(particle behavior along its motion);
%plot(t,x,'.'t,v,'o',t,a,'+');
%xlabel(time in seconds);
%ylabel(displacement, velocity and acceleration of a particle);
%title(kinematics behavior of a particle along its motion);

Spring/Mass/Damper system
example

105

PROBLEM SOLVED BY USING


MATLAB AND SIMULINK

INTRODUCTION

PROBLEM

PROBLEM

Function of the Program


function f=programone (t,z)
m=3;
c=8;
k=100;
dzdt=[z(2); -(c/m)*z(2)-(k/m)*z(1)];

Main body of the Program


% For a single degree of freedom system in free
vibration
clc;
clear all;
%Enter initial conditions
z0=[5;15];
%Enter time span for solution
tspan=[0 10];
%Call solver
[t,z+=ode45(programone',tspan,x0);
%Set up plot
plot(t,z(:,1));

Result
single degree of freedom spring mass damper system behaviour
6
displacement
5

displacement in mm

4
3
2
1
0
-1
-2
-3

10
time in seconds

15

SIMULINK
Simulink is an interactive tool for dynamics system modeling and
analysis.
Simulink is a Matlab add-on that allows one to simulate a variety of
engineering systems.
Used for modeling, simulating, and analyzing the behavior of dynamic
systems.
Basically it is a tool for model-based design.
Simulink is a graphical extension to MATLAB for modeling and simulation
of various engineering systems.
In Simulink, systems are drawn on screen as block diagrams.
Simulink offers a variety of components that are assembled to provide a
full system simulation.
Many elements of block diagrams are available, such as transfer
functions, summing junctions, etc., as well as virtual input and output
devices such as function generators and oscilloscopes.
Simulink is integrated with MATLAB and data can be easily transferred
between the programs.

Simulink
Simulink can be used to solve any initial value ODE.
Modelling/designing dynamic systems including
nonlinear dynamics.
Modelling/designing control systems including
nonlinear controller plants.
User creates device model by means of standard blocks
and carries out calculations.
There are additional block libraries for different scopes
as SimMechanics mechanical devices modeling,
SimHydraulics Hydraulic systems modeling.

GENERAL FLOW IN SIMULINK

A typical Simulink model includes Sources, Systems and Sinks.

Sources

1.
2.

3.
4.

Sinewaves
Function
Generators
From MATLAB
workspace
From Disk Files

Sinks

Systems

1.

Interconnection
of Linear and
Nonlinear blocks

1.
2.
3.
4.

Displays scopes
FFT scopes
To MATLAB
workspace
To disk files

How to start Simulink


Type Simulink in the
Command window.
Create new model under
file/new/model.

117

Simulink- libraries
Continuous; integrator, transfer function..
Discrete; discrete transfer function, unite delay,
memory..
Math operations; gain, product, sum, trigonometric
functions..
Sinks; blocks that have only input, scope, to worspace..
Sources; blocks that have only output, generators,
constant,...
User defined functions: S-function, S-function builder,..

Beljak, february 2007

118

Simulink creating a model


Model is created by choosing the blocks from different
libraries, dragging them to model window and linking
them.
The parameters of block (shown on picture, sine wave
parameters), can be reached with double click on the
block.

119

Simulink- configuration parameters


Numerical solver method, start time, stop time
(it can be also set directly)...

120

An Introduction to Simulink
Configuration Parameters
Simulink is designed to be a front-end tool for
integrating ordinary differential equations
(ODEs).

Connecting blocks
1. Hold down the Control key down.
2. Click on the source icon.
3. Click on the sink icon.
4. Press the left mouse key to make the
connection.

Displaying Output
Can use the scope attached to any signal.
Use the Autoscale function that appears as
binoculars in order to look at the results of the
entire simulations.
Click on the X, the Y or the zoom
functions to look at any specific part of the
simulation.

SIMULINK DESIGN PROCEDURE

SIMULINK DESIGN PROCEDURE

SIMULINK DESIGN

Single degree of freedom system in


SIMULINK

RESULT

DESIGN PROBLEM
Build a Simulink model that solves the
following differential equation
2nd-order mass-spring-damper system
zero ICs
input f(t) is a step with magnitude 3
parameters: m = 0.25, c = 0.5, k = 1

mx cx kx f (t )

Simulink Design

DEMONSTRATION WITH SIMPLE


EXAMPLE

SIMULINK DESIGN

Test to identify the level of understanding

Problem:- By considering nonlinear


damping

Simulink design

STATE SPACE ANALYSIS


m=1;k=2;c=0.5;

Continued

Continued

CONVERSIONS IN MATLAB
Transfer function to state space

[A,B,C,D]=tf2ss([num],[den]);

State-space to transfer function

[num,den]=ss2tf(A,B,C,D);

Transfer function to zero/poles

[z,p,k]=tf2zp([num],[den]);

Zero/poles to transfer function

[num,den]=zp2tf(z,p,k);

State space to zero/poles

[z,p,k]=ss2zp(A,B,C,D,iu);

Zero/poles to state space

[A,B,C,D]=zp2ss(z,p,k);

SOLUTION ATTINMENT MADE


EASY BY LAPLACE TRANSFORM

EXAMPLE

SIMULINK DESIGN

PROBLEM FOR EXAM

FIRST STEP

SIMULINK DESIGN

Problem2

Simulink design

UNDERSTANDING CONTROL
PROBLEM

UNDERSTANDING CONTROL
PROBLEM

PROBLEM (OSCILLATOR)

SIMULINK DESIGN

EXAMPLE
MODELLING COMPOUND PENDULUM

SIMULINK DESIGN

UNDERSTANDING STATE SPACE


TRANSFORM

CONTINUED

APPLYING STATE SPACE TRANSFORM


FOR M-C-K SYSTEM

PROCEDURE

CONTINUED

SIMULINK DESIGN

EXAMPLE
CASCADED M-C-K SYSTEM

EXAMPLE
MODEL OF MECHANICAL ACCELEROMETER

REAL TIME CHALLENGING PROBLEM


Landing gear Suspension schematic
y yo ys yin

dy d yo ys yin dyo dyin

dt
dt
dt
dt

Yo

Ys

Yin

Force balance
M

Mg

Fs Fc

Ma Mg Fc Fs

d 2 yo
M 2 Mg Fc Fs
dt

Simulink design
Fs k ( y0 yin ys )

Fc Fs

v g dt
M M

dyo dyin
Fc C

dt
dt

yo vdt
Y o-Y in

Yin

Fs

Ks
du/dt

dY in/dt

Derivative

.5

1
s
Fc

Integrator1

C
0

Mv

Mg

Mg
v =dY o/dt

.5
1/M

v =dY o/dt

1
s

Y0

Integrator2

Scope

SELF PRACTISE-1

SELF PRACTISE-2

INTRODUCTION
TO
SimMechanics

Introduction
SimMechanics provides a multi body Simulation
environment for Mechanical Systems like robots, vehicle
suspension systems, construction equipment and any
mechanism and machinery etc.
We model systems using blocks representing bodies, joints,
constraints, and force elements and then SimMechanics
formulates and solves the equations of motion for the
complete mechanical system.
Models from CAD systems, including mass, inertia, joint,
constraint, and 3D geometry can be imported into
SimMechanics.
An automatically generated 3D animation lets you visualize
the system dynamics.

NOT JUST ANIMATION.!

IT DOES LOT OF BACK GROUND


COMPUTATIONAL MECHANICS
WORK

Four bar mechanism

CONTINUED

SLIDER CRANK MECHANISM

Simulation of four cylinder engine

Stewart platform simulation

Simulink design of stewart


platform

Landing gear system

CONTINUED.

to import cad model into


simmechanics
CAD models should be saved in STL
format

Demonstration of four bar


mechanism

Sim mechanics design

MODELING SIMPLE PENDULUM

Sim mechanics design

SIMULINK DESIGN

SIMULINK DESIGN WITH SENSOR


@ JOINT

EXERCISE 2:
MODELING FOUR BAR
MECHANISM

SIMULINK DESIGN

CONTINUED

SOLUTION OF THE TEST PROBLEM


(FOUR BAR MECHANISM)

TEST OF UNDERSTANDING

CHALLENGING MINI PROJECT OPEN TO ALL


HYBRID DRIVEN FIVE-BAR PLANAR MECHANISM
PUBLISHED IN INTERNATIONAL JOURNAL OF ADVANCED ROBOTICSYSTEMS

Hint-1 for designing simulink


design

Hint-2 for designing simulink


design

SIMULINK DESIGN

SOLUTION

CHALLENGING MINI PROJECT OPEN


PENDULUM ON CART

Solving by matlab
Equation of motion are derived as

Simulink design
for forward dynamics

Forward dynamics
by
simmechanics

Inverse dynamics
by
sim mechanics

Implementation of control system


models with simulink design

SIMULATION OF SINGLE LINK


ROBOT ARM

SIMULINK DESIGN

Elevator system

Thank You
Any Questions ?