Title: Matlab Plots
1Matlab Plots
- This presentation should be viewed as a
slideshow. Use the alt-tab key combination to
switch between the slideshow and Matlab as you
work through the examples. - Pay close attention to each program step and
explanation. Be sure that you understand the
purpose of each program instruction. It is not a
typing exercise. - There will be a challenging program to for you to
write at the end of the tutorial.
2close all clear clc format compact alpha
0 45 90 135 180 225 270 315 360 x alpha
pi/180 y sin(x) disp('x
') disp(x) disp('y ') disp(y) plot(x,
y) xlabel('x axis label') ylabel('y axis
label') title('plot title') grid on
- Create a Matlab m-file with the lines shown
- initialization (close all previously open plot
windows, clear workspace, clear command console,
use compact output formatting) - create the row vector alpha containing a sequence
of angles from 0 to 360 degrees on increments of
45 degrees - create a second row vector x with the angles
converted from degrees to radians (note this is
a scalar multiplication of each element in the
alpha vector to create the x vector) - calculate the sine of each angle and store the
result in a third vector , y (note the sin()
function is applied to each element of the x
vector to create the y vector) - display the values stored in x and y
- plot y vs. x
- add labels for the x and y axes
- add a title for the plot
- add grid lines
3- Save the m-file in your current directory as
plot1.m - Execute the m-file by typing prog1 in the command
console - You should see a new plot window open with the
x-y plot shown at left - Note the presence of the axis labels, plot title,
and grid lines - The command console should contain the output
shown - Note that since we divided the total 360 degree
range of angles into 8 intervals of 45 degrees,
there are a total of 81 or 9 values of alpha, x,
and y - With only 9 plot points and straight line
segments connecting the points, the sine function
plot has a jagged appearance more plot points
would help
x Columns 1 through 5 0 0.7854
1.5708 2.3562 3.1416 Columns 6 through
9 3.9270 4.7124 5.4978 6.2832 y
Columns 1 through 5 0 0.7071
1.0000 0.7071 0.0000 Columns 6 through 9
-0.7071 -1.0000 -0.7071 -0.0000
4close all clear clc format compact alpha
02360 x alpha pi/180 y sin(x)
disp('x ') disp(x) disp('y ') disp(y)
plot(x, y) xlabel('x axis label') ylabel('y
axis label') title('plot title') grid on
- Modify plot1.m as shown and save the new version
as plot2.m - The vector alpha is created using the colon
operator to specify the sequence of angle values - The syntax for a sequence specified by the colon
operator is alpha firstincrementlast - In this case, the sequence starts with 0, ends at
360, and each value is separated by 2 - Note
- The sequence of values is generated by the colon
operator. - Placing square braces around the operator
causes the creation of a vector to store the
values. - The equal sign assigns the new vector to the
variable alpha. The equal sign is an assignment
operator, not a statement of equality.
5- Execute plot2.m from the console window and
verify that you can get the results shown
x Columns 1 through 6 0 0.0349
0.0698 0.1047 0.1396 0.1745 Columns 7
through 12 0.2094 0.2443 0.2793
0.3142 0.3491 0.3840
6close all clear clc format compact for i
11181 x(i) 2(i-1) pi/180 y(i)
sin(x(i)) end plot(x, y) xlabel('x axis
label') ylabel('y axis label') title('plot
title') grid on
- Modify plot2.m as shown and save the new version
as plot3.m - Note that the disp commands have been deleted
- This version of the program uses a for-loop to
control the program flow - The command specifies that the lines contained
between the for and end commands should be
repeated for each value of the loop variable i - Note that the values of i are specified with the
colon command - Within the loop, new elements are added to the x
and y vectors for each value of i - For the first pass through the loop, i 1 and
x(1) 2(1-1)pi/180 or x(1) 0 y(1)
sin(x(1)) or y(1) sin(0) - For the second pass through the loop, i 2 and
x(2) 2(2-1)pi/180 or x(2)
2pi/180 y(2) sin(x(2)) or y(2)
sin(2pi/180) - The loop is repeated until i 181 and x(181)
2(181-1)pi/180 or x(181) 2pi y(181)
sin(x(181)) or y(181) sin(2pi)
7- Execute plot3.m from the console window and
verify that you can get the results shown
8- The sine and cosine functions are of particular
importance in physics and engineering as they
provide a mathematical description for harmonic
or periodic phenomena, i.e., processes that
repeat. - Consider a simple pendulum. From basic physics
and calculus, it can be shown that the angular
motion is given approximately by - T is the time required to complete one cycle of
the motion and is referred to as the period of
the cycle. - ?max represents the maximum angle of the motion
and is referred to as the amplitude of the
cycle.
9- An alternate representation of the motion is
given by - f is the cyclical frequency or the number of
cycles per unit time. It is typically given in
units Hz or cycles per second. - And a third representation is given by
- ? is the angular frequency and is given in
radians per unit time.
10close all clear clc format compact g
9.807 L input('enter pendulum length
(m) ') thetaMax input('maximum angle (deg)
') T 2pisqrt(L/g) f 1/T omega 2pi/T
disp('period (secs) ') disp(T) disp('cyclical
frequency (Hz) ') disp(f) disp('angular
frequency (rad/s) ') disp(omega) dt
T/100 for i 11101 t(i) (i-1)dt
theta(i) thetaMax sin(omegat(i)) end
plot(t,theta) xlabel('time (s)') ylabel('angula
r displacement (deg)') title ('Pendulum Motion')
- Create the m-file shown and save it as pendulum.m
- Note that one period of the motion is divided
into 100 equal time steps. - Including the angular displacement at the
starting time or t 0 results in 101 values for
the time and angle vectors. - We are plotting theta (y-axis) vs. t (x-axis)
11Execute pendulum.m and verify that you can get
the results shown for a pendulum length of 5 m
with a maximum angular deflection of 30 deg.
enter pendulum length (m) 5 maximum angle (deg)
30 period (secs) 4.4864 cyclical frequency
(Hz) 0.2229 angular frequency (rad/s)
1.4005
12close all clear clc format compact tau
40 dt 3tau/100 for i 11101 t(i)
(i-1)dt a(i) exp(-t(i)/tau) end
plot(t,a) xlabel('time (s)') ylabel('amplitude'
) title('Exponential Decay')
- Another functional form that appears frequently
in physics and engineering is the exponential - When the coefficient in the exponent is negative,
the exponential asymptotically approaches zero
for large values of t. This provides a
mathematical description for processes that decay
or are attenuated over time. - For decaying processes, it is common write the
exponential in terms of a time constant - where ? (tau) is referred to as the time
constant. - Note that when t ?
- or, the parameter y has been attenuated to 36.8
of its value at t 0 - Create the program shown and save it as
exponential.m (note time constant is set to 40 s)
13Execute exponential.m and verify that you can get
the results shown. Note that the amplitude has
been reduced to 0.368 at t 40 s as expected.
14- The exponential and sine functions can be
combined to represent the motion of a damped
pendulum, i.e., a pendulum that is affected by
friction. - The exponential function creates an attenuation
envelope which reduces the amplitude of the
oscillations over time. - Create a new Matlab m-file called
dampedPendulum.m that will generate the results
shown for a pendulum length of 5 m, initial
deflection angle of 30 deg, and a damping time
constant of 20 s. - For the calculations, the time increment was set
to 1/100 of the period of the oscillation. The
total time for the calculation was set to 10
oscillation periods for a total of 1001 time
steps.
enter pendulum length (m) 5 maximum angle (deg)
30 time constant (s)20 period (secs)
4.4864 cyclical frequency (Hz)
0.2229 angular frequency (rad/s) 1.4005
15Assignment Complete and submit the following
m-files plot1.m plot2.m plot3.m pendulum
.m exponential.m dampedPendulum.m