1 PB
1 PB
2 ELECTRICAL AND COMPUTER ENGINEERING DEPT, KWARA STATE UNIVERSITY, MALETE, KWARA STATE. NIGERIA.
E-mail addresses: [email protected], 2 [email protected]
ABSTRACT
Design and analysis of control systems often become difficult due to the complexity of the system model and the design
techniques involved. This paper presents the development of a Tools Box in Microsoft Excel for control engineer that uses
root locus as a time domain technique for system design and analysis. The Tool Box can also serve as a computer-aided
graphical analytical tool for trainers. The work was done in two phases: the first phase is the development of a
programmable algorithms for root locus using the angle condition and bisection method while the second phase is the
implementation of the developed algorithms. The implementation was done using Microsoft Excel (R) Visual Basic
Application (VBA). Results of simulations for different systems show the potential of the Tool Box as an alternative for
other software package and the ease of using it on the readily available Microsoft Excel environment.
design purposes. The objectives are to; develop a suitable In (5), is the root locus gain; ( ) is the open loop
iterative algorithm for generating Root Loci and realize transfer function 𝑧𝑗 , 𝑗 , 2, . . . , is the set of finite
the resulting algorithm using the commonly available open loop zeros and 𝑝𝑖 , 𝑖 , 2, . . . , is the set of finite
Excel® VBA software. The extent of the work done does open loop poles. Available algorithms for sketching this
not address either the case of computer controlled root locus can be categorized as follows:
systems or systems with time delay. In other words, only i. Direct Methods: These are the algorithms in which
strictly linear time invariant systems were considered. various numerical schemes are used to determine
Different algorithms were used in the past [5, 6, 9] but the roots of the polynomial as K is varied in some
some become intractable in some situation. This work prescribed manner. Since this algorithm is limited to
uses a search algorithm technique, which can be polynomials, they cannot handle systems with dead
embedded in most software. time such as time delay systems.
ii Area Search Algorithms: These classes of algorithms
2. SYSTEM DESIGN generate the root loci by grid-search techniques over
The objective of this research is the development and a specified area of the complex frequency - plane (s-
implementation of a computer program for the automatic plane). The grid search method, in effect is used to
generation of root loci using Microsoft Excel ® VBA determine the points sanctifying the necessary and
(Visual Basic Application). The algorithm employed for sufficient conditions for root locus points. Any of the
this purpose, the organization and documentation of the angle or magnitude condition equation can serve as
resultant program are discussed in this section. the search criterion.
Given a feedback control system shown in Figure 1, the iii. Branch Following Algorithm: This method was first
closed-loop transfer function ( ) of the system is given presented by R.H. Ash and G.R. Ash in 1968. The
as: algorithm in this case often presume “a prior”
( ) ( ) knowledge of a point on the locus of interest and use
( ) ( ) the geometric and trigonometric asymptotes
( ) ( ) ( )
properties of the locus at the given point to predict a
𝑈(𝑠) + 𝐺(𝑠) 𝐶(𝑠) new point on the locus. An algorithm employed in
this research is based on Branch Following
-
Algorithm.
(iii) Determination of the number of branches. The (a) Angle Condition: In this work, the technique used for
root locus will have a total of branches equal to the plotting the locus was based on the angle condition
number of poles in the open loop transfer function. expressed from the characteristic equation (5).From
(iv) Loci of the real axis: The sections of the root locus the concepts of complex variables, the angle
on the real axis of the complex plane are condition can be expressed as equation ( ).
determined by counting the total number of finite 𝑞𝜋
∑ 𝑟𝑔(𝑠 − 𝑧𝑚 ) 𝑟𝑔(𝑠 − 𝑝𝑛 ) − − (2𝑟 )𝜋 ( )
2
poles and zeros of ( ) ( ) . to the right of the
Where 𝑟 , , 2, . . . ( − − ) and 𝑞 is the system
points in question. For values of , points of
type order.
the root locus on the real axis lie to the left of an
The algorithm works in such a way that points in the s-
odd number of finite poles and zeros.
plane must be determined such that they satisfy the
(v) Determination of the asymptotes of the root loci.
angle condition. For an arbitrary point s in the complex
For large distances from the origin in the s-plane,
plane, let 𝑟𝑔{ ( ) }be an angle function defined relative
the branches of a root locus approach a set of
to the gain normalized open loop transfer function such:
asymptotes. These asymptotes emanate from a 𝑞𝜋
point in the complex plane on the real axis called ∑ 𝑟𝑔{ ( ) } (2𝑟 )𝜋 ( )
2
the center of asymptotes given by 𝑀 𝑁
∑𝑛𝑖=1 𝑝𝑖 − ∑𝑚𝑗=1 𝑧𝑗 𝑟𝑔{ ( )} ∑ 𝑟𝑔(𝑠 − 𝑧𝑚 ) ∑ 𝑟𝑔(𝑠 − 𝑝𝑛 ) ( 2)
− ( )
− 𝑚=1 𝑛=1
The angle of the asymptotes are determined as Let exploratory point (test point)𝑠 𝑥 𝑗𝑦
8 0 (2𝑘 )𝜋 ( ) (𝑥 𝑗𝑦) ( )
𝜃 ± , 𝑘 , ,2, , … ( )
− Therefore, equation 2can be rewritten as;
Where 𝑝𝑖 are the poles, 𝑧𝑗 are the zeros, is the number 𝑀
𝑦 − 𝑦𝑚
−1
of poles and the number of zeros. 𝑟𝑔{ ( )} ∑ 𝑡𝑎 ( )
𝑥 − 𝑥𝑚
(vi) Break-away and Break-in Points: The conventional 𝑚=1
𝑁
breakaway/break-in points are defined as the −1
𝑦 − 𝑦𝑛
− ∑ 𝑡𝑎 ( ) 𝜃 ( )
points on the real-axis at which a root locus 𝑥 − 𝑥𝑛
𝑛=1
branches leave (break away from) or enter (break Where 𝑧𝑚 𝑥𝑚 𝑗𝑦𝑚 , 𝑓𝑜𝑟 ,2, , 𝑀 is the set of
into) the real axis. The location of the breakaway finite open loop zeros.
point can be determined by solving the following 𝑝𝑚 𝑥𝑛 𝑗𝑦𝑛 𝑓𝑜𝑟 ,2, , ⋯ 𝑁 is the set of finite
equation for . open loop poles.
𝑛 𝑚
Hence, a point𝑆0 lies on the root locus if and only if it
∑ ∑ (8)
( 𝑝𝑖 ) ( 𝑧𝑗 ) satisfies the angle condition (equation ).
𝑖=1 𝑗=1
𝑀 𝑁
A breakaway or break -in point exists if and only if two −1
𝑦 − 𝑦𝑚 −1
𝑦 − 𝑦𝑛
( 0) { ∑ 𝑡𝑎 ( ) − ∑ 𝑡𝑎 ( )}
singularities odd and even are of the same type or if such 𝑥 − 𝑥𝑚 𝑥 − 𝑥𝑛
𝑚=1 𝑛=1
a pair is complemented by a branch emanating from its − (2𝑟 )𝜋 𝜃 ( 5)
opposite kind from infinity. This clue paves a way to Equation ( 5) indicates that the calculation of legitimate
logically program and greatly simplify the algorithm. root loci points can be achieved by finding the zeros of
A logical procedure was incorporated into the algorithm the angle function - a transcendental equation.
such that for every pair of singularities that exist a break Many techniques may be used but the need to calculate
point, an 𝜀 . 2 is assigned to y-axis value and the derivatives could limit the complexity of systems that can
procedure iterate horizontally. If it converges, the point be solved, so a derivative-free method is usually
on the x-axis at which it converges is taken as break- preferred. As a result, in this work, the bisection method
away or break-in point, otherwise there is no break-away was used.
or break-in point at that segment of the root locus. A simple scheme for achieving the iterative process can
(vii) Departure and Arrival Angles: start with some 𝜃0 and then determine the
The departure angle of the root locus from a complex improvements,𝜃0 on the initial guess using the "bisection
pole is: method". In addition to the ability to determine suitable
𝜃 8 0 ( a) converging iterates, the bisection method requires that at
and the arrival angle is: start-up, two values (singularities) of the variable that
𝜃 8 0− ( b) bracket the real value must be known. This implies that
(viii) Plotting and calibration of the root locus using the at every stage of the computation, two points s and s2
angle condition and bisection method. must be available such that ( 1) 𝑎 𝑑 ( 2) < .
bisection method for the angle loci
Nigerian Journal of Technology Vol. 36, No. 1, January 2017 157
AUTOMATIC GENERATION OF ROOT LOCUS PLOTS FOR LINEAR TIME INVARIANT SYSTEMS N. Durutoye & O. Ogunbiyi
Let 𝑥 be the real and 𝑦 be the imaginary part of important function is the subroutine which works for
function ( ) define for the real part of a point on the each singularity and determines the argument of
locus, 𝑙𝑜 ≤ 𝑥 ≤ ℎ𝑖 𝑜𝑟 𝑙𝑜 ≤ 𝑥 ≤ ℎ𝑖 . “ 𝑙𝑜 ” and " ℎ𝑖 " are 𝑎𝑟𝑔{𝑠 − 𝑤𝑙 } where 𝑤𝑙 is any of the 𝑁 𝑀 𝑞
interval search area which can be in coordinate of 𝑥 or singularities that define the open loop transfer function
𝑦and are initialize by asymptotic line. In this interval, (𝑠) (𝑠).
𝑞𝜋 (ℎ𝑖 𝑗𝑦) ? (2 )
if ( ) (2𝑟 )𝜋 , correspondingly an exploratory
2
𝑞𝜋 The first step in the bisection method involves dividing
point that make (𝑥 𝑗𝑦) to equals (2𝑟 )𝜋 is
2 (bisecting) the interval 𝑙𝑜 ≤ 𝑥 ≤ ℎ𝑖 into two
known as a closed loop pole ( ) . subintervals 𝑙𝑜 < 𝑥 < and 𝑙𝑜 < 𝑥 < ℎ𝑖 where
In order to implement the bisection method, a simple test 1
(𝑙𝑜 ℎ𝑖 ) the subinterval to be considered next is
is needed, to see if function (𝑙𝑜 , 𝑦), has an argument 2
𝑞𝜋 obtained by replacing 𝑙𝑜 by if ( 𝑗𝑦)
(angle) greater than𝜋 𝑜𝑟 (2𝑟 )𝜋 and if function 𝑞𝜋
2 |𝜋|or(2ℎ )𝜋 because in this case ( 𝑗𝑦) |𝜋|
(ℎ𝑖 , 𝑦), has an argument less than | 8 | or| ∗ 8 |then 2
𝑞𝜋
that 𝑥the real part of the root (locus) exist in that or (2ℎ )𝜋 but less than (𝑙𝑜 𝑗𝑦). Conversely,
2
interval. if ( 𝑗𝑦) < | 𝜋| then subinterval to be considered is
The process involved in the search and check can be obtained by replacing ℎ𝑖 by because in this
𝑞𝜋
described by Figure , such that: case ( 𝑗𝑦) < |𝜋| or (2ℎ )𝜋 but greater
2
𝑁 𝑀
than ( 𝑗𝑦), therefore, the next subinterval will exist
{ ( ) ( ) ∑ (𝑠 − 𝑝𝑛 ) − ∑ (𝑠 − 𝑝𝑚 ) ( ) as 𝑙𝑜 < 𝑥 < and so this interval must contain a
𝑛=1 𝑚=1
𝑞𝜋 root(𝑥, 𝑦). Note that 𝑙𝑜 and ℎ𝑖 are taking to be boundary
(𝑥 𝑗𝑦) (2𝑟 )𝜋 ( ) under which root of the function are bracketed and is
2
(ℎ𝑖 𝑗𝑦) 𝜃1 𝜃2 𝜃3 ( 8) determine by asymptotic line. The task of finding the
(ℎ𝑜 𝑗𝑦) 𝜃4 𝜃5 𝜃6 ( ) root has now been refined from considering the interval
𝑙𝑜 ≤ 𝑥 ≤ and replaced by the task of finding the
(𝑙 ℎ𝑖 ) (2 )
2 𝑜 unknown coordinate part of the root in an interval half
Surely the contribution of the arguments depends on the the size until a true value is found. Once 𝑥 value is found,
part of the s-plane being considered. If one is iterating 𝑦value will be step up or step down by a constant value
horizontally, there will usually be two bounds depending base on the form that characteristic equation takes.
on how close to the real singularities and the asymptotes.
2.2 Root Locus Performance Parameters
i. Gain Margin: This is defined as the factor by which
the design value of K must by multiplied before the
closed loop system becomes unstable, i.e.
𝑀 (22)
Where is value of system parameter on the
imaginary axis of s-plane and is the design value of
system parameter .
ii. Phase Margin: This is the sum of 180o and the phase
angle of the open loop transfer function at the point
where the magnitude of the open loop transfer
function is equal to unity given by;
𝑀 𝑀 8 0 (𝑗 ) (2 )
Figure 1: Angle measurements from open loop poles and
open loop zero to test point 𝑆 through bisectional
method. . SOFTWARE DESIGN
A modular approach was employed at the design stage of
A solution would simply use the asymptote for the this control toolbox, the first step taken was to
branch as one boundary and the other can then be decompose the whole program into a mutually exclusive
determined by actually trying small steps away from it set of procedures (subroutines or functions) such that
till the sign changes or else intelligently use the bounds the combined total of all with the main body of the
established by the singularities that originate the branch. program can fully implement the process described in
Once the interval has been established it is trivial to the outline shown below. Consequently, each procedure
determine the final best value. Consequently, an was then developed separately before final integration to
form a whole module as shown in the modular plan of that facilitate the adjustment of the system parameters.
the whole system. Each Procedure in this case is referred The numbers of poles and zeros can be entered directly
to either as a subroutine or a function in an Excel (R) VBA or by means of two spin buttons. System type order can
application. similarly be adjusted or entered using a corresponding
Excel VBA Root Locus Toolbox is a user friendly design spin button. These completely determine the character of
toolbox; it accepts data through some cells and display the open loop system. Initiation of the root-locus
information in some, the execution of a program is calculation is carried out by clicking on the command
activated through a “Compute root-locus”. The interface button designated as “Compute root-locus”. The final
can be categorized into two; input and output cells. In realization of the root-locus tool has an opening window
figure 2, point “A” is initiated with spin button which as shown in Figure 2.
inputted numbers of both poles and zeros in a transfer
function of a given system, the number of singularities in . Tests of the Root-Locus Generator
transfer function can be increment or decrement by The ability to generate the root-loci for a given system
clicking on these buttons. Point “B” comprises of three depends on the structure and relative placement of the
rows, each three rows for both pole and zero, each rows poles and zeros of the system. Three broad categories can
is caption with “Real part , imaginary part , and be recognized while a fourth is a combination of the
symbol”, real part are the real coefficient of the other types. The first category includes different types of
singularity, imaginary part are the imaginary coefficient systems with all poles and no zeros. The next class has a
of the singularity while symbol are initialized with “𝑝” for combination of poles and zeros. This has two sub-classes
poles and “𝑧” for zeros. Point “ ” are used to initialize the where the difference between the number of poles and
boundary of generated chart, that is, extend of the size of zeros are either , and greater than . In the first two
the chart, this point comprises of four rows and value sub-classes there may be closed loci depending on the
must be inputted there. Point “𝐷” is initiated with location of the singularities on the real axis. These are
command button and mark the execution of the program. tested in the following experiments. The computation
Point “𝐸” only display the singularities inputted in point time is observed to depend on the following parameter:
“ ” in descending order. Point “ ” is a series of cells that The size of the system: that is the number of singularities
display the generated root locus. Point “ ” is a chat that (poles and zeros) of the system; computation time are
is plotted with the generated roots. more for complex transfer function. The step size, “∂”
(the distance between each point): the bisection iteration
. SIMULATIONS AND RESULTS converges faster for larger values of ∂ and this reduces
Implementation of the algorithm was carried out using number of point generated.
Microsoft Excel® VBA. It has a number of control buttons
The number of branches: from the tested transfer proceeds to the next paired root but in this case, it is only
function the number of branches is seen to be a function one root that is left, since only remaining root is real root
of time, the high the number of branches the high the with no imaginary, it follows the same iteration process
execution time. as observe in first paired root. In this case the search root
The root-locus tool determines its different branches tends to infinity and intentionally truncated once “∂”
such that whenever a transfer function is defined and the decrement equal chart boundary along negative x-axis.
command button clicked, it first determines all the The normalized transfer function “ ( )3 ” has two poles
branches on the real axis where they exist, then and one zero like “ ( )2 ” ”but the position of the zero in
vectoring to determine either break-in or break-away this case is different , the iteration started by pairing the
points as the case may be between the odd and even singularities, it checks if paired singularities are of the
singularities on the real axis. The break branches are same type, in this case the singularities are of the same
then determined using the asymptotes as bounds for type (the first is pole p = -1 and the second is pole p = -
trials and the roots are extracted progressively for 3), it is certain that there will be a break branch and path
increasing values of the imaginary part of the roots. of locus along the real axis cannot exceed the range of
The simulations presented here reflect a progressive paired singularities therefore, a small decrement say,
increase in complexity where first all the singularities are step size “∂ “ . were deducted from most positive
poles, then a progression of zeros are added to the singularity until it reaches the second singularity, at each
transfer function with the location of the zeros being decremented step, test point angle is compare with
modified to change from the trivial when the successive corresponding angle conduction, if the compared test
odd and even singularities are of opposite type (trivially point is valid, the corresponding test point is taking as
no break-away or break-in points) to more complex root for that point. The breaking point is determine by
cases where there may be both break-away and break-in changing a step size “∂ “ in real axis to imaginary axis
points. The simulations for different systems are as from y to a step size “∂ “ . for a start and iterate
presented in Figures 3 to 12. horizontally for every increment. The program has a
The normalized transfer function “ ( )2 ” has two poles logical operation to change or determine path of search
and one zero. The iteration started by pairing the either by vertical or horizontal iteration especially for
singularities into odd and even number from right to left function that has sphere topology.
for real singularities. It checked if both odd and even The normalized transfer function “ ( )2 ” has two poles
singularities are of the same type, in this case, the first and one zero. The iteration started by pairing the
set of odd and even singularities are of different type singularities into odd and even number from right to left
(the first singularity pole p = -1 and the second for real singularities. It checked if both odd and even
singularity zero z = -2). It is certain that there will not be singularities are of the same type, in this case, the first
a break branch and path of locus along the real axis set of odd and even singularities are of different type
cannot exceed the range of paired singularities (odd and (the first singularity pole p = -1 and the second
even singularities) therefore, a small decrement say, step singularity zero z = -2). The normalized transfer function
size “∂ “ . is deducted from most positive “ ( )2 ” has two poles and one zero. The iteration started
singularity until it reaches the second singularity, at each by pairing the singularities into odd and even number
deduction, test point angle is checked to confirm if it from right to left for real singularities. It checked if both
equal to corresponding angle conduction (see equation 3 odd and even singularities are of the same type, in this
and 4), if it equals, the corresponding test point is taken case, the first set of odd and even singularities are of
as root for that point. The first segment of the root different type (the first singularity pole p = -1 and the
terminated immediately step size “∂” decrement equal to second singularity zero z = -2).
the second root of that paired singularity. The iteration
1 ( 2)
Figure 3: Root-locus plot for ( )1
Figure 4: Root-locus plot for ( )2 ( 1)( 3)
( 1)( 3)
It is certain that there will not be a break branch and singularity until it reaches the second singularity, at each
path of locus along the real axis cannot exceed the range decremented step, test point angle is compare with
of paired singularities (odd and even singularities) corresponding angle conduction, if the compared test
therefore, a small decrement say, step size “∂ “ . is point is valid, the corresponding test point is taking as
deducted from most positive singularity until it reaches root for that point. The breaking point is determine by
the second singularity, at each deduction, test point angle changing a step size “∂ “ in real axis to imaginary axis
is checked to confirm if it equal to corresponding angle from y to a step size “∂ “ . for a start and iterate
conduction (see equation 3 and 4), if it equals, the horizontally for every increment. The program has a
corresponding test point is taken as root for that point. logical operation to change or determine path of search
The first segment of the root terminated immediately either by vertical or horizontal iteration especially for
step size “∂” decrement equal to the second root of that function that has sphere topology.
paired singularity. The iteration proceeds to the next
paired root but in this case, it is only one root that is left, 5. CONCLUSION
since only remaining root is real root with no imaginary, Excel VBA Root-locus generator was tested using
it follows the same iteration process as observe in first systems of different transfer function. Clearly the degree
paired root. In this case the search root tends to infinity of complexity depends on the structure of the transfer
and intentionally truncated once “∂” decrement equal function. For example, those with no breakaway points
chart boundary along negative x-axis. are generally simpler to generate then close loop poles
The normalized transfer function “ ( )3 ” has two poles than those with breakaway points. While the systems
and one zero like “ ( )2 ” ”but the position of the zero in tried in this work are not exhaustive of all possibilities, it
this case is different , the iteration started by pairing the can be seen that the procedure can solve a reasonable
singularities, it checks if paired singularities are of the number of systems that one may encounter in real life.
same type, in this case the singularities are of the same This is a very welcome result since it is now possible for
type (the first is pole p = -1 and the second is pole p = - a designer, instructor or student to explore the root-
3), it is certain that there will be a break branch and path locus characteristics of many linear time invariant
of locus along the real axis cannot exceed the range of systems using nothing more proprietary than the
paired singularities therefore, a small decrement say, ubiquitous EXCEL with its VBA environment.
step size “∂ “ . were deducted from most positive
( 5) 1
Figure 5: Root-locus plot for ( )3 Figure 6: Root-locus plot for ( )4 ( 3)( 5)
( 1)( 3)
( 2) ( 4)
Figure 7: Root-locus plot for ( )5 ( 1)( 3)( 5)
Figure 8: Root-locus plot for ( )6 2( 3)
1
Figure 9: Root-locus plot for ( ) ( 3 2𝑗)( 3−2𝑗)( 5) ( 3)
Figure 10: Root-locus plot for ( ) 2( 4)
( 5)
Figure 11: Root-locus plot for ( ) ( 2)( 4)( 3 2𝑗)( 3−2𝑗) ( 2)( 3)
Figure 12: Root-locus plot for ( )10 ( 1)( 5)
Since this was essentially the objective of this work, it [5] J. F. Opadiji, Development of Software for Graphical
Analysis of Continuous-Time Control Systems, M.sc, Thesis,
can be concluded that it has been successfully resolved. It
University of Ilorin. 2003.
is possible to generate root-locus plots for a sufficiently
[6] J. J. Blakley, "An expert system root locus plotter", INT J EL
wide range of system types and use this for teaching,
EN, vol. 36, no. 4, pp.298-310. 1999.
laboratory and design purposes.
[7] L. M. Robert, An Introduction to VBA in Excel, 2nd ed,
Kellog School, Northwestern University, 2000.
6 RECOMMENDATIONS
[8] D. Birnbaum, Microsoft Excel VBA Programming, 2nd ed.,
The implementation presented here depends on search Thomson Course Technology PTR, 2005.
process which is not general but attempts to identify all
[9] K. C. Okafor, Automatic Generation and Plots of Root Loci.
possible types of loci for specific cases. This is a B.sc, Thesis, Ahmadu Bello University, Zaria., 1981,
limitation which should be addressed by a subsequent
[10] J. Moscinski, and Z. Ogonowski, Advance Control with
researcher so that the resulting algorithm can be more MATLAB and SIMULAINK , Ellis Horwood, Hemel
compact and efficient. It is recommended that the Hempstead, UK, 1995.
algorithm be made more efficient by modifying its [11] S.D. Conte and C. de Boor, Elementary Numerical Analysis:
branching logic and using a more compact approach. An Algorithmic Approach, 3rd ed., McGraw-Hill, New York
,1981
7. REFERENCES
[12] R. S. Burn, Advance Control Engineering, 1st ed.,
[1] K, Ogata, Modern Control Engineering, 3rd ed., Prentice Butterworth-Heinemann, 2001.
Hall, Upper –Saddle River, NJ, 1997.
[13] G. T. John, Automatic Feedback Control System Synthesis,
[2] A. Grace, A. J. Lamb, J. N. little, and C.M. Thompson, Control McGraw-Hill book company, Inc, USA, 1955.
System Toolbox for use with MATLAB, User guide, The
[14] P. N. Paraskevopoulos, Modern control Engineering, 1st ed.,
Math works, Inc , Natick, Mass, 1992.
Marcel Dekker Inc, New York USA, 2002.
[3] R.C. Dorf and R.H. Bishop, Modern Control Systems, 11th
[15] F. Raven, Automatic control Engineering, Second edition,
ed., Prentice Hall, 2008.
McGraw-Hill, New York, 1990.
[4] S. N. Norman, Control System Engineering, 3rd ed., John
[16] J. G. Walter and L. V. Thompson, Modern Control Systems
Wiley & Sons, New York, USA, 2000.
Analysis and Design, John Wiley and Son Inc. USA, 1993.