BODE-ROUTH
APPLICATION
EXAMPLES
A BRIEF REMARK
Some of these examples have been obtained from the books Modern Control Engieneering (Ed. Prentice Hall, 2nd edition) and Discrete Time Control Systems (Ed. Prentice Hall, 2nd edition) Author: Katsuhiko Ogata, where you can also find a lot of more and different examples and the necessary theory.
-- O -- O -- O --
INDEX
-- O -- O -- O --
Example 1 (Bode): Plot the Bode diagram of the next transfer function:
SOLUTION:
You can put on the stack the transfer function in any of the next forms:
2: { 4 } 1: { { 0 -2 } } |
2: { 4 } 1: { 1 2 0 } |
or go directly into the command Bode and enter the numerator in the field NUM and the denominator in the field DEN. Once inside that command we have something like this:
Press ERASE to erase any previous plot in PICTURE and in the field T choose if you want to draw first the magnitude plot or the phase one. The next figure shows the two plots which you can obtain after pressing DRAW:
modulus diagram |
phase diagram |
Remember that the horizontal axis has been drawn using logarithmic scaling and therefore the -1 and the 2 which you can see at both sides of the graphs indicating the horizontal range, really indicate that the range goes from 10-1 to 102
The value at the bottom of the LCD really indicates the coordinate to the bottom of the screen and not to the menu.
You could use TRACE to move over the modulus graph and/or activate the coordinates visualization pressing (X,Y).
Really I think that this command doesn't involve very much complexity so I'm not gonna give more examples about it.
-- O -- O -- O --
Example 2(Nyquist): Draw de Nyquist plot of the previous transfer function.
SOLUTION:
Acting as in the previous example once inside the Nyquist command we have something like:
The resulting graph is in this case the next:
-- O -- O -- O --
Ejemplo 3 (Nyquist+Resp): Study by means of the Nyquist criterion the stability of the system whose open loop transfer function is:
SOLUTION:
Observe that
the open loop transfer function has an unstable pole at 1
then the open loop system is unstable.
Also observe that the gain K is greater
than 1. Supposing a value of K = 3,
once inside the command Nyquist we have
something like this:
Deactivate the automatic scaling to see the number of turns around the point -1+j0 and press DRAW to obtain
We still can't know with that figure the number of turns around that point because the visualization ranges don't fit very well. For this reason we press ZOOM and afterwards ZOUT obtaining:
With all the data compiled now we are able to analyze the system with the Nyquist criterion wich stablish that a system is stable if accomplish that:
Z = N + P
where
In our case P = 1
since the open loop transfer function given at
the begining of this example had an unstable pole at 1.
The value of N is in this case equal to -1
because the Nyquist diagram turns around the point -1+j0
once COUNTERclockwise.
With all this we obtain Z = -1 + 1 = 0 wich
implies that the closed loop system is stable !
because
has no zeros at the right halfplane of the s plane wich is consistent with the Nyquist criterion.
This can be corroborated if we represent the system step response after closing the loop as shown hereafter:
5: { 3 9} 4: { 1 -1 0 } 3: { 1 } 2: { 1 } 1: -1 |
->LC |
2: { 3 9
} 1: { 1 2 9 } |
and after executing the command Resp we should see that the system step response is:
![]() |
![]() |
This is one of the cases where an unstable open loop system is stabilized when the loop is closed.
-- O -- O -- O --
Example 4 (Nichols): Study by means of the Nichols diagram the stability of the system whose transfer function is:
SOLUTION:
Inside the command Nichols once entered the transfer function let's increase the resolution for the calculations to be more exact, decreasing the value of the field RES from 0.2 downto 0.1. With all that we start from
to obtain after press DRAW (erasing if necessary the previous plot in PICTURE pressing ERASE) the next plot
In the figure we can see two points rounded by a circle which we have called a and b and which we shall analyze in depth because they are a bit special. But before let's obtain their coordinates placing the cursor at their location and pressing (X,Y), wherewith we obtain
a |
b |
Point a: It'll give us an approximate value of the phase margin that coincides with the distance from the crossing point of the graph with the horizontal axis at -180º. So there starting from the coordinates given by the previous figures the phase margin is
-130-(-180) = 50°
Point b: It allows us to obtain an approximate value of the gain margin which coincides with the distance from this point to the horizontal axis and which is equal to
0 - (-6.03) = 6.03 dB
Hence we conclude that the given system is stable because its margins are positive.
You could verify the calculated values with the exact one which you can find by means of the command Data and which result in
Gain margin = 6.020599... dB
Phase margin = 50.290385...º
-- O -- O -- O --
Example 5 (Nichols): Draw the Nichols plot of the system whose transfer function is
SOLUTION: In this case the diagram is:
at first sight we observe that the system is unstable because at least perceptibly the gain margin is negative because it is equal to 0-x where x is the positive value of the distance from the jump to the horizontal axis.
-- O -- O -- O --
Example 6 (RLoc): Draw the Root Locus of the next system for different values of the gain K
with
SOLUTION:
Since the Root Locus is drawn for the open loop transfer function the first thing we have to do is calculate it multiplying G and H by means of the F* Neopolys command
4: { 1 3
} 3: { { -1 0 } } 2: { 1 2 } 1: 1 |
F* |
2: { 1 5
6 } 1: { 1 1 0 } |
Once inside the RLoc command input form we find
where as you
can see the field LIN has been checked to draw
with lines.
Pressing DRAW (after erasing PICTURE by means of
ERASE if necessary) we see that the plot starts
to draw.
You'll have to press a key for the draw process to stop.
-- O -- O -- O --
Example 7 (RLoc & Data & Routh): Study the values of the gain K which make the system of the previous example with
to be unstable.
SOLUTION:
As we did before, we calculate the open loop transfer function multiplying both, the direct transfer function and the feedback transfer function (which in this case is 1) applying
3: { 1 2
4 } 2: { { 0 -4 -6 } } 1: { 1 1.4 1 } |
P* |
2: { 1 2
4 } 1: { 1 11.4 39 43.6 24 0 } |
and after entering in the command RLoc we have
We have checked the field LIN to draw with lines and after pressing DRAW we obtain:
The menu doesn't appear because it has been hidden pressing EDIT -> NXT -> MENU
As we can see the root locus for this system seems to cross the imaginary axis (the vertical axis) in various points (we could have activated the option AXES in the RLoc command menu to visualize the axes), wherewith it is possible that different value ranges where the system passes from being stable to unstable and vice versa are present. To obtain the critical values we use the command Data selecting the option Stability limits to obtain
![]() |
![]() |
And we verify that the root locus cross the imaginary axis at the points indicated by the figures, being the gain values those one wich go with them.
I suppose you noticed that the first thing the command Data did was to apply the Routh command.
-- O -- O -- O --
Example 8 (Resp & ->LC): Calculate the system response of the next continuous system with unitarian feedback and diret transfer function equal to
in the presence of an unitarian step input.
SOLUTION:
We first must obtain the closed loop transfer function for which we use the command ->LC doing
5: { .4 1
} 4: { 1 .6 0 } 3: { 1 } 2: { 1 } 1: -1 |
->LC |
2: { .4 1
1 } 1: { 1 1 1 } |
Now, with this closed loop transfer function we execute the command Resp and we'll find
Since we have already selected by default the step input and in the field A there is a 1 (indicating that the step input is unitarian), we press DRAW to obtain the esponse graph which is shown hereafter
As from this graph we can obtain at first sight varoius useful data:
1º) As you can perceive the final response value is approximately equal to 1 (the dotted line represents the input which if you remember was an unitarian step).
2º) We can obtain approximate values for the maximum overshoot and the peak time using TRACE along with (X,Y) and placing the cursor at the maximum graph value as shown in the next figure:
That is, the maximum overshoot will be more or less equal to
( 1.18 - 1 ) · 100 = 18%
and the pek time corresponds to the t value at that point and which is 3.15 s.
-- O -- O -- O --
Example 9 (Data): Calculate the exact values of the step response parameters in the previous example.
SOLUTION:
With the closed loop transfer function obtained in the previous example let's go to the command Data and after selecting Step response and after indicating that the system is continuous we shall obtain the exact values in the next windows:
![]() |
![]() |
-- O -- O -- O --
Example 10 (Cntr): We wish to design a controller so that the previous system to have a new maximum overshoot less or equal than 10% and a settling time less than 2 seconds keeping the steady state error equal to zero.
SOLUTION:
We shall start from the open loop transfer function and we will suppose a PD (proportional-derivative) controller because this controller type improve the transient part of the response and doesn't affect significantly to the stationary. Hence we just have to execute the command Cntr and enter the open loop transfer function en the fields NUM and DEN.
Remember that if you put on the stack the transfer function before entering the command the fields NUM and DEN are automaticly loaded with those values.
We'll get
where we have selected
that the specifications will be given in terms of the error,
the maximum overshoot (Mp) and the settling time (ts).
Let the field DATA to be deactivated to obtain
the controlled system response data and thus be able to see if
the controlled system achieve the specifications, and now press CNTR
to introduce teh specifications before calculating the
controller:
We have introduced the value 2 as the settling time desired and after pressing OK we obtain the controller parameters, its aspect and the response data of the system controlled with the controller recently calculated
![]() |
![]() |
As we can see in the last
image, with this controller the specifications are well achieved
since the settling time is .4645
which is less than 2 and the maximum
overshoot is 9.64 also less than the 10
as were desired.
In short, the new system with the controller will be
you can press DRAW to jump directly to the command Resp with the controlled closed loop system and represent graphicly its step response which as you can verify results in
-- O -- O -- O --
Example 11 (C2DM & Data & Resp): Given the continuous system whose plant is modeled by the transfer function shown in the figure
and which have a delay equal to 2 seconds we wish to design a PI digital controller that combined with a sampler whose sample period is 1 s and a zero holder make the dominant closed loop poles be located at Zd = 0.5629 + j·0.409.
SOLUTION:
First let's observe the system response obtained after closing the loop
5: { 1 } 4: { 1 1 } 3: { 1 } 2: { 1 } 1: -1 |
->LC |
2: { 1 } 1: { 1 2 } |
The delay has not been considered at this point because the graph is the same one, with the difference that it would start in the point x = 2 instead of the origin.
As you can appreciate, the system has a great steady state error. For this reason we shall try to calculate a controller that decrease that error. The PI controllers are good for this purposse because they improve the response in the stationary zone; but this controller type adds poles to the system so that it can even disstabilize a stable system.
Since we have to add a zero holder let's discretize the system using the command C2DM applying the zero holder method ( Zho ) with the sample period given before (1 s):
Activate the user flag 2 ( '2 SF' ) for the result to be automaticly simplificated.
Remember that continuous delays in the form exp(-a·s) are transformed in discrete delays as negative powers of z when discretizing, that is, the previous term would be converted in a factor z^(-a) which we might multiply to the resulting transfer function.
In short
3: { 1 } 2: { 1 1 } 1: 1 |
C2DM |
2: {
.632120558829 } 1: { 1 -.36787944117 } |
and multiplying by the factor due to the second order delay is equivalent to add two zeros to the denominator:
2: { .632120558829 }
1: { 1 -.36787944117 0 0 }
that is, the system and the zero holder are now represented together by the discrete time transfer function
We execute now the command Cntr, selecting the PI controller and activating the option DISC indicating that we are going to calculate a discrete controller. The we have
After pressing CNTR let's introduce the desired closed loop poles coordinates specificated:
and ... ¡ here we go !, just press OK to get the controller and the controlled system response parameters.
![]() |
![]() |
You can now press DRAW to execute the command Resp and draw the controlled system response:
DON'T FORGET TO ACTIVATE 'DISC' IN THE COMMAND 'Resp' BEFORE PLOTTING, TO INDICATE THAT IT IS A DISCRETE TIME SYSTEM.
Finally you can see who the system responds with the controller recently calculated pressing DRAW
Observe that the delay appears clearly because the response starts two samples after the origin instead from the origin itself.
-- O -- O -- O --
Example 12 (Routh): Calculate the range of values of de gain K for which the next system is stable:
SOLUTION:
Since the closed loop transfer function is equal to
the system's characteristic equation will be
usint the command Routh with that characteristic equation at level 1
1: { 1 3 3 2 K }
we would obtain at level 2 the Routh matrix and at level 1 the first column of that matrix that after all is just what we have to analyze to make the stability study. The matrix is
For this system to be stable all the elements in the first column must be positive.With thah condition we can obtain the limit values of K.
Hence the solution to our problem is
0 < K < 14/9