End Term
End Term
End Term
BODE PLOTS
A Bode plot is a standard format for plotting frequency response of LTI systems.
Becoming familiar with this format is useful because:
1. It is a standard format, so using that format facilitates communication between engineers.
2. Many common system behaviors produce simple shapes (e.g. straight lines) on a Bode plot,
so it is easy to either look at a plot and recognize the system behavior, or to sketch a
plot from what you know about the system behavior.
The format is a log frequency scale on the horizontal axis and, on the vertical axis,
phase in degrees and magnitude in decibels.
We are interested in the frequency response of an LTI system. The transfer function can be
written like this:
(s z1 )(s z 2 )L
H (s) = K
(s p1 )(s p 2 )(s p 3 )L
( jz1 )( jz 2 )L
H ( j ) = K
( j p1 )( j p 2 )( j p 3 )L
Thats a product (or quotient) of a bunch of complex numbers. Using polar form, we can say that
the angle of the product (quotient) is the sum of the angles of each term (except for division we
subtract, so its the sum of the angles for the top terms, minus the sum of the angles for the terms
in the denominator). Similarly, the magnitude is the product of the magnitude of all the terms.
Summing terms is easy to do graphically; products are harder. However, on a log scale (e.g., dB),
the product turns into a sum. Thus, if we plot the behavior of each term, we can then simply add
the plots to find the total behavior. For the poles, we could either plot the behavior of (s - p) and
subtract it, or plot the behavior of 1/(s - p) and add that behavior. Well plot the behavior
of 1/(s - p), such that we only need to add terms.
The general plan for how to sketch a Bode plot by hand is, then, to first gain an understanding of
what individual poles and individual zeros do, and then add the responses together. It is
easiest to understand complex poles and zeros by looking at the response of a complex
conjugate pair, rather than trying to look at the complex poles or zeros individually. This
handout includes some information on complex pairs, but you arent required to learn how
to sketch a Bode plot with them for ENGS 22.
The following pages contain, first, a catalog of responses you can expect from individual
poles and zeros, and then step-by-step instructions on how to construct a Bode plot from
a transfer function.
The examples given on the following pages all have a normalized (unitless) frequency scale, i.e.
in /a where a is the pole or zero, and = 2f, rather than the usual frequency scale in Hz. The
idea is that the point labeled 1 on the plot will appear at the frequency corresponding to
the pole or zero (f = a/(2)) on the real Bode plot you construct.
2 Identify breakpoints: distance of poles and zeros from the origin. Mark
those on the frequency axis of the plot. Remember to convert from rad/sec to Hz.
3 Determine low or high frequency constant asymptote of gain by taking the limit of
H(s) as s 0 or infinity, respectively. Convert to
dB.
4 Start at one of the asymptotes that is constant. (see below if neither is constant). Move
along in frequency until you get to a breakpoint. Each breakpoint is associated with
a change in slope of +/-20 dB/decade (+/-6 dB/octave). From left to right, a zero
produces an increase in slope (The increase could be from negative to less
negative, or from positive to more positive, etc.) Each pole produces a decrease
in slope. Work through all the breakpoints, and check that the final asymptote is
correct.
6 Now fill in the phase by the same procedure: Find the phase on the asymptotes by
looking at the limit of H(j) as 0 or infinity. If the limit is real, the phase is
180 degrees or zero. If the limit is imaginary, the phase is +/-90 degress (-90 for a
negative imaginary limit).
If the limit is zero, you have to look at what direction it came in to zero from. If it came from
a positive imaginary number, the phase is 90 degree; a negative imaginary
number -90 degrees. If it came from a positive real number, the phase is 0, and if it came
from a negative real number, the phase is -90 Then from left to right, each pole
causes a 90 transition in phase, and every zero causes a +90 transition in phase.
You can use the rules for the slope of the transition, but its usually not worth the trouble
to get that exact.
Instead of starting at HF or LF asymptotes, you can start with the flat center part.
Consider the approximate value there, where s>>1 and s<<100. Then we
can write the transfer function, putting the negligible stuff in a small font: H(s) =
s/[(s+1)(s+100)] Then. Thus, we can approximate H(s) as s/[100s] = 1/100 or 40 dB in
the flat middle part. Then we can start there and sketch the rest. (It slopes down with
+/- 20 dB/decade slope on either side of the plateau.)
Sample Problems:
Solution:
Step 1: Rewrite the transfer function in proper form.
Make both the lowest order term in the numerator and denominator unity. The
numerator is an order 2 polynomial, the denominator is order 3.
A constant of 1
A pole at s=-100
A repeated pole at the origin (s=0)
The pole at 100 rad/sec is the green line. It is 0 dB up to the break frequency, then
falls with a slope of -20 dB/dec. The phase is 0 degrees up to 1/10 the break
frequency then falls linearly to -90 degrees at 10 times the break frequency.
The repeated poles at the origin are shown with the blue line. The slope is -40
dB/decade (because pole is repeated), and goes through 0 dB at 1 rad/sec. The
slope is -180 degrees (again because of double pole). The complex zero is shown
by the red line. The zeros give a dip in the magnitude plot of
Step 4: Draw the overall Bode diagram by adding up the results from step 3.
Solution:
Step 1: Rewrite the transfer function in proper form.
Make both the lowest order term in the numerator and denominator unity. The
numerator is an order 1 polynomial, the denominator is order 2.
A constant of 6
A zero at s=-10
Complex conjugate poles at the roots of s2+3s+50,
with
The plots for the complex conjugate poles are shown in blue. They cause a peak
of:
at a frequency of
This is shown by the blue circle. The phase goes from the low frequency
asymptote (0 degrees) at
Step 4: Draw the overall Bode diagram by adding up the results from step 3.
Nichols chart can be generated using the nichols(G) function for the MATLAB transfer function G. If the
nichols function is invoked without left-hand arguments, the Nichols chart is automatically generated;
otherwise one must use nichols in conjunction with the plot function. A Nichols grid can be drawn with the
ngrid function.
Information about the plots obtained with nichols(G) can be found by left-clicking the mouse on the curve. You
can find the curve's label, as well as the coordinates of the point on which you clicked, and the frequency.
Right-clicking away from a curve brings up a menu. From this menu, you can select characteristics, such as
peak response and stability margins. When selected, a dot appears on the curve at the appropriate point Let
your mouse rest on the point to read the value of the characteristic. You may also select choice for grid on or
off, returning to full view after zooming, and properties, such as labels, limits, units, style, and characteristics.
Sample Problems:
To produce a Nichols chart for the given system, with the closed-loop dB M-contours
superimposed, use the commands:
s = tf('s');
G = 45/(s*(s+5));
w = 0.5:50;
nichols(G,w);
ngrid;
The corner frequency of the lag term is at w = 5 rad/sec. We will like to include a range of
frequencies a decade above and below this corner frequency. Setting the frequency range from
0.5 to 50 rad/sec meets our requirements.
We see from the figure that the response line is nearly tangential to the 3dB M -contour.
Therefore the closed-loop frequency has no peak value above 3dB. Resonance
frequency, read from the plot, is 5.79 rad/sec. The intersection of the response line with -
3dB contour gives the bandwidth of the closed-loop system. Bandwidth, read from
Fig.M9.3,is 9.37 rad/sec. Gain and phase margins can also be determined from Nichols
chart. However, the margin function is a convenient alternative.
s = tf('s');
G = 1/(s*(s+1)*(s+10));
bode(G);
hold;
G1 = G;
G1.InputDelay = 1;
bode(G1);
In LTI object G1 created by MATLAB, input delay can be accessed by G1. InputDelay. In our
case, deadtime is 1 second; the command G1.InputDelay=1 sets the deadtime in the transfer
function model, as seen from the following MATLAB response.
>> G1
Transfer function:
...................................1
exp(-1*s) * ----------------------------
....................s^3 + 11 s^2 + 10s