MATLAB

advertisement
MATLAB
Plotting With MATLAB
1
Two Dimensional Plots
• The xy plot is the most commonly used plot by
engineers
• The independent variable is usually called x
• The dependent variable is usually called y
2
Consider This xy Data
time, sec
Distance, Ft
0
0
2
0.33
4
4.13
6
6.29
8
6.85
10
11.19
12
13.19
14
13.96
16
16.33
18
18.17
Time is the
independent
variable and
distance is the
dependent
variable
3
Define x and y and call the plot
function
time, sec
Distance,
Ft
0
0
1
0.33
3
4.13
5
6.29
7
6.85
9
11.19
11
13.19
13
13.96
15
16.33
17
18.17
You can use any variable name that is convenient for the
dependent and independent variables
4
5
Engineers always add …
•
•
•
•
Title
X axis label, complete with units
Y axis label, complete with units
Often it is useful to add a grid
6
Creating Multiple Plots
• MATLAB overwrites the figure window every
time you request a new plot
• To open a new figure window use the figure
function – for example
figure(2)
7
Plots With Multiple Lines
• hold on
– Freezes the current plot, so that an additional plot
can be overlaid
• When you use this approach the additional
line is drawn in blue – the default drawing
color
8
The first plot is drawn in blue
9
The hold on command
freezes the plot
The second line
is also drawn in
blue, on top of
the original plot
The second line
is also drawn in
blue, on top of
the original plot
10
Plots With Multiple Lines
• You can also create multiple lines on a single
graph with one command
• Using this approach each line defaults to a
different color
Each set of ordered
pairs will produce a
new line
11
Variations
• If you use the plot command with a single
matrix, MATLAB plots the values versus the
index number
• Usually this type of data is plotted on a bar
graph
• When plotted on an xy grid, it is often called a
line graph
12
13
If you want to create multiple plots, all
with the same x value you can
• Use alternating sets of ordered pairs
– plot(x,y1,x,y2,x,y3,x,y4)
• Or group the y values into a matrix
– z=[y1,y2,y3,y4]
– plot(x,z)
14
Define x first
Alternating sets
of ordered pairs
Matrix of Y values
15
The peaks(100)
function creates a
100x100 array of
values. Since this
is a plot of a single
variable, we get
100 different line
plots
16
Plots of Complex Arrays
• If the input to the plot command is a single array of
complex numbers, MATLAB plots the real component
on the x-axis and the imaginary component on the yaxis
17
Multiple arrays of complex numbers
• If you try to use two arrays of complex
numbers in the plot function, the imaginary
components are ignored
18
19
Line, Color and Mark Style
• You can change the appearance of your plots by
selecting user defined
– line styles
– color
– mark styles
• Try using “help plot” for a list of available styles
20
Available choices
Table 5. 2 Line, Mark and Color Options
Line Type
Indicator
Point Type
Indicato
r
Color
Indicator
solid
-
point
.
blue
b
dotted
:
circle
o
green
g
dash-dot
-.
x-mark
x
red
r
dashed
--
plus
+
cyan
c
star
*
magenta
m
square
s
yellow
y
diamond
d
black
k
triangle
down
v
triangle up
^
triangle left
<
triangle
right
>
pentagram
p
hexagram
h
21
Specify your choices in a string
• For example
• plot(x,y,':ok')
– strings are identified with a tick mark
– if you don’t specify style, a default is used
• line style – none
• mark style – none
• color - blue
22
plot(x,y,':ok')
• In this command
– the : means use a dotted line
– the o means use a circle to mark each point
– the letter k indicates that the graph should be
drawn in black
23
dotted line
circles
black
24
specify the
drawing
parameters for
each line after the
ordered pairs that
define the line
25
Axis scaling
• MATLAB automatically scales each plot to
completely fill the graph
• If you want to specify a different axis – use the
axis command
axis([xmin,xmax,ymin,ymax])
• Lets change the axes on the graph we just
looked at
26
Use the axis
function to
override the
automatic scaling
27
Annotating Your Plots
• You can also add
– legends
– textbox
• Of course you should always add
– title
– axis labels
28
29
Improving your labels
You can use Greek letters in your labels by putting a
backslash (\) before the name of the letter. For
example:
title(‘\alpha \beta \gamma’)
creates the plot title
αβγ
To create a superscript use curly brackets
title(‘x^{2}’)
gives
x2
30
Subplots
• The subplot command allows you to
subdivide the graphing window into
a grid of m rows and n columns
• subplot(m,n,p)
rows
columns
location
31
subplot(2,2,1)
2 columns
Peaks
2
1
5
0
-5
2
2 rows
0
y
-2
3
-2
0
2
x
4
32
2 rows and 1 column
33
Other Types of 2-D Plots
•
•
•
•
•
•
•
Polar Plots
Logarithmic Plots
Bar Graphs
Pie Charts
Histograms
X-Y graphs with 2 y axes
Function Plots
34
Polar Plots
• Some functions are easier to specify using
polar coordinates than by using rectangular
coordinates
• For example the equation of a circle is
– y=sin(x)
in polar coordinates
35
36
Logarithmic Plots
• A logarithmic scale (base 10) is convenient when
– a variable ranges over many orders of magnitude, because
the wide range of values can be graphed, without
compressing the smaller values.
– data varies exponentially.
• Aplot – uses a linear scale on both axes
• semilogy – uses a log10 scale on the y axis
• semilogx – uses a log10 scale on the x axis
• loglog – use a log10 scale on both axes
37
38
39
Bar Graphs and Pie Charts
• MATLAB includes a whole family of bar graphs and
pie charts
–
–
–
–
–
–
bar(x) – vertical bar graph
barh(x) – horizontal bar graph
bar3(x) – 3-D vertical bar graph
bar3h(x) – 3-D horizontal bar graph
pie(x) – pie chart
pie3(x) – 3-D pie chart
40
41
42
Histograms
• A histogram is a plot showing the distribution
of a set of values
43
X-Y Graphs with Two Y Axes
• Scaling Depends on the largest value plotted
• Its difficult to see how the blue line behaves, because the
scale isn’t appropriate
44
The plotyy
function allows
you to use two
scales on a
single graph
45
Function Plots
• Function plots allow you to use a
function as input to a plot command,
instead of a set of ordered pairs of xy values
• fplot('sin(x)',[-2*pi,2*pi])
function input as a
string
range of the independent
variable – in this case x
46
47
Three Dimensional Plotting
• Line plots
• Surface plots
• Contour plots
48
Three Dimensional Line Plots
• These plots require a set of order triples ( x-y-z values) as input
The z-axis is labeled
the same way the x
and y axes are labeled
49
MATLAB uses
a coordinate
system
consistent
with the right
hand rule
50
Surface Plots
• Represent x-y-z data as a surface then use surf(z)
20
15
z-axis
%surfplot
diary surf.dat
z=[1,2,3,4,5,6,7,8,9,10;
2,4,6,8,10,12,14,16,18,20;
3,4,5,6,7,8,9,10,11,12]
x=linspace(1,50,10)
y=linspace(500,1000,3)
surf(z)
xlabel('x-axis')
ylabel('y-axis')
zlabel('z-axis')
diary
10
5
0
3
2.5
10
8
2
6
4
1.5
y-axis
1
2
0
x-axis
51
Bode Plots
52
A Resistor in the Laplace (S) Domain
a
a
i
I
+
+
R1
v
V
1K
_
R2
1K
_
Time
b
v = iR
s
b
V = IR
53
An Inductor in the Laplace (s) Domain
i
+
I0 = 0
I
+
L
L1
v
L2sL
V
L
_
Time
_
s
54
A Capacitor in the Laplace (s) Domain
+
i
C
C1
+
V0
_
v
-
I
+
C11/sC
v
-
Time
s
55
Low Pass filter
56
Circuit Transfer Function H(s)
R1
R1
+
2
+
v1(t)
_
¼F
2
v2(t)
C1
_
V2(s)
V1(s)
4/s
V2(s)
2
=
2 + 4/s
C1
_
4/s
=
H(s) =
+
+
v1(s)
_
S+2
57
MATLAB Software – Bode Plot Template
H(s) = 2 / (s + 2)
n=[0 2];
d=[1 2]; Start at 10-1 Stop at 102
generates 200 points
bode (n,d);
between 100 & 104
w=logspace (-1, 2, 200);
[mag,pha]=bode (n,d,w);
semilogx (w,20*log10 (mag));grid
title(‘Bode Plot’)
xlabel (‘w (Rad/sec)’)
ylabel(‘Decibels (dB)’)
58
Bode Plot
Bode Plot
0
-5
Decibels (db)
-10
-15
-20
-25
-30
-35
-1
10
0
1
10
10
2
10
w (Rad/sec)
59
Bode Plot
Bode Plot
10
5
Decibels (dB)
0
X: 2.026
Y: -3.066
-5
-10
-15
-20
-1
10
0
1
10
10
2
10
w(Rad/sec)
60
61
R1
+
R1
50K
C1
Vi
_
0.1uF
+
+
50K
C1
Vo
Vi
_
_
+
Vo
1/sC = 1/0.1s
_
1/RC = 1 / (50 x 103)(0.1 x 10-6) = 200
62
MATLAB Software For Semi-log Paper
n=[1];
Start at 10
d=[1];
Stop at 10
bode (n,d);
generates 200 points
w=logspace (0, 4, 200); between 10 & 10
[mag,pha]=bode (n,d,w);
semilogx (w,20*log10 (mag));grid
title(‘Bode Plot’)
xlabel (‘w (Rad/sec)’)
xlabel(‘Decibels (dB)’)
0
4
0
4
63
Semi-log Paper
Bode Plot
1
0.8
0.6
Decibels (db)
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
10
1
10
2
10
w (Rad/sec)
3
10
4
10
64
65
Download