![Page 1: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/1.jpg)
Control Systems with Scilab
Aditya Sengupta
Indian Institute of Technology [email protected]
December 1, 2010, Mumbai
![Page 2: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/2.jpg)
A simple first order system
// De f i n i n g a f i r s t o r d e r system :s = %s // The qu i c k e r a l t e r n a t i v e to u s i n g s =
po l y (0 , ’ s ’ )K = 1 , T = 1 // Gain and t ime con s t an tSimpleSys = s y s l i n ( ’ c ’ , K/(1+T*s ) )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 3: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/3.jpg)
Simulating the system- Step test
t=0 :0 . 0 1 : 1 5 ;y1 = csim ( ’ s t e p ’ , t , SimpleSys ) ; // s t ep r e s pon s ep l o t (t , y1 )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 4: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/4.jpg)
Simulating the system- Sine test
u2=s i n ( t ) ;y2 = csim ( u2 , t , SimpleSys ) ; // s i n e r e s pon s ep l o t (t , [ u2 ; y2 ] ’ )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 5: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/5.jpg)
Simulating the system- Sine test
u3=s i n (5* t ) ;y3 = csim ( u3 , t , SimpleSys ) ; // s i n e r e s pon s e at d i f f e r e n t
f r e qu enc yp l o t (t , [ u3 ; y3 ] ’ )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 6: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/6.jpg)
Root Locus
evans ( SimpleSys )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 7: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/7.jpg)
Bode Plot
fMin=0.01 , fMax=10bode ( SimpleSys , fMin , fMax )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 8: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/8.jpg)
Second Order Systems- Overdamped
p=sˆ2+9*s+9OverdampedSystem= s y s l i n ( ’ c ’ , 9/p )
r o o t s ( p )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 9: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/9.jpg)
Second Order Systems- Overdamped
p=sˆ2+9*s+9OverdampedSystem= s y s l i n ( ’ c ’ , 9/p )
r o o t s ( p )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 10: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/10.jpg)
Second Order Systems- Overdamped
y4 = csim ( ’ s t e p ’ , t , OverdampedSystem ) ;p l o t (t , y4 )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 11: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/11.jpg)
Second Order Systems- Overdamped
bode ( OverdampedSystem , fMin , fMax )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 12: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/12.jpg)
Second Order Systems- Underdamped
q=sˆ2+2*s+9UnderdampedSystem = s y s l i n ( ’ c ’ , 9/q )r o o t s ( q )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 13: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/13.jpg)
Second Order Systems- Underdamped
y5 = csim ( ’ s t e p ’ , t , UnderdampedSystem ) ;p l o t (t , y5 )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 14: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/14.jpg)
Second Order Systems- Undamped
r = sˆ2+9UndampedSystem = s y s l i n ( ’ c ’ , 9/r )r o o t s ( r )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 15: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/15.jpg)
Second Order Systems- Undamped
y6 = csim ( ’ s t e p ’ , t , UndampedSystem ) ;p l o t (t , y6 )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 16: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/16.jpg)
Second Order Systems- Critically damped
m = sˆ2+6*s+9CriticallyDampedSystem = s y s l i n ( ’ c ’ , 9/m )r o o t s ( m )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 17: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/17.jpg)
Second Order Systems- Critically damped
y7 = csim ( ’ s t e p ’ , t , CriticallyDampedSystem ) ;p l o t (t , y7 )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 18: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/18.jpg)
Discrete time systems
z = %z
a = 0.1DTSystem = s y s l i n ( ’ d ’ , a*z /( z − (1−a ) ) )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 19: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/19.jpg)
Discrete time systems
u = ones (1 , 50) ;y = f l t s (u , DTSystem ) ;p l o t ( y ) // C lo s e t h i s when done
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 20: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/20.jpg)
Discrete time systems
bode ( DTSystem , 0 . 001 , 1)
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 21: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/21.jpg)
Discrete time systems
evans ( DTSystem )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 22: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/22.jpg)
State space- representation
A = [0 , 1 ; −1, −0.5]B = [ 0 ; 1 ]C = [1 , 0 ]D = [ 0 ]
x0=[1; 0 ] // The i n i t i a l s t a t e
SSsys = s y s l i n ( ’ c ’ , A , B , C , D , x0 )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 23: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/23.jpg)
State space- simulation
t = [ 0 : 0 . 1 : 5 0 ] ;u = 0.5* ones (1 , l e n g t h ( t ) ) ;[ y , x ] = cs im (u , t , SSsys ) ;
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 24: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/24.jpg)
State space- simulation
scf (1 ) ; p l o t (t , y )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 25: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/25.jpg)
State space- simulation
scf (2 ) ; p l o t (t , x )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 26: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/26.jpg)
State space
evans ( SSsys ) //zoom i n// Conve r s i on from s t a t e space to t r a n s f e r f u n c t i o n :s s 2 t f ( SSsys )r o o t s ( denom( ans ) )spec ( A )
Try this: obtain the step response of the converted transferfunction. Then compare this with the step response of the statespace representation (remember to set the initial state (x0) andstep size (u) correctly.
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 27: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/27.jpg)
State space
evans ( SSsys ) //zoom i n// Conve r s i on from s t a t e space to t r a n s f e r f u n c t i o n :s s 2 t f ( SSsys )r o o t s ( denom( ans ) )spec ( A )
Try this: obtain the step response of the converted transferfunction. Then compare this with the step response of the statespace representation (remember to set the initial state (x0) andstep size (u) correctly.
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 28: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/28.jpg)
Discretizing continuous time systems
SimpleSysDiscr = s s 2 t f ( d s c r ( SimpleSys , 0 . 1 ) )// S in c e d s c r ( ) r e t u r n s a s t a t e space model
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 29: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/29.jpg)
Discretizing continuous time systems
t = [ 0 : 0 . 1 : 1 0 ] ;u = ones ( t ) ;y = f l t s (u , SimpleSysDiscr ) ;p l o t (t , y )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 30: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/30.jpg)
Multiple subsystems
SubSys1 = s y s l i n ( ’ c ’ , 1/s )SubSys2 = 2 // System wi th ga i n 2Series = SubSys1*SubSys2
Parallel = SubSys1+SubSys2
Feedback = SubSys1 / . SubSys2 //Note s l a s h−dot , not dot−s l a s h// A l so t r y the above s t ep u s i n g 2 i n s t e a d o f Subsys2
Hint: put a space after the dot and then try.
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 31: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/31.jpg)
Multiple subsystems
SubSys1 = s y s l i n ( ’ c ’ , 1/s )SubSys2 = 2 // System wi th ga i n 2Series = SubSys1*SubSys2
Parallel = SubSys1+SubSys2
Feedback = SubSys1 / . SubSys2 //Note s l a s h−dot , not dot−s l a s h// A l so t r y the above s t ep u s i n g 2 i n s t e a d o f Subsys2
Hint: put a space after the dot and then try.
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 32: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/32.jpg)
Nyquist Plot
G = s y s l i n ( ’ c ’ , (s−2)/( s+1) ) ;H = 1nyqu i s t ( G*H )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 33: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/33.jpg)
An Example
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 34: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/34.jpg)
Modelling the system
mx(t) + bx(t) + kx(t) = F (t)
Taking the Laplace transform:
ms2X (x) + bsX (s) + kX (s) = F (s)
X (s)
F (s)=
1
ms2 + bs + k
We will use a scaling factor of k and represent the system as:
G (s) =k
ms2 + bs + k
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 35: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/35.jpg)
Modelling the system in Scilab
m = 1 // Mass : kgb = 10 // Damper : Ns/mk = 20 // Sp r i ng : N/ms = %s
// System :System = k /( m*sˆ2 + b*s + k )// We use k as our s c a l i n g f a c t o r .
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 36: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/36.jpg)
A second order model
Comparing the system:
k
ms2 + bs + k
with the standard representation of a second order model:
ω2n
s2 + 2ζωns + ω2n
We have
ωn =
√k
m
and
ζ =b/m
2ωn
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 37: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/37.jpg)
Understanding the system
wn = sq r t ( k/m )zeta = ( b/m ) /(2* wn )
We note that this is an overdamped system since ζ > 1
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 38: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/38.jpg)
// Step r e s pon s e ( open l oop t r a n s f e r f u n c t i o n ) :t = 0 : 0 . 0 1 : 3 ;y = csim ( ’ s t e p ’ , t , System ) ;p l o t (t , y )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 39: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/39.jpg)
// Step r e s pon s e o f the system wi th un i t y f e edback :t = 0 : 0 . 0 1 : 3 ;yFeedback = csim ( ’ s t e p ’ , t , System / . 1) ;p l o t (t , yFeedback )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 40: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/40.jpg)
// Comparing the open l oop t r a n s f e r f u n c t i o n and c l o s e d l oopt r a n s f e r f u n c t i o n :
p l o t (t , [ y ; yFeedback ] )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 41: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/41.jpg)
Steady State error
From the final value theorem:
limt→∞
f (t) = lims→0
sF (s)
Rs = 1/sGs = System
// The s t e ady s t a t e v a l u e o f the system i s :
css = horne r ( s*System*Rs , 0)
After adding the feedback loop:
css = horne r ( s *( System / . 1) *Rs , 0)
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 42: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/42.jpg)
Steady State error
From the final value theorem:
limt→∞
f (t) = lims→0
sF (s)
Rs = 1/sGs = System
// The s t e ady s t a t e v a l u e o f the system i s :
css = horne r ( s*System*Rs , 0)
After adding the feedback loop:
css = horne r ( s *( System / . 1) *Rs , 0)
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 43: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/43.jpg)
Lets take a look at the root locus
evans ( System )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 44: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/44.jpg)
Finding the gain at a point on the root locus
Say we have the root locus in front of us.Now we wish to calculate some system parameters at someparticular point along the root locus. How do we find the positionof this point?
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 45: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/45.jpg)
Finding the gain at a point on the root locus
The root locus is the plot of the location of the poles of:
KG (s)
1 + KG (s)
as k varies.That is to say, we need to find the solution of the denominatorgoing to zero:
1 + KG (s) = 0
or
K =−1
G (s)
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 46: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/46.jpg)
Finding the gain at a point on the root locus
We can find the location of a given point on the root locus usingthe locate() command.We then need to multiply the [x; y] coordinates returned by thiscommand with [ 1, % i ] so that we obtain the position in thecomplex plane as x + iyWe then simply evaluate -1/G(s) at the given position usinghorner()
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 47: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/47.jpg)
Try this now:
evans ( System )Kp = −1/ r e a l ( ho rne r ( System , [ 1 %i ]* l o c a t e (1 ) ) )// C l i c k on a po i n t on the r oo t l o c u scss = horne r ( s *( Kp*System / . 1) *Rs , 0)// Thi s i s the s t e ady s t a t e v a l u e o f the c l o s e d l oop system// wi th ga i n Kp .
(Choose any point on the root locus right now, we will shortly seehow to decide which point to choose)
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 48: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/48.jpg)
Achieving specific parameters- a proportional controller
Lets say we wish to achieve the following parameters:
OS = 0.30 // Overshoottr = 0.08 // R i s e t ime
We know from theory, for a second order system,
ζ =− lnOS√
π2 + (lnOS)2
ωn =1
tr√
1− ζ2
(π − tan−1
√1− ζ2
ζ
)In Scilab:
zeta = − l o g ( OS ) / s q r t ( %piˆ2 + l og ( OS ) ˆ2)wn = (1/( tr* s q r t (1 − zeta ˆ2) ) ) *( %pi − atan ( s q r t (1 − zeta ˆ2) )
/zeta )
We use these values of ζ and ωn to decide which point to chooseon the root locus.
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 49: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/49.jpg)
Achieving specific parameters- a proportional controller
Lets say we wish to achieve the following parameters:
OS = 0.30 // Overshoottr = 0.08 // R i s e t ime
We know from theory, for a second order system,
ζ =− lnOS√
π2 + (lnOS)2
ωn =1
tr√
1− ζ2
(π − tan−1
√1− ζ2
ζ
)In Scilab:
zeta = − l o g ( OS ) / s q r t ( %piˆ2 + l og ( OS ) ˆ2)wn = (1/( tr* s q r t (1 − zeta ˆ2) ) ) *( %pi − atan ( s q r t (1 − zeta ˆ2) )
/zeta )
We use these values of ζ and ωn to decide which point to chooseon the root locus.
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 50: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/50.jpg)
Achieving specific parameters- a proportional controller
Lets say we wish to achieve the following parameters:
OS = 0.30 // Overshoottr = 0.08 // R i s e t ime
We know from theory, for a second order system,
ζ =− lnOS√
π2 + (lnOS)2
ωn =1
tr√
1− ζ2
(π − tan−1
√1− ζ2
ζ
)In Scilab:
zeta = − l o g ( OS ) / s q r t ( %piˆ2 + l og ( OS ) ˆ2)wn = (1/( tr* s q r t (1 − zeta ˆ2) ) ) *( %pi − atan ( s q r t (1 − zeta ˆ2) )
/zeta )
We use these values of ζ and ωn to decide which point to chooseon the root locus.
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 51: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/51.jpg)
Achieving specific parameters- a proportional controller
Lets say we wish to achieve the following parameters:
OS = 0.30 // Overshoottr = 0.08 // R i s e t ime
We know from theory, for a second order system,
ζ =− lnOS√
π2 + (lnOS)2
ωn =1
tr√
1− ζ2
(π − tan−1
√1− ζ2
ζ
)In Scilab:
zeta = − l o g ( OS ) / s q r t ( %piˆ2 + l og ( OS ) ˆ2)wn = (1/( tr* s q r t (1 − zeta ˆ2) ) ) *( %pi − atan ( s q r t (1 − zeta ˆ2) )
/zeta )
We use these values of ζ and ωn to decide which point to chooseon the root locus.
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 52: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/52.jpg)
Achieving specific parameters- a proportional controller
evans ( System )s g r i d ( zeta , wn )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 53: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/53.jpg)
Achieving specific parameters- a proportional controller
Find the value of proportional gain at some point on the root locus:Kp = −1/ r e a l ( ho rne r ( System , [ 1 %i ]* l o c a t e (1 ) ) )// C l i c k nea r the i n t e r s e c t i o n
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 54: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/54.jpg)
Achieving specific parameters- a proportional controller
PropSystem = Kp*System / . 1yProp = csim ( ’ s t e p ’ , t , PropSystem ) ;p l o t (t , yProp )p l o t (t , ones ( t ) , ’ r ’ ) , // Compare wi th s t ep
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 55: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/55.jpg)
A PI controller
Note the steady state error and overshoot.In order to eliminate the steady state error, we need to add anintegrator- that is to say, we add a pole at origin.In order to have the root locus pass through the same point asbefore (and thus achieve a similar transient performance), we adda zero near the origin
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 56: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/56.jpg)
A PI controller
PI = ( s+1)/sevans ( PI*System )s g r i d ( zeta , wn ) // These v a l u e s a r e from the P r o p o r t i o n a l
c o n t r o l l e rKpi = −1/ r e a l ( ho rne r ( PI*System , [ 1 %i ]* l o c a t e (1 ) ) )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 57: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/57.jpg)
A PI controller
PISystem = Kpi*PI*System / . 1yPI = csim ( ’ s t e p ’ , t , PISystem ) ;p l o t (t , yPI )p l o t (t , ones ( t ) , ’ r ’ ) , // Compare wi th s t ep
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 58: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/58.jpg)
A PD controller
We wish to achieve the following parameters:
OS = 0.05Ts = 0.5
From theory, we know the corresponding values of ζ and ωn are:
ζ =
√(log OS)2
(log OS)2 + π/2
ωn =4
ζTs
zeta = sq r t ( ( l o g ( OS ) ) ˆ2/(( l o g ( OS ) ) ˆ2 + %pi ˆ2) )wn = 4/( zeta*Ts )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 59: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/59.jpg)
A PD controller
PD = s + 20evans ( PD*System )s g r i d ( zeta , wn ) // Zoom f i r s t , then exe cu t e nex t l i n e :Kpd = −1/ r e a l ( ho rne r ( PD*System , [ 1 %i ]* l o c a t e (1 ) ) )
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 60: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/60.jpg)
A PD controller
PDSystem = Kpd*PD*System / . 1yPD = csim ( ’ s t e p ’ , t , PDSystem ) ;p l o t (t , yPD )p l o t (t , ones ( t ) , ’ r ’ ) , // Compare wi th s t ep
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 61: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/61.jpg)
A PD controller
Note the improved transient performance, but the degraded steadystate error:
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 62: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/62.jpg)
A PID Controller
We design our PID controller by eliminating the steady state errorfrom the PD controlled system:PID = ( s + 20) *( s+1)/sevans ( PID*System )s g r i d ( zeta , wn ) // These v a l u e s a r e from the PD system
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 63: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/63.jpg)
A PID Controller
Kpid = −1/ r e a l ( ho rne r ( PID*System , [ 1 %i ]* l o c a t e (1 ) ) )PIDSystem = Kpid*PID*System / . 1yPID = csim ( ’ s t e p ’ , t , PIDSystem ) ;p l o t (t , yPID )p l o t (t , ones ( t ) , ’ r ’ ) , // Compare wi th s t ep
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 64: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/64.jpg)
A Comparison
Aditya Sengupta, EE, IITB CACSD with Scilab
![Page 65: Control Systems with · PDF fileControl Systems with Scilab ... // Step response (open loop transfer function ) : ... We know from theory, for a second order system, ζ =](https://reader031.vdocuments.pub/reader031/viewer/2022021510/5aa9d9667f8b9a95188d5fb1/html5/thumbnails/65.jpg)
References
Control Systems Engineering, Norman Nise
Modern Control Engineering, Katsuhiko Ogata
Digital Control of Dynamic Systems, Franklin and Powell
Master Scilab by Finn Haugen.http://home.hit.no/finnh/scilab scicos/scilab/index.htm
Mass, damper, spring image: released into the public domainby Ilmari Karonen.http://commons.wikimedia.org/wiki/File:Mass-Spring-Damper.png
Aditya Sengupta, EE, IITB CACSD with Scilab