Exploring bode plots for simple systems
From the series: Understanding Bode Plots
Learn how to build Bode plots for first-order systems in this MATLAB® Tech Talk by Carlos Osorio. A Bode plot describes the frequency response of a dynamic system and displays the magnitude and phase of the system response as a function of frequency in a logarithmic scale. You will learn how to interactively design Bode plots to study the effect of adding poles and zeros on the frequency response.
Published: 27 Mar 2013
We just saw how a function like Bode in MATLAB can quickly and easily create a frequency response plot directly from the dynamic equations of, or the input, output transfer functions of our system. The key as control engineers is not just to be able to create those plots. The important thing is having a good understanding of what those magnitude and phase traces are telling us about our system behavior and stability.
Bode plots were originally developed by Dr. Hendrik Bode, hence the name, while he was working for Bell Labs in the 1930s, just before World War II. This guy was a brilliant controls engineer, and he came up with what, at the time, was the groundbreaking idea of using asymptotic magnitude and phase plots to facilitate stability analysis and control system design in the frequency domain.
Remember that this was way before computers, so I guess engineers at the time were stuck with slide rulers, using them to manually calculate all those logarithms. The ideas behind the asymptotic approach are quite simple, but extremely powerful. And they will help us gain a better understanding of how those plots are actually built.
The simplest construct I can start with is a pure integrator, which corresponds to 1/s in the Laplace domain. If we replace s by jw, our function G becomes a vector on the negative imaginary axis. Negative because we are multiplying the numerator and denominator by the square root of -1.
This vector has a constant phase angle of -90 degrees, and a magnitude of 1/w. Notice that as the frequency omega goes from 0 to infinity, the magnitude of our vector would go from infinity to 0. In terms of dBs, the log of a fraction is the log of the numerator, in this case, 1, minus the log of the denominator, in this case, w.
We know that log of 1 is 0. So that part goes away and magnitude trace of the Bode plot becomes just a line, because we are plotting it on a horizontal axis that represents log of w. Notice that this line has a slope of -20 dBs per unit, which is a frequency decade in this case. The phase remains constant and -90 degrees, and is independent of the frequency.
Conversely, if we look at a pure differentiator, which corresponds to just s in the Laplace domain, because w is in the numerator now. In this case, the magnitude will be a line going up with a slope of +20 dBs per decade. And the phase will be a constant positive 90 degrees.
Now let's move on to our first art of construct like a single pole with a time constant of tau. Once again, if we want to look at the frequency response, we need to replace s by jw. The magnitude of that vector will be log of 1, which goes to 0, minus 20 times the log of the magnitude of the denominator.
On first impression this looks like it is going to be very hard to draw. But if you think of that expression, on an asymptotic manner, and break the diagram in two parts-- when the frequency is well below the pole, in this case, below 1/tau, radiance per second, tau multiplied by w will become very small and the number 1 will dominate the expression.
Note that this makes G become close to 1/1, which will be a vector on the real axis. Meaning that the phase will be very close to 0, and the log of its magnitude will be very close to 0, too. When the frequency is way higher than the pole, tau*w will become dominant, in which case, G becomes close to a negative, purely imaginary vector. Meaning that the phase will be close to -90 degrees, and the log of the magnitude will be close to a straight line, rolling off at -20 degrees per decade and crossing zero, where w equals to 1/tau.
Notice that the actual Bode plot deviates very little from our asymptotic approximation. Obviously, we are going to see the biggest difference around the cut-off value of 1/tau. From the plot, we can also see that the phase angle takes about two decades to shift 90 degrees. So if you want a little more accuracy on the angle, we can assume that the phase drops 45 degrees per decade before and after the value of a pole.
Using the same approach, we can see that a single 0 will result in a similar trace. Only in this case, because the 0 is in the numerator, the phase would shift +90 degrees, and the magnet to slope would be +20 dBs per decade.
At this point, I would like to give you a feel for how all of this works in a more interactive fashion. What we are looking at here is the Bode diagram for a constant transfer function of 1. Our system G, over here, is equal to 1. This means log of 1, which is 0 dB magnitude and 0 degrees of phase, because it's a positive real number.
Let's see what happens when I add a pole. Let's say close to 1 radian per second. We can see how that magnitude plot immediately breaks down with a -20 dBs per decade. And the phase shifts to -90 degrees.
If I move the pole to the right or to the left, making it faster or slower, all I am doing is shifting that kind of frequency. Let's erase that pole and bring in a 0. As expected, now we see a positive break in the magnitude and +90 in the phase. Notice that the magnitude of a pure 0 goes to infinity at high frequencies.
This is pretty undesirable behavior because, amongst other bad things, it will more than likely be amplifying all kinds of high frequency noise in our system. Normally if you have a pure differentiator or a 0, it will always be accompanied by at least a pole somewhere up the frequency range to bring the gain trees down.
Because of superposition of the graphs, remember that multiplication becomes sums on a logarithmic scale.
The plus 20 dB slope of the 0 gets canceled by the minus 20 DB slope of the pole. Similarly with the phase, the +90 degrees of the 0 gets pulled down by -90 degrees of the pole. If I actually wanted some attenuation at the higher frequencies, all I need to do is add another pole close to the first one. And now the role of rate becomes minus 20 dBs per decade.
If you want a sharper drop but higher frequencies, just add another pole and, boom, -40 degrees per decade. Anyways I think you would agree that this interactive design tool is way better than slide rules and graph paper. I don't know about you, but I like to believe that Dr. Bode who, by the way, spent many years teaching controls just across the river at Harvard, would have truly loved MATLAB.