Jump to content

Root locus analysis: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
DrWoodburn (talk | contribs)
GreenC bot (talk | contribs)
Rescued 1 archive link. Wayback Medic 2.5 per WP:URLREQ#ieee.org
 
(37 intermediate revisions by 25 users not shown)
Line 1: Line 1:
{{Short description|Stability criterion in control theory}}{{For|the behavior of polynomial roots in general|Geometrical properties of polynomial roots}}
[[File:Spirule.jpg|thumb|Spirule]]
In [[control theory]] and [[stability theory]], '''root locus analysis''' is a graphical method for examining how the roots of a system change with variation of a certain system parameter, commonly a [[Loop gain|gain]] within a [[feedback]] system. This is a technique used as a [[stability criterion]] in the field of [[classical control theory]] developed by [[Walter R. Evans]] which can determine [[stable polynomial|stability]] of the system. The root locus plots the [[zeros and poles|poles]] of the [[closed loop transfer function]] in the complex [[s-plane|''s''-plane]] as a function of a gain parameter (see [[pole–zero plot]]).
{{More citations needed|date=January 2008}}{{Moreinline|date=December 2022}}[[File:Spirule.jpg|thumb|Spirule]]In [[control theory]] and [[stability theory]], '''root locus analysis''' is a graphical method for examining how the roots of a system change with variation of a certain system [[parameter]], commonly a [[Loop gain|gain]] within a [[feedback]] system. This is a technique used as a [[stability criterion]] in the field of [[classical control theory]] developed by [[Walter R. Evans]] which can determine [[stable polynomial|stability]] of the system. The root locus plots the [[zeros and poles|poles]] of the [[closed loop transfer function]] in the complex [[s-plane|''s''-plane]] as a function of a gain parameter (see [[pole–zero plot]]).
Evans also invented in 1948 an [[analog computer]] to compute root loci, called a "Spirule" (after "spiral" and "[[slide rule]]"); it found wide use before the advent of [[digital computer]]s.<ref name="McKelvey School of Engineering at Washington University in St. Louis">{{cite web | title=1990 | website=McKelvey School of Engineering at Washington University in St. Louis | url=https://engineering.wustl.edu/offices-services/alumni/McKelvey-Engineering-Award-Years/1990.html | access-date=2023-03-12}}</ref><ref>{{Citation|last=Evans|first=Walter R.|title=Spirule Instructions|year=1965|location=Whittier, CA|publisher=The Spirule Company|author-link=Walter R. Evans}}</ref><ref name="Robert H. 2012 p. 727">{{cite book | last=Robert H. | first=J.C. | title=Dynamics of Physical Systems | publisher=Dover Publications | series=Dover Civil and Mechanical Engineering | year=2012 | isbn=978-0-486-13969-2 | url=https://books.google.com/books?id=ZVa8AQAAQBAJ&pg=PA727 | access-date=2023-03-12 | page=727}}</ref><ref name="Doebelin 1985 p. 312">{{cite book | last=Doebelin | first=E.O. | title=Control System Principles and Design | publisher=Wiley | year=1985 | isbn=978-0-471-08815-8 | url=https://books.google.com/books?id=dTmh81Dz7PgC&pg=PA312 | access-date=2023-03-12 | page=312}}</ref><ref name="Savant 1958 p. ">{{cite book | last=Savant | first=C.J. | title=Basic Feedback Control System Design | publisher=McGraw-Hill | series=Engineering special collection | year=1958 | url=https://books.google.com/books?id=DtVSAAAAMAAJ | access-date=2023-03-12 | page=}}</ref><ref name="Harris 1961 p. ">{{cite book | last=Harris | first=L.D. | title=Introduction to Feedback Systems | publisher=Wiley | year=1961 | isbn=978-0-598-48455-0 | url=https://books.google.com/books?id=9RcoAQAAMAAJ | access-date=2023-03-12 | page=}}</ref><ref name="DAzzo Houpis 1968 p. ">{{cite book | last1=D'Azzo | first1=J.J. | last2=Houpis | first2=C.H. | title=Principles of Electrical Engineering: Electric Circuits, Electronics, Instrumentation, Energy Conversion, Control Systems, Computers | publisher=C. E. Merrill Publishing Company | year=1968 | url=https://books.google.com/books?id=Ns4iAAAAMAAJ | access-date=2023-03-12 | page=}}</ref><ref name="Gupta Hasdorff 1983 p. ">{{cite book | last1=Gupta | first1=S.C. | last2=Hasdorff | first2=L. | title=Fundamentals of Automatic Control | publisher=Krieger | year=1983 | isbn=978-0-89874-578-8 | url=https://books.google.com/books?id=MRooAQAAMAAJ | access-date=2023-03-12 | page=}}</ref><ref name="Dransfield 1968 p. ">{{cite book | last=Dransfield | first=P. | title=Engineering Systems and Automatic Control | publisher=Prentice-Hall | year=1968 | url=https://books.google.com/books?id=sAZCAAAAIAAJ | access-date=2023-03-12 | page=}}</ref>

A graphical method that uses a special protractor called a "Spirule" was once used to determine angles and draw the root loci.<ref>{{Citation|last=Evans|first=Walter R.|title=Spirule Instructions|year=1965|location=Whittier, CA|publisher=The Spirule Company|authorlink=Walter R. Evans}}</ref>


==Uses==
==Uses==
[[File:Effect of Pole Location in a Root Locus Plot.PNG|thumbnail|Effect of pole location on a second order system's natural frequency and damping ratio. Note that this pole's complex conjugate (which necessarily exists since this pole has a nonzero imaginary component) is not shown.]]
[[File:Effect of Pole Location in a Root Locus Plot.PNG|thumbnail|Effect of pole location on a second order system's natural frequency and damping ratio. This pole's [[complex conjugate]] (which necessarily exists since this pole has a nonzero imaginary component) is not shown.]]
In addition to determining the stability of the system, the root locus can be used to design the [[damping ratio]] (''ζ'') and [[natural frequency]] (''ω''<sub>''n''</sub>) of a feedback system. Lines of constant damping ratio can be drawn radially from the origin and lines of constant natural frequency can be drawn as arccosine whose center points coincide with the origin. By selecting a point along the root locus that coincides with a desired damping ratio and natural frequency, a gain ''K'' can be calculated and implemented in the controller. More elaborate techniques of controller design using the root locus are available in most control textbooks: for instance, [[Lead-lag compensator|lag, lead]], PI, PD and [[PID controller|PID]] controllers can be designed approximately with this technique.
In addition to determining the stability of the system, the root locus can be used to design the [[damping ratio]] (''[[Zeta|ζ]]'') and [[natural frequency]] (''ω''<sub>''n''</sub>) of a feedback system. Lines of constant damping ratio can be drawn radially from the origin and lines of constant natural frequency can be drawn as arccosine whose center points coincide with the origin. By selecting a point along the root locus that coincides with a desired damping ratio and natural frequency, a gain ''K'' can be calculated and implemented in the controller. More elaborate techniques of controller design using the root locus are available in most control textbooks: for instance, [[Lead-lag compensator|lag, lead]], PI, PD and [[PID controller|PID]] controllers can be designed approximately with this technique.


The definition of the [[damping ratio]] and [[natural frequency]] presumes that the overall feedback system is well approximated by a second order system; i.e. the system has a dominant pair of poles. This is often not the case, so it is good practice to simulate the final design to check if the project goals are satisfied.
The definition of the [[damping ratio]] and [[natural frequency]] presumes that the overall feedback system is well approximated by a second order system; i.e. the system has a dominant pair of poles. This is often not the case, so it is good practice to simulate the final design to check if the project goals are satisfied.
Line 12: Line 11:
==Definition==
==Definition==


The root locus of a feedback system is the graphical representation in the complex [[s-plane|''s''-plane]] of the possible locations of its [[closed-loop poles]] for varying values of a certain system parameter. The points that are part of the root locus satisfy the [[angle condition]]. The value of the parameter for a certain point of the root locus can be obtained using the [[magnitude condition]].
The root locus of a feedback system is the graphical representation in the complex [[s-plane|''s''-plane]] of the possible locations of its [[closed-loop poles]] for varying values of a certain system parameter. The points that are part of the root locus satisfy the angle condition. The value of the parameter for a certain point of the root locus can be obtained using the [[magnitude condition]].


Suppose there is a feedback system with input signal <math>X(s)</math> and output signal <math>Y(s)</math>. The forward path [[transfer function]] is <math>G(s)</math>; the feedback path transfer function is <math>H(s)</math>.
Suppose there is a feedback system with input signal <math>X(s)</math> and output signal <math>Y(s)</math>. The forward path [[transfer function]] is <math>G(s)</math>; the feedback path transfer function is <math>H(s)</math>.
Line 22: Line 21:
:<math>T(s) = \frac{Y(s)}{X(s)} = \frac{G(s)}{1+G(s)H(s)}</math>
:<math>T(s) = \frac{Y(s)}{X(s)} = \frac{G(s)}{1+G(s)H(s)}</math>


Thus, the closed-loop poles of the closed-loop transfer function are the roots of the characteristic equation <math>1 + G(s)H(s) = 0</math>. The roots of this equation may be found wherever <math>G(s)H(s) = -1</math>.
Thus, the closed-loop poles of the closed-loop transfer function are the roots of the characteristic equation <math>1 + G(s)H(s) = 0</math>. The roots of this equation may be found wherever <math>1+G(s)H(s) = 0</math>.


In systems without pure delay, the product <math>G(s)H(s)</math> is a rational polynomial function and may be expressed as{{sfn|Kuo|1967|p=332}}
In systems without pure delay, the product <math>G(s)H(s)</math> is a rational polynomial function and may be expressed as{{sfn|Kuo|1967|p=332}}
Line 32: Line 31:
The factoring of <math>K</math> and the use of simple monomials means the evaluation of the rational polynomial can be done with vector techniques that add or subtract angles and multiply or divide magnitudes. The vector formulation arises from the fact that each monomial term <math>(s-a)</math> in the factored <math>G(s)H(s)</math> represents the vector from <math>a</math> to <math>s</math> in the s-plane. The polynomial can be evaluated by considering the magnitudes and angles of each of these vectors.
The factoring of <math>K</math> and the use of simple monomials means the evaluation of the rational polynomial can be done with vector techniques that add or subtract angles and multiply or divide magnitudes. The vector formulation arises from the fact that each monomial term <math>(s-a)</math> in the factored <math>G(s)H(s)</math> represents the vector from <math>a</math> to <math>s</math> in the s-plane. The polynomial can be evaluated by considering the magnitudes and angles of each of these vectors.


According to vector mathematics, the angle of the result of the rational polynomial is the sum of all the angles in the numerator minus the sum of all the angles in the denominator. So to test whether a point in the ''s''-plane is on the root locus, only the angles to all the open loop poles and zeros need be considered. This is known as the [[angle condition]].
According to vector mathematics, the angle of the result of the rational polynomial is the sum of all the angles in the numerator minus the sum of all the angles in the denominator. So to test whether a point in the ''s''-plane is on the root locus, only the angles to all the open loop poles and zeros need be considered. This is known as the angle condition.


Similarly, the magnitude of the result of the rational polynomial is the product of all the magnitudes in the numerator divided by the product of all the magnitudes in the denominator. It turns out that the calculation of the magnitude is not needed to determine if a point in the s-plane is part of the root locus because <math>K</math> varies and can take an arbitrary real value. For each point of the root locus a value of <math>K</math> can be calculated. This is known as the magnitude condition.<!-- (have not been able to find a photo of a spirule yet.) -->
Similarly, the magnitude of the result of the rational polynomial is the product of all the magnitudes in the numerator divided by the product of all the magnitudes in the denominator. It turns out that the calculation of the magnitude is not needed to determine if a point in the s-plane is part of the root locus because <math>K</math> varies and can take an arbitrary real value. For each point of the root locus a value of <math>K</math> can be calculated. This is known as the magnitude condition.<!-- (have not been able to find a photo of a spirule yet.) -->
Line 39: Line 38:


===Angle condition===
===Angle condition===
{{main|Angle condition}}

A point <math>s</math> of the complex ''s''-plane satisfies the angle condition if
A point <math>s</math> of the complex ''s''-plane satisfies the angle condition if


Line 49: Line 46:
:<math>\sum_{i=1}^{m}\angle(s+z_i) - \sum_{i=1}^{n}\angle(s+p_i) = \pi</math>
:<math>\sum_{i=1}^{m}\angle(s+z_i) - \sum_{i=1}^{n}\angle(s+p_i) = \pi</math>


that is, the sum of the angles from the open-loop zeros to the point <math>s</math> minus the angles from the open-loop poles to the point <math>s</math> has to be equal to <math>\pi</math>, or 180 [[Degree (angle)|degrees]].
that is, the sum of the angles from the open-loop zeros to the point <math>s</math> (measured per zero w.r.t. a horizontal running through that zero) minus the angles from the open-loop poles to the point <math>s</math> (measured per pole w.r.t. a horizontal running through that pole) has to be equal to <math>\pi</math>, or 180 [[Degree (angle)|degrees]]. Note that these interpretations should not be mistaken for the angle differences between the point <math>s</math> and the zeros/poles.


===Magnitude condition===
===Magnitude condition===
{{main|Magnitude condition}}

A value of <math>K</math> satisfies the magnitude condition for a given <math>s</math> point of the root locus if
A value of <math>K</math> satisfies the magnitude condition for a given <math>s</math> point of the root locus if


Line 65: Line 60:
[[Image:RL&ZARL-(1 3)-(1 3 5 1).png|thumb|300px|RL = root locus; ZARL = zero angle root locus]]
[[Image:RL&ZARL-(1 3)-(1 3 5 1).png|thumb|300px|RL = root locus; ZARL = zero angle root locus]]


Using a few basic rules, the root locus method can plot the overall shape of the path (locus) traversed by the roots as the value of <math>K</math> varies. The plot of the root locus then gives an idea of the stability and dynamics of this feedback system for different values of <math>K</math>.<ref>{{Citation |first=W. R. |last=Evans |authorlink=Walter R. Evans |title=Graphical Analysis of Control Systems |journal= Trans. AIEE |issn=0096-3860 |volume=67 |issue=1 |pages= 547&ndash;551 |date= January 1948 |doi= 10.1109/T-AIEE.1948.5059708}}</ref><ref>{{Citation |first=W. R. |last=Evans |authorlink=Walter R. Evans |title=Control Systems Synthesis by Root Locus Method |journal=Trans. AIEE |issn=0096-3860 |volume=69 |issue=1 |pages=66&ndash;69 |date= January 1950 |doi=10.1109/T-AIEE.1950.5060121 }}</ref> The rules are the following:
Using a few basic rules, the root locus method can plot the overall shape of the path (locus) traversed by the roots as the value of <math>K</math> varies. The plot of the root locus then gives an idea of the stability and dynamics of this feedback system for different values of <math>K</math>.<ref>{{Citation |first=W. R. |last=Evans |author-link=Walter R. Evans |title=Graphical Analysis of Control Systems |journal= Trans. AIEE |issn=0096-3860 |volume=67 |issue=1 |pages= 547–551 |date= January 1948 |doi= 10.1109/T-AIEE.1948.5059708|s2cid=51634121 }}</ref><ref>{{Citation |first=W. R. |last=Evans |author-link=Walter R. Evans |title=Control Systems Synthesis by Root Locus Method |journal=Trans. AIEE |issn=0096-3860 |volume=69 |issue=1 |pages=66–69 |date= January 1950 |doi=10.1109/T-AIEE.1950.5060121 |s2cid=51633514 }}</ref> The rules are the following:

* Mark open-loop poles and zeros
* Mark open-loop poles and zeros
* Mark real axis portion to the left of an odd number of poles and zeros
* Mark real axis portion to the left of an odd number of poles and zeros
Line 79: Line 73:
:<math>\phi_l = \frac{180^\circ + (l - 1)360^\circ}{P-Z}, l = 1, 2, \ldots, P - Z</math>
:<math>\phi_l = \frac{180^\circ + (l - 1)360^\circ}{P-Z}, l = 1, 2, \ldots, P - Z</math>


:<math>\alpha = \frac{\sum_P - \sum_Z}{P - Z}</math>
:<math>\alpha = \frac{\operatorname{Re}\left(\sum_P - \sum_Z\right)}{P - Z}</math>

where <math>\sum_P</math> is the sum of all the locations of the poles, and <math>\sum_Z</math> is the sum of all the locations of the explicit zeros.


where <math>\sum_P</math> is the sum of all the locations of the poles, <math>\sum_Z</math> is the sum of all the locations of the explicit zeros and <math>\operatorname{Re}()</math> denotes that we are only interested in the real part.
* Phase condition on test point to find angle of departure
* Phase condition on test point to find angle of departure
* Compute breakaway/break-in points
* Compute breakaway/break-in points
Line 113: Line 106:
:<math> s^3 + 3s^2 + (5 + K)s + (1 + 3 K) = 0. </math>
:<math> s^3 + 3s^2 + (5 + K)s + (1 + 3 K) = 0. </math>


The following MATLAB code will plot the root loci of the closed-loop transfer function as <math>K</math> varies using the described manual method as well as the <code>rlocus</code> build-in function:
The following MATLAB code will plot the root locus of the closed-loop transfer function as <math>K</math> varies using the described manual method as well as the <code>rlocus</code> built-in function:


<source lang="Matlab">
<syntaxhighlight lang="Matlab">
% Manual method
% Manual method
K_array = (0:0.1:220).';
K_array = (0:0.1:220).'; % .' is a transpose. Looking up in Matlab documentation.
NK = length(K_array);
NK = length(K_array);
x_array = zeros(NK, 3);
x_array = zeros(NK, 3);
Line 124: Line 117:
for nK = 1:NK
for nK = 1:NK
K = K_array(nK);
K = K_array(nK);
C = [1, 3, (5 + K), (1 + K*3)];
C = [1, 3, (5 + K), (1 + 3*K)];
r = roots(C).';
r = roots(C).';
x_array(nK,:) = real(r);
x_array(nK,:) = real(r);
Line 138: Line 131:
figure();
figure();
rlocus(sys);
rlocus(sys);
</syntaxhighlight>
</source>
[[File:Root Locus Plot.png|thumb|315x315px|Root Locus Plot]]
The following Python code can also be used to calculate and plot the root locus of the closed-loop transfer function using the Python Control Systems Library<ref>{{Citation |title=The Python Control Systems Library |date=2023-12-19 |url=https://github.com/python-control/python-control |access-date=2023-12-19 |publisher=Control Systems Library for Python}}</ref> and Matplotlib<ref>{{Cite web |title=Matplotlib — Visualization with Python |url=https://matplotlib.org/ |access-date=2023-12-19 |website=matplotlib.org}}</ref>.<syntaxhighlight lang="python" line="1">
import control as ct
import matplotlib.pyplot as plt

# Define the transfer function
sys = ct.TransferFunction([1, 3], [1, 3, 5, 1])

# Calculate and plot the root locus
roots, gains = ct.root_locus(sys, plot=True)
plt.show()
</syntaxhighlight>


==''z''-plane versus ''s''-plane==
==''z''-plane versus ''s''-plane==
<!-- There is an image here but I can't get it to display: [[b:Image:Bilinear_Transform_Mapping.svg]] -->
<!-- There is an image here but I can't get it to display: [[b:Image:Bilinear Transform Mapping.svg]] -->
The root locus method can also be used for the analysis of [[sampled data systems]] by computing the root locus in the [[z-transform|''z''-plane]], the discrete counterpart of the ''s''-plane. The equation {{math|''z''&nbsp;{{=}}&nbsp;''e''<sup>''sT''</sup>}} maps continuous ''s''-plane poles (not zeros) into the ''z''-domain, where {{mvar|T}} is the sampling period. The stable, left half ''s''-plane maps into the interior of the unit circle of the ''z''-plane, with the ''s''-plane origin equating to ''|z|''&nbsp;=&nbsp;1 (because&nbsp;''e''<sup>0</sup>&nbsp;=&nbsp;1). A diagonal line of constant damping in the ''s''-plane maps around a spiral from (1,0) in the ''z'' plane as it curves in toward the origin. Note also that the Nyquist [[aliasing]] criteria is expressed graphically in the ''z''-plane by the ''x''-axis, where {{math|''&omega;nT''&nbsp;{{=}}&nbsp;''&pi;''}}. The line of constant damping just described spirals in indefinitely but in sampled data systems, frequency content is aliased down to lower frequencies by integral multiples of the [[Nyquist frequency]]. That is, the sampled response appears as a lower frequency and better damped as well since the root in the ''z''-plane maps equally well to the first loop of a different, better damped spiral curve of constant damping. Many other interesting and relevant mapping properties can be described, not least that ''z''-plane controllers, having the property that they may be directly implemented from the ''z''-plane transfer function (zero/pole ratio of polynomials), can be imagined graphically on a ''z''-plane plot of the open loop transfer function, and immediately analyzed utilizing root locus.
The root locus method can also be used for the analysis of [[sampled data systems]] by computing the root locus in the [[z-transform|''z''-plane]], the discrete counterpart of the ''s''-plane. The equation {{math|''z''&nbsp;{{=}}&nbsp;''e''<sup>''sT''</sup>}} maps continuous ''s''-plane poles (not zeros) into the ''z''-domain, where {{mvar|T}} is the sampling period. The stable, left half ''s''-plane maps into the interior of the unit circle of the ''z''-plane, with the ''s''-plane origin equating to ''|z|''&nbsp;=&nbsp;1 (because&nbsp;''e''<sup>0</sup>&nbsp;=&nbsp;1). A diagonal line of constant damping in the ''s''-plane maps around a spiral from (1,0) in the ''z'' plane as it curves in toward the origin. The Nyquist [[aliasing]] criteria is expressed graphically in the ''z''-plane by the ''x''-axis, where {{math|''ωnT''&nbsp;{{=}}&nbsp;''π''}}. The line of constant damping just described spirals in indefinitely but in sampled data systems, frequency content is aliased down to lower frequencies by integral multiples of the [[Nyquist frequency]]. That is, the sampled response appears as a lower frequency and better damped as well since the root in the ''z''-plane maps equally well to the first loop of a different, better damped spiral curve of constant damping. Many other interesting and relevant mapping properties can be described, not least that ''z''-plane controllers, having the property that they may be directly implemented from the ''z''-plane transfer function (zero/pole ratio of polynomials), can be imagined graphically on a ''z''-plane plot of the open loop transfer function, and immediately analyzed utilizing root locus.


Since root locus is a graphical angle technique, root locus rules work the same in the {{mvar|z}} and {{mvar|s}} planes.
Since root locus is a graphical angle technique, root locus rules work the same in the {{mvar|z}} and {{mvar|s}} planes.
Line 149: Line 154:


==See also==
==See also==
*[[Phase margin]]
* [[Phase margin]]
*[[Routh–Hurwitz stability criterion]]
* [[Routh–Hurwitz stability criterion]]
*[[Nyquist stability criterion]]
* [[Nyquist stability criterion]]
*[[Bode plot#Gain margin and phase margin|Gain and phase margin]]
* [[Bode plot#Gain margin and phase margin|Gain and phase margin]]
*[[Bode plot]]
* [[Bode plot]]


== References ==
== References ==
{{reflist|25em}}
{{More citations needed|date=January 2008}}
* {{cite book |last=Kuo |first=Benjamin C. |title=Automatic Control Systems |edition=second |publisher=Prentice-Hall |location=Englewood Cliffs, NJ |year=1967 |lccn=67016388 |asin=B000KPT04C |oclc=3805225 |chapter=Root Locus Technique |pages=329–388}}
{{reflist}}
*{{citation |last=Kuo |first=Benjamin C. |title=Automatic Control Systems |edition=second |publisher=Prentice-Hall |location=Englewood Cliffs, NJ |year=1967 |lccn=67016388 |asin=B000KPT04C |oclc=3805225 |isbn= |chapter=Root Locus Technique |pages=329–388}}


==Further reading==
==Further reading==
*{{Citation
* {{Citation
|title= Numerical Computation of Root Loci Using the Newton-Raphson Technique
|title= Numerical Computation of Root Loci Using the Newton-Raphson Technique
|first= R. H.
|first1= R. H.
|last=Ash
|last1=Ash
|first2= G. H.
|first2= G. H.
|last2= Ash
|last2= Ash
Line 171: Line 175:
|volume= 13
|volume= 13
|issue= 5
|issue= 5
|pages= 576–582
|pages= 576–582
|doi= 10.1109/TAC.1968.1098980}}
|doi= 10.1109/TAC.1968.1098980}}
*{{Citation
* {{Citation
|title= Design Data to assist the Plotting of Root Loci (Part I)
|title= Design Data to assist the Plotting of Root Loci (Part I)
|first= S. E.
|first= S. E.
Line 181: Line 185:
|volume= 12
|volume= 12
|issue= 119
|issue= 119
|pages= 404&ndash;407
|pages= 404–407
|doi=}}
}}
*{{Citation
* {{Citation
|title= Design Data to assist the Plotting of Root Loci (Part II)
|title= Design Data to assist the Plotting of Root Loci (Part II)
|first= S. E.
|first= S. E.
Line 191: Line 195:
|volume= 12
|volume= 12
|issue= 120
|issue= 120
|pages= 556&ndash;559
|pages= 556–559
|doi=}}
}}
*{{Citation
* {{Citation
|title= Design Data to assist the Plotting of Root Loci (Part III)
|title= Design Data to assist the Plotting of Root Loci (Part III)
|first= S. E.
|first= S. E.
Line 201: Line 205:
|volume= 12
|volume= 12
|issue= 121
|issue= 121
|pages= 645&ndash;647
|pages= 645–647
|doi=}}
}}
*{{Citation
* {{Citation
|title=Computer Program to Obtain the Time Response of Sampled Data Systems
|title=Computer Program to Obtain the Time Response of Sampled Data Systems
|first= S. E.
|first= S. E.
Line 210: Line 214:
|volume=5
|volume=5
|issue= 10
|issue= 10
|pages= 209&ndash;210
|pages= 209–210
|date= May 15, 1969
|date= May 15, 1969
|doi= 10.1049/el:19690159}}
|doi= 10.1049/el:19690159|bibcode= 1969ElL.....5..209W
}}
*{{Citation
* {{Citation
|title= Accurate root locus plotting including the effects of pure time delay. Computer-program description
|title= Accurate root locus plotting including the effects of pure time delay. Computer-program description
|url= https://ieeexplore.ieee.org/document/5249527
|url= https://ieeexplore.ieee.org/document/5249527
|archive-url= https://web.archive.org/web/20190629123900/https://ieeexplore.ieee.org/document/5249527/
|url-status= dead
|archive-date= June 29, 2019
|first= S. E.
|first= S. E.
|last= Williamson
|last= Williamson
Line 221: Line 229:
|volume= 116
|volume= 116
|issue= 7
|issue= 7
|pages= 1269&ndash;1271
|pages= 1269–1271
|date= July 1969
|date= July 1969
|doi= 10.1049/piee.1969.0235}}
|doi= 10.1049/piee.1969.0235}}


==External links==
==External links==
* [[Wikibooks:Control Systems/Root Locus|Wikibooks: Control Systems/Root Locus]]
* [[b:Control Systems/Root Locus|Wikibooks: Control Systems/Root Locus]]
* [http://www.engin.umich.edu/group/ctm/rlocus/rlocus.html Carnegie Mellon / University of Michigan Tutorial]
* [http://www.engin.umich.edu/group/ctm/rlocus/rlocus.html Carnegie Mellon / University of Michigan Tutorial]
* [http://www.swarthmore.edu/NatSci/echeeve1/Ref/LPSA/Root_Locus/RLocusExamples.html#ex5 Excellent examples. Start with example 5 and proceed backwards through 4 to 1. Also visit the main page]
* [http://www.swarthmore.edu/NatSci/echeeve1/Ref/LPSA/Root_Locus/RLocusExamples.html#ex5 Excellent examples. Start with example 5 and proceed backwards through 4 to 1. Also visit the main page]
Line 235: Line 243:
* [http://www.roymech.co.uk/Related/Control/root_locus.html Root Locus Analysis of Control Systems]
* [http://www.roymech.co.uk/Related/Control/root_locus.html Root Locus Analysis of Control Systems]
* [http://www.mathworks.com/help/toolbox/control/ref/rlocus.html MATLAB function for computing root locus of a SISO open-loop model]
* [http://www.mathworks.com/help/toolbox/control/ref/rlocus.html MATLAB function for computing root locus of a SISO open-loop model]
*{{Citation
* {{Citation
|last=Wechsler |first= E. R.
|last=Wechsler |first= E. R.
|url= http://ipnpr.jpl.nasa.gov/progress_report/42-73/73F.PDF
|url= http://ipnpr.jpl.nasa.gov/progress_report/42-73/73F.PDF
|title= Root Locus Algorithms for Programmable Pocket Calculators
|title= Root Locus Algorithms for Programmable Pocket Calculators
|work= Telecommunications and Data Acquisition Progress Report
|journal= Telecommunications and Data Acquisition Progress Report
|volume= 73
|volume= 73
|publisher= NASA
|publisher= NASA
|date= January–March 1983
|date= January–March 1983
|pages= 60&ndash;64
|pages= 60–64
|doi=
|bibcode= 1983TDAPR..73...60W
|bibcode= 1983TDAPR..73...60W
}}
}}
* [http://reference.wolfram.com/mathematica/ref/RootLocusPlot.html Mathematica function for plotting the root locus]
* [http://reference.wolfram.com/mathematica/ref/RootLocusPlot.html Mathematica function for plotting the root locus]
* {{cite journal |last1=Šekara |first1=Tomislav B. |last2=Rapaić |first2=Milan R. |title=A revision of root locus method with applications |journal=Journal of Process Control |date=1 October 2015 |volume=34 |pages=26–34 |doi=10.1016/j.jprocont.2015.07.007 }}


[[Category:Classical control theory]]
[[Category:Classical control theory]]

Latest revision as of 04:52, 31 July 2024

Spirule

In control theory and stability theory, root locus analysis is a graphical method for examining how the roots of a system change with variation of a certain system parameter, commonly a gain within a feedback system. This is a technique used as a stability criterion in the field of classical control theory developed by Walter R. Evans which can determine stability of the system. The root locus plots the poles of the closed loop transfer function in the complex s-plane as a function of a gain parameter (see pole–zero plot).

Evans also invented in 1948 an analog computer to compute root loci, called a "Spirule" (after "spiral" and "slide rule"); it found wide use before the advent of digital computers.[1][2][3][4][5][6][7][8][9]

Uses

[edit]
Effect of pole location on a second order system's natural frequency and damping ratio. This pole's complex conjugate (which necessarily exists since this pole has a nonzero imaginary component) is not shown.

In addition to determining the stability of the system, the root locus can be used to design the damping ratio (ζ) and natural frequency (ωn) of a feedback system. Lines of constant damping ratio can be drawn radially from the origin and lines of constant natural frequency can be drawn as arccosine whose center points coincide with the origin. By selecting a point along the root locus that coincides with a desired damping ratio and natural frequency, a gain K can be calculated and implemented in the controller. More elaborate techniques of controller design using the root locus are available in most control textbooks: for instance, lag, lead, PI, PD and PID controllers can be designed approximately with this technique.

The definition of the damping ratio and natural frequency presumes that the overall feedback system is well approximated by a second order system; i.e. the system has a dominant pair of poles. This is often not the case, so it is good practice to simulate the final design to check if the project goals are satisfied.

Definition

[edit]

The root locus of a feedback system is the graphical representation in the complex s-plane of the possible locations of its closed-loop poles for varying values of a certain system parameter. The points that are part of the root locus satisfy the angle condition. The value of the parameter for a certain point of the root locus can be obtained using the magnitude condition.

Suppose there is a feedback system with input signal and output signal . The forward path transfer function is ; the feedback path transfer function is .

For this system, the closed-loop transfer function is given by[10]

Thus, the closed-loop poles of the closed-loop transfer function are the roots of the characteristic equation . The roots of this equation may be found wherever .

In systems without pure delay, the product is a rational polynomial function and may be expressed as[11]

where are the zeros, are the poles, and is a scalar gain. Typically, a root locus diagram will indicate the transfer function's pole locations for varying values of the parameter . A root locus plot will be all those points in the s-plane where for any value of .

The factoring of and the use of simple monomials means the evaluation of the rational polynomial can be done with vector techniques that add or subtract angles and multiply or divide magnitudes. The vector formulation arises from the fact that each monomial term in the factored represents the vector from to in the s-plane. The polynomial can be evaluated by considering the magnitudes and angles of each of these vectors.

According to vector mathematics, the angle of the result of the rational polynomial is the sum of all the angles in the numerator minus the sum of all the angles in the denominator. So to test whether a point in the s-plane is on the root locus, only the angles to all the open loop poles and zeros need be considered. This is known as the angle condition.

Similarly, the magnitude of the result of the rational polynomial is the product of all the magnitudes in the numerator divided by the product of all the magnitudes in the denominator. It turns out that the calculation of the magnitude is not needed to determine if a point in the s-plane is part of the root locus because varies and can take an arbitrary real value. For each point of the root locus a value of can be calculated. This is known as the magnitude condition.

The root locus only gives the location of closed loop poles as the gain is varied. The value of does not affect the location of the zeros. The open-loop zeros are the same as the closed-loop zeros.

Angle condition

[edit]

A point of the complex s-plane satisfies the angle condition if

which is the same as saying that

that is, the sum of the angles from the open-loop zeros to the point (measured per zero w.r.t. a horizontal running through that zero) minus the angles from the open-loop poles to the point (measured per pole w.r.t. a horizontal running through that pole) has to be equal to , or 180 degrees. Note that these interpretations should not be mistaken for the angle differences between the point and the zeros/poles.

Magnitude condition

[edit]

A value of satisfies the magnitude condition for a given point of the root locus if

which is the same as saying that

.

Sketching root locus

[edit]
RL = root locus; ZARL = zero angle root locus

Using a few basic rules, the root locus method can plot the overall shape of the path (locus) traversed by the roots as the value of varies. The plot of the root locus then gives an idea of the stability and dynamics of this feedback system for different values of .[12][13] The rules are the following:

  • Mark open-loop poles and zeros
  • Mark real axis portion to the left of an odd number of poles and zeros
  • Find asymptotes

Let P be the number of poles and Z be the number of zeros:

The asymptotes intersect the real axis at (which is called the centroid) and depart at angle given by:

where is the sum of all the locations of the poles, is the sum of all the locations of the explicit zeros and denotes that we are only interested in the real part.

  • Phase condition on test point to find angle of departure
  • Compute breakaway/break-in points

The breakaway points are located at the roots of the following equation:

Once you solve for z, the real roots give you the breakaway/reentry points. Complex roots correspond to a lack of breakaway/reentry.

Plotting root locus

[edit]

Given the general closed-loop denominator rational polynomial

the characteristic equation can be simplified to

The solutions of to this equation are the root loci of the closed-loop transfer function.

Example

[edit]

Given

we will have the characteristic equation

The following MATLAB code will plot the root locus of the closed-loop transfer function as varies using the described manual method as well as the rlocus built-in function:

% Manual method
K_array = (0:0.1:220).'; % .' is a transpose. Looking up in Matlab documentation.
NK = length(K_array);
x_array = zeros(NK, 3);
y_array = zeros(NK, 3);

for nK = 1:NK
   K = K_array(nK);
   C = [1, 3, (5 + K), (1 + 3*K)];
   r = roots(C).';
   x_array(nK,:) = real(r);
   y_array(nK,:) = imag(r);
end

figure();
plot(x_array, y_array);
grid on;

% Built-in method
sys = tf([1, 3], [1, 3, 5, 1]);
figure();
rlocus(sys);
Root Locus Plot

The following Python code can also be used to calculate and plot the root locus of the closed-loop transfer function using the Python Control Systems Library[14] and Matplotlib[15].

import control as ct
import matplotlib.pyplot as plt

# Define the transfer function
sys = ct.TransferFunction([1, 3], [1, 3, 5, 1])

# Calculate and plot the root locus
roots, gains = ct.root_locus(sys, plot=True)
plt.show()

z-plane versus s-plane

[edit]

The root locus method can also be used for the analysis of sampled data systems by computing the root locus in the z-plane, the discrete counterpart of the s-plane. The equation z = esT maps continuous s-plane poles (not zeros) into the z-domain, where T is the sampling period. The stable, left half s-plane maps into the interior of the unit circle of the z-plane, with the s-plane origin equating to |z| = 1 (because e0 = 1). A diagonal line of constant damping in the s-plane maps around a spiral from (1,0) in the z plane as it curves in toward the origin. The Nyquist aliasing criteria is expressed graphically in the z-plane by the x-axis, where ωnT = π. The line of constant damping just described spirals in indefinitely but in sampled data systems, frequency content is aliased down to lower frequencies by integral multiples of the Nyquist frequency. That is, the sampled response appears as a lower frequency and better damped as well since the root in the z-plane maps equally well to the first loop of a different, better damped spiral curve of constant damping. Many other interesting and relevant mapping properties can be described, not least that z-plane controllers, having the property that they may be directly implemented from the z-plane transfer function (zero/pole ratio of polynomials), can be imagined graphically on a z-plane plot of the open loop transfer function, and immediately analyzed utilizing root locus.

Since root locus is a graphical angle technique, root locus rules work the same in the z and s planes.

The idea of a root locus can be applied to many systems where a single parameter K is varied. For example, it is useful to sweep any system parameter for which the exact value is uncertain in order to determine its behavior.

See also

[edit]

References

[edit]
  1. ^ "1990". McKelvey School of Engineering at Washington University in St. Louis. Retrieved 2023-03-12.
  2. ^ Evans, Walter R. (1965), Spirule Instructions, Whittier, CA: The Spirule Company
  3. ^ Robert H., J.C. (2012). Dynamics of Physical Systems. Dover Civil and Mechanical Engineering. Dover Publications. p. 727. ISBN 978-0-486-13969-2. Retrieved 2023-03-12.
  4. ^ Doebelin, E.O. (1985). Control System Principles and Design. Wiley. p. 312. ISBN 978-0-471-08815-8. Retrieved 2023-03-12.
  5. ^ Savant, C.J. (1958). Basic Feedback Control System Design. Engineering special collection. McGraw-Hill. Retrieved 2023-03-12.
  6. ^ Harris, L.D. (1961). Introduction to Feedback Systems. Wiley. ISBN 978-0-598-48455-0. Retrieved 2023-03-12.
  7. ^ D'Azzo, J.J.; Houpis, C.H. (1968). Principles of Electrical Engineering: Electric Circuits, Electronics, Instrumentation, Energy Conversion, Control Systems, Computers. C. E. Merrill Publishing Company. Retrieved 2023-03-12.
  8. ^ Gupta, S.C.; Hasdorff, L. (1983). Fundamentals of Automatic Control. Krieger. ISBN 978-0-89874-578-8. Retrieved 2023-03-12.
  9. ^ Dransfield, P. (1968). Engineering Systems and Automatic Control. Prentice-Hall. Retrieved 2023-03-12.
  10. ^ Kuo 1967, p. 331.
  11. ^ Kuo 1967, p. 332.
  12. ^ Evans, W. R. (January 1948), "Graphical Analysis of Control Systems", Trans. AIEE, 67 (1): 547–551, doi:10.1109/T-AIEE.1948.5059708, ISSN 0096-3860, S2CID 51634121
  13. ^ Evans, W. R. (January 1950), "Control Systems Synthesis by Root Locus Method", Trans. AIEE, 69 (1): 66–69, doi:10.1109/T-AIEE.1950.5060121, ISSN 0096-3860, S2CID 51633514
  14. ^ The Python Control Systems Library, Control Systems Library for Python, 2023-12-19, retrieved 2023-12-19
  15. ^ "Matplotlib — Visualization with Python". matplotlib.org. Retrieved 2023-12-19.
  • Kuo, Benjamin C. (1967). "Root Locus Technique". Automatic Control Systems (second ed.). Englewood Cliffs, NJ: Prentice-Hall. pp. 329–388. ASIN B000KPT04C. LCCN 67016388. OCLC 3805225.

Further reading

[edit]
  • Ash, R. H.; Ash, G. H. (October 1968), "Numerical Computation of Root Loci Using the Newton-Raphson Technique", IEEE Transactions on Automatic Control, 13 (5): 576–582, doi:10.1109/TAC.1968.1098980
  • Williamson, S. E. (May 1968), "Design Data to assist the Plotting of Root Loci (Part I)", Control Magazine, 12 (119): 404–407
  • Williamson, S. E. (June 1968), "Design Data to assist the Plotting of Root Loci (Part II)", Control Magazine, 12 (120): 556–559
  • Williamson, S. E. (July 1968), "Design Data to assist the Plotting of Root Loci (Part III)", Control Magazine, 12 (121): 645–647
  • Williamson, S. E. (May 15, 1969), "Computer Program to Obtain the Time Response of Sampled Data Systems", Electronics Letters, 5 (10): 209–210, Bibcode:1969ElL.....5..209W, doi:10.1049/el:19690159
  • Williamson, S. E. (July 1969), "Accurate root locus plotting including the effects of pure time delay. Computer-program description", Proceedings of the Institution of Electrical Engineers, 116 (7): 1269–1271, doi:10.1049/piee.1969.0235, archived from the original on June 29, 2019
[edit]