Scilab Files Control Systems Engineering by Madan Gopal
Scilab Files Control Systems Engineering by Madan Gopal
Scilab Files Control Systems Engineering by Madan Gopal
Created by
Anuj Sharma
B.E. (pursuing)
Electrical Engineering
Delhi Technological University
College Teacher
Ram Bhagat, DTU, Delhi
Cross-Checked by
sonanaya tatikola, IITB
Edition: 3
Year: 2007
ISBN: 81-224-1192-4
1
Scilab numbering policy used in this document and the relation to the
above book.
For example, Exa 3.51 means solved example 3.51 of this book. Sec 2.3 means
a scilab code whose theory is explained in Section 2.3 of the book.
2
Contents
10 Introduction to Design 58
3
List of Scilab Codes
4
Exa 6.11.a routh array . . . . . . . . . . . . . . . . . . 24
Exa 6.11.b routh array . . . . . . . . . . . . . . . . . . 25
Exa 7.1 root locus . . . . . . . . . . . . . . . . . . . 27
Exa 7.2 root locus . . . . . . . . . . . . . . . . . . . 27
Exa 7.3 root locus . . . . . . . . . . . . . . . . . . . 29
Exa 7.4 root locus . . . . . . . . . . . . . . . . . . . 30
Exa 7.6 root locus . . . . . . . . . . . . . . . . . . . 32
Exa 7.8 root locus . . . . . . . . . . . . . . . . . . . 34
Exa 7.9 root locus . . . . . . . . . . . . . . . . . . . 36
Exa 7.10 root locus . . . . . . . . . . . . . . . . . . . 36
Exa 9.1 nyquist plot . . . . . . . . . . . . . . . . . . 39
Exa 9.2 nyquist plot . . . . . . . . . . . . . . . . . . 39
Exa 9.3 nyquist plot . . . . . . . . . . . . . . . . . . 41
Exa 9.4 nyquist plot . . . . . . . . . . . . . . . . . . 42
Exa 9.5 nyquist plot . . . . . . . . . . . . . . . . . . 44
Exa 9.6 stability using nyquist plot . . . . . . . . . . 46
Exa 9.7.a stability using nyquist plot . . . . . . . . . . 48
Exa 9.7.b stability using nyquist plot . . . . . . . . . . 49
Exa 9.8.a nyquist criterion . . . . . . . . . . . . . . . 50
Exa 9.8.b nyquist criterion . . . . . . . . . . . . . . . 50
Exa 9.10 gm and pm using nyquist plot . . . . . . . . 50
Exa 9.11 bode plot . . . . . . . . . . . . . . . . . . . 52
Exa 9.13.a bode plot . . . . . . . . . . . . . . . . . . . 53
Exa 9.13.b bode plot . . . . . . . . . . . . . . . . . . . 54
Exa 9.14 m circles . . . . . . . . . . . . . . . . . . . . 55
Exa 9.15 m circles . . . . . . . . . . . . . . . . . . . . 56
Exa 10.6 lead compensation . . . . . . . . . . . . . . 58
Exa 10.7 lead compensation . . . . . . . . . . . . . . 61
Exa 10.8 lag compnsation . . . . . . . . . . . . . . . . 64
Exa 10.9 lag and lead compensation . . . . . . . . . . 67
Exa 12.3 state matrix . . . . . . . . . . . . . . . . . . 72
Exa 12.4 modal matrix . . . . . . . . . . . . . . . . . 72
Exa 12.5 obtain time response . . . . . . . . . . . . . 73
Exa 12.6 resolvant matrix . . . . . . . . . . . . . . . 74
Exa 12.7 state transition matrix and state response . 74
Exa 12.12 check for controllability . . . . . . . . . . . 75
Exa 12.13 check for controllability . . . . . . . . . . . 76
Exa 12.14 check for observability . . . . . . . . . . . . 76
5
Exa 12.17 design state observer . . . . . . . . . . . . . 77
6
List of Figures
7
9.15 m circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8
Chapter 2
Mathematical Models of
Physical Systems
1 s = %s ;
2 syms L C R1 R2
3 // f o r w a r d p a t h d e n o t e d by P ! and l o o p by L1 , L2 and
s o on
4 // p a t h f a c t o r by D1 and g r a p h d e t e r m i n a n t by D
5 P1 =1/( s * L * s * C ) ;
6 L1 = - R1 /( s * L ) ;
7 L2 = -1/( s * R2 * C ) ;
8 L3 = -1/( s ^2* L * C ) ;
9 D1 =1;
10 D =1 -( L1 + L2 + L3 ) ;
11 Y =( P1 * D1 ) / D ;
12 disp (Y , ” T r a n s f e r f u n c t i o n=” )
9
1 syms xv Qf Qo Cf Co V Qw Kv
2 Qo = Qw + Qf ;
3 // r a t e o f s a l t i n f l o w
4 mi = Qf * Cf ;
5 // r a t e o f s a l t o u t f l o w
6 mo = Qo * Co ;
7 // r a t e o f s a l t a c c u m u l a t i o n
8 ma = diff ( V * Co , t ) ;
9 mi = ma + mo ;
10 Qf * Cf = V * diff ( Co , t ) + Qo * Co ;
11 Qf = Kv * xv ;
12 K = Cf * Kv / Qo ;
13 G = V / Qo ;
14 G * diff ( Co , t ) + Co = K * xv ;
15 // t a k i n g l a p l a c e
16 G * s * Co + Co = K * xv ;
17 // t r a n s f e r f u n c t i o n= Co/ xv
18 Co / xv = K /( G * s +1) ;
10
Chapter 3
Feedback Characteristics of
control sytems
1 syms K ;
2 s = %s ;
3 G = syslin ( ’ c ’ ,25( s +1) /( s +5) ) ;
4 p=K;
5 q = s ^2+ s ;
6 J=p/q;
7 F=G*J;
8 T = F /(1+ F ) ; // C l o s e d l o o p t r a n s f e r f u n c t i o n
9 disp (T , ”C( s ) /R( s ) ” )
10 // s e n s i t i v i t y w . r . t K = dT/dK∗K/T
11 S =( diff (T , K ) ) *( K / T )
12 disp (S , ” S e n s i t i v i t y ” )
1 syms K1 K t ;
11
2 s = %s ;
3 p = K1 * K ;
4 q = t * s +1+( K1 * K ) ;
5 T=p/q;
6 disp (T , ”V( s ) /R( s ) ” )
7 // s e n s i t i v i t y w . r . t K i s dT/dK∗K/T
8 S =( diff (T , K ) ) *( K / T )
9 // g i v e n K1=50 K=1.5
10 s =0
11 S = horner (S , s )
12 K1 =50;
13 K =1.5;
14 S =1/(1+ K1 * K )
15 disp (S , ” s e n s i t i v i t y =” )
1 syms A K K1 t
2 s = %s ;
3 p = K1 * K * A ;
4 q = s *(1+( t * s ) +( K1 * K ) ) ;
5 K =1.5;
6 K1 =50;
7 V=p/q
8 v = limit ( s *V ,s ,0)
9 // g i v e n s t e a d y s t a t e s p e e d = 60km/ h r
10 A =60*(1+( K1 * K ) ) /( K1 * K )
11 // s t e a d y e r r o r e ( s s )=A−v
12 v =60;
13 e =A - v ;
14 disp (e , ” e ( s s )=” )
12
1 // u n d e r s t a l l e d c o n d i t i o n s
2 syms Kg K1 D ;
3 A =60.8;
4 A * K1 = Kg * D ;
5 // g i v e n Kg=100
6 Kg =100;
7 K1 =50;
8 D =( A * K1 ) / Kg ;
9 disp (D , ” u p s l o p e=” )
1 // s t e a d y s p e e d =10km/ h r
2 syms K Kg D
3 ((( A -10) * K1 ) -( - D * Kg ) ) K =100;
4 A =(60.8*10) /60;
5 K =1.5;
6 Kg =100;
7 D =((100/ K ) -((A -10) * K ) ) / Kg ;
8 disp (D , ”Down s l o p e=” )
1 // f o r open l o o p s y s t e m
2 // g i v e n s p e e d =60km/ h r
3 syms R K1 K ;
4 ( R * K1 * K ) =60
5 K1 =50;
6 K =1.5;
7 R =60/( K1 * K )
8 disp (R , ” I n p u t open=” )
9 // f o r c l o s e d l o o p
10 R =60(1+( K1 * K ) ) /( K1 * K )
13
11 disp (R , ” I n p u t c l o s e d=” )
1 // f o r open l o o p
2 syms t g s ;
3 s = %s ;
4 K1 =50;
5 K =1.5;
6 g =20;
7 V = syslin ( ’ c ’ ,(( K1 * K ) *0.8) /( s *(( g * s ) +1) ) )
8 // t a k i n g i n v e r s e l a p l a c e
9 v = ilaplace (V ,s , t )
10 v =60(11 - %e ^( - t /20) )
11 // g i v e n v=90%
12 v =0.9;
13 t = -20* log (1 - v ) ;
14 disp (t , ” t i m e open=” )
15 // f o r c l o s e d l o o p
16 syms K ’ g ’
17 s = %s ;
18 V = syslin ( ’ c ’ ,(60.8* K ’) /( s *(( g ’* s ) +1) ) )
19 // t a k i n g i n v e r s e l a p l a c e
20 v = ilaplace (V ,s , t )
21 // g i v e n
22 K ’=75/76;
23 g ’=.263;
24 v =60(1 - %e ^( - t /.263) )
25 // a t v=90%
26 v =0.9;
27 t = -.263* log (1 -( v /60) ) ;
28 disp (t , ” t i m e c l o s e d=” )
14
Chapter 5
1 s = %s
2 syms K J f
3 K =60; // g i v e n
4 J =10; // g i v e n
5 p=K/J
6 q = K / J +( f / J ) * s + s ^2
7 G=p/q;
8 disp (G , ”Qo ( s ) / Qi ( s )=” )
9 zeta =0.3; // g i v e n
10 cof1 = coeffs (q , ’ s ’ ,0)
11 // on c o m p a r i n g t h e c o e f f i c i e n t s
12 Wn = sqrt ( cof1 )
13 cof2 = coeffs (q , ’ s ’ ,1)
14 // 2∗ z e t a ∗Wn=c o f 2
15 f / J =2* zeta * Wn
16 r = s ^2+ f / J
17 s = s ^2+ f / J + K / J
15
18 H = r / s ;
19 disp (H , ”Qe ( s ) / Qi ( s )=” )
1 // g i v e n Qi ( s ) = 0 . 0 4 / s ˆ2
2 s = %s
3 syms K J f
4 Qi =0.04/ s ^2;
5 e = limit ( s * Qi *H ,s ,0)
6 disp (e , ” S t e a d y s t s t e e r o r=” )
1 s = %s ;
2 syms Kp Ka Kt J f
3 // g i v e n
4 J =0.4;
5 Kp =0.6;
6 Kt =2;
7 f =2;
8 p = Kp * Ka * Kt
9 q = s ^2+ f / J +( Kp * Ka * Kt ) / J
10 G=p/q;
11 disp (G , ”Qm( s ) /Qr ( s )=” )
12 cof_1 = coeffs (q , ’ s ’ ,0)
13 // on c o m p a r i n g t h e c o e f f i c i e n t s
14 // Wn=s q r t ( c o f 1 )
15 Wn =10;
16 Ka =( Wn ) ^2* J /( Kp * f )
17 disp ( Ka , ” A m p l i f i e r C o n s t a n t=” )
16
Scilab code Exa 5.3.2 transfer function
1 s = %s ;
2 syms Kp Ka Kt Kd J f
3 // g i v e n
4 J =0.4;
5 Kp =0.6;
6 Kt =2;
7 f =2;
8 Ka =5;
9 p = Kp * Ka * Kt
10 q = s ^2+(( f + Ka * Kd * Kt ) / J ) * s +( Kp * Ka * Kt ) / J
11 G=p/q;
12 disp (G , ”Qm( s ) /Qr ( s )=” )
13 cof_1 = coeffs (q , ’ s ’ ,0)
14 // on c o m p a r i n g t h e c o e f f i c i e n t s
15 Wn = sqrt ( cof_1 )
16 zeta =1 // g i v e n
17 cof_2 = coeffs (q , ’ s ’ ,1)
18 // 2∗ z e t a ∗Wn=c o f 2
19 Kd =(2* zeta * sqrt ( Kp * J * Ka * Kt ) -f ) /( Ka * Kt )
20 disp ( Kd , ” T a c h o g e n e r t o r c o n s t a n t=” )
17
7 Kv = z (1 ,1) / z (1 ,2)
8 Ess =1/ Kv // S t e a d y s t a t e e r r o r f o r u n i t ramp i / p
9 disp ( Ess , ” S t e a d y s t a t e E r r o r=” )
1 // w i t h d e r i v a t i v e f e e d b a c k
2 // c h a r a c t e r i s t i c e q u a t i o n i s
3 syms a
4 s = %s ;
5 p = s ^2+(2+(8* a ) ) * s +8=0
6 zeta =0.7 // g i v e n
7 Wn =2.828;
8 cof_1 = coeffs (p , ’ s ’ ,1)
9 // on c o m p a r i n g 2∗ z e t a ∗Wn=c o f 1
10 a =((2* zeta * Wn ) -2) /8
11 disp (a , ” D e r i v a t i v e f e e d b a c k=” )
12 cof_2 = coeffs (p , ’ s ’ ,0)
13 cof_1 =2+8*0.245;
14 Kv = cof_2 / cof_1 ;
15 Ess =1/ Kv
16 disp ( Ess , ” S t e a d y s t a t e e r r o r=” )
1 // l e t t h e c h a r e q u a t i o n be
2 syms Ka
3 s = %s ;
4 p = s ^2+(2+( a * Ka ) ) * s + Ka =0
5 cof_1 = coeffs (p , ’ s ’ ,0)
6 // Wnˆ2= c o f 1
7 Wn = sqrt ( cof_1 )
8 cof_2 = coeffs (p , ’ s ’ ,1)
18
9 // 2∗ z e t a ∗Wn=c o f 2
10 Kv = cof_1 / cof_2 ;
11 Ess =1/ Kv ;
12 // g i v e n E s s =0.25
13 Ess =0.25;
14 Ka =2/( Ess - a )
15 disp ( Ka . ”Ka=” )
1 s = %s ;
2 syms K V
3 p = s ^2+(100* K ) * s +100=0
4 cof_1 = coeffs (p , ’ s ’ ,0)
5 Wn = sqrt ( cof_1 )
6 zeta =1 // g i v e n
7 cof_2 = coeffs (p , ’ s ’ ,1)
8 // 2∗ z e t a ∗Wn=c o f 2
9 K =(2* Wn * zeta ) /100
10 // For ramp i n p u t
11 R = V / s ^2
12 E=R/p
13 // s t e a d y s t a t e e r r o r
14 e = limit ( s * E ( s ) ,s ,0)
15 disp (e , ” e ( s s )=” )
1 s = %s ;
2 syms t m
3 A =[0 1; -100 -20];
4 B =[0;100];
5 C =[1 0];
19
6 x =[0;0];
7 [ r c ]= size ( A )
8 p = s * eye (r , c ) -A
9 q = inv ( p ) ;
10 disp (q , ” p h i ( s )=” ) // R e s o l v a n t m a t r i x
11 for i =1: r ;
12 for j =1: c ;
13 q (i , j ) = ilaplace ( q (i , j ) ,s , t )
14 end
15 end
16 disp (q , ” p h i ( t )=” ) // S t a t e t r a n s i t i o n m a t r i x
17 t =t - m ;
18 q = eval ( q )
19 // I n t e g r a t e q w . r . t m
20 r = integrate ( q *B , m )
21 m =0 // Upper l i m i t i s t
22 g = eval ( r ) // P u t i n g u p p e r l i m i t i n q
23 m = t // Lower l i m i t i s 0
24 h = eval ( r ) // P u t t i n g l o w e r l i m i t i n q
25 y =( h - g ) ;
26 disp (y , ” y=” )
27 printf ( ” x ( t )=p h i ( t ) ∗ x ( 0 )+ i n t e g r a t e ( p h i ( t−m∗B) w . r . t
m from 0 t o t ) ” )
28 y1 =( q * x ) + y ;
29 disp ( y1 , ” x ( t )=” )
30 // t r a n s f e r f u n c t i o n
31 t=C*q*B;
32 disp (t , ”T( s )=” )
20
Chapter 6
1 s = %s ;
2 p = s ^4+8* s ^3+18* s ^2+16* s +5
3 r = coeff ( p )
4 D1 = r (4)
5 d2 =[ r (4) r (5) ; r (2) r (3) ]
6 D2 = det ( d2 ) ;
7 d3 =[ r (4) r (5) 0; r (2) r (3) r (4) ;0 r (1) r (2) ]
8 D3 = det ( d3 ) ;
9 d4 =[ r (4) r (5) 0 0; r (2) r (3) r (4) r (5) ;0 r (1) r (2) r
(3) ;0 0 0 r (1) ]
10 D4 = det ( d4 ) ;
11 disp ( D1 , ”D1=” )
12 disp ( D2 , ”D2=” )
13 disp ( D3 , ”D3=” )
14 disp ( D4 , ”D4=” )
15 printf ( ” S i n c e a l l t h e d e t e r m i n a n t s a r e p o s i t i v e t h e
system i s s t a b l e ”)
21
Scilab code Exa 6.2 routh array
1 s = %s ;
2 p = s ^4+8* s ^3+18* s ^2+16* s +5
3 r = routh_t ( p )
4 m = coeff ( p )
5 l = length ( m )
6 c =0;
7 for i =1: l
8 if ( r (i ,1) <0)
9 c = c +1;
10 end
11 end
12 if (c >=1)
13 printf ( ” System i s u n s t a b l e ” )
14 else ( ” Sysem i s s t a b l e ” )
15 end
1 s = %s ;
2 p =3* s ^4+10* s ^3+5* s ^2+5* s +2
3 r = routh_t ( p )
4 m = coeff ( p )
5 l = length ( m )
6 c =0;
7 for i =1: l
8 if ( r (i ,1) <0)
9 c = c +1;
10 end
11 end
12 if (c >=1)
22
13 printf ( ” System i s u n s t a b l e ” )
14 else ( ” Sysem i s s t a b l e ” )
15 end
1 s = %s ;
2 syms Kv Kd Kp Kt
3 p = s ^3+(1+( Kv * Kd ) ) * s ^2+( Kv * Kp ) * s +( Kp * Kt )
4 cof_a_0 = coeffs (p , ’ s ’ ,0) ;
5 cof_a_1 = coeffs (p , ’ s ’ ,1) ;
6 cof_a_2 = coeffs (p , ’ s ’ ,2) ;
7 cof_a_3 = coeffs (p , ’ s ’ ,3) ;
8 r =[ cof_a_0 cof_a_1 cof_a_2 cof_a_3 ]
9 n = length ( r ) ;
10 routh =[ r ([4 ,2]) ; r ([3 ,1]) ]
11 routh =[ routh ; - det ( routh ) / routh (2 ,1) ,0]
12 t = routh (2:3 ,1:2) ;
13 routh =[ routh ; - det ( t ) / routh (3 ,1) ,0]
14 disp ( routh , ” r o u t h=” ) ;
15 // f o r s t a b i l i t y r ( : , 1 ) >0
16 // f o r t h e g i v e n t a b l e
17 b = routh (3 ,1)
18 disp ( ” f o r s t a b i l i t y ”b , ”>0” )
1 s = %s ;
2 syms K
3 p =(1+ K ) * s ^2+((3* K ) -0.9) * s +(2 K -1)
4 cof_a_0 = coeffs (p , ’ s ’ ,0) ;
5 cof_a_1 = coeffs (p , ’ s ’ ,1) ;
6 cof_a_2 = coeffs (p , ’ s ’ ,2) ;
23
7 r =[ cof_a_0 cof_a_1 cof_a_2 ]
8 n = length ( r ) ;
9 routh =[ r ([3 ,1]) ; r (2) ,0];
10 routh =[ routh ; - det ( routh ) / routh (2 ,1) ,0];
11 disp ( routh , ” r o u t h=” )
12 // f o r no r o o t i n r i g h t h a l f
13 // r o u t h ( 1 , 1 ) , r o u t h ( 2 , 1 ) , r o u t h ( 3 , 1 ) >0
14 routh (1 ,1) =0
15 routh (2 ,1) =0
16 routh (3 ,1) =0
17 // c o m b i n i n g t h e r e s u l t
18 K =0.9/3;
19 disp (K , ” For no r o o t s i n r i g h t h a l f =” )
20 // f o r 1 p o l e i n r i g h t h a l f i . e . one s i g n c h a n g e
21 // r o u t h ( 1 , 1 ) >0 n r o u t h ( 3 , 1 ) <0
22 disp ( ” For one p o l e i n r i g h t h a l f , −1<K<0.05 ” )
23 // f o r 2 p o l e s i n r i g h t h a l f
24 // r o u t h ( 2 , 1 ) <0 n r o u t h ( 3 , 1 ) >0
25 disp ( ” For 2 p o l e s i n r i g h t h a l f , 0.05 <K<0.3 ” )
1 s = %s ;
2 syms K
3 p = s ^2 -( K +2) * s +((2* K ) +5)
4 cof_a_0 = coeffs (p , ’ s ’ ,0) ;
5 cof_a_1 = coeffs (p , ’ s ’ ,1) ;
6 cof_a_2 = coeffs (p , ’ s ’ ,2) ;
7 r =[ cof_a_0 cof_a_1 cof_a_2 ]
8 n = length ( r ) ;
9 routh =[ r ([3 ,1]) ; r (2) ,0];
10 routh =[ routh ; - det ( routh ) / routh (2 ,1) ,0];
11 disp ( routh , ” r o u t h=” )
12 // f o r s y s t e m t o be s t a b l e
13 routh (2 ,1) >0
24
14 K < -2;
15 routh (3 ,1) >0
16 K > -2.5;
17 disp ( ” For s t a b l e system , −2>K>−2.5 ” )
18 // f o r l i m i t e d s t a b i l i t y
19 routh (2 ,1) =0
20 K = -2
21 routh (3 ,1) =0
22 K = -2.5
23 disp ( ” For l i m t e d s t a b l e s y s t e m K=−2 and K=−2.5 ” )
24 // f o r u n s t a b l e s y s t e m
25 disp ( ” For u n s t a b l e s y s t e m K<−2 o r K>−2.5 ” )
26 roots ( p ) // g i v e s t h e r o o t s o f t h e p o l y n o m i a l m
27 // f o r c r i t i c a l l y damped c a s e
28 g =( K +2) ^2 -4*((2* K ) +5)
29 roots ( g )
30 // f o r s t a b l i t y K=6.47 i s u n s t a b l e
31 // f o r c r i t i c a l damping K= −2.47
32 disp ( ” For underdamded c a s e , −2>K> −2.47 ” )
33 disp ( ” f o r overdamped c a s e , −2.47>K>−2.5 ” )
1 s = %s ;
2 syms eps
3 p = s ^5+ s ^4+2* s ^3+2* s ^2+3* s +5
4 r = coeff ( p ) ;
5 n = length ( r ) ;
6 routh =[ r ([6 ,4 ,2]) ; r ([5 ,3 ,1]) ]
7 syms eps ;
8 routh =[ routh ; eps , - det ( routh (1:2 ,2:3) ) / routh (2 ,2) ,0];
9 routh =[ routh ; - det ( routh (2:3 ,1:2) ) / routh (3 ,1) ,- det (
routh (2:3 ,2:3) ) / routh (4 ,2) ,0];
10 routh =[ routh ; - det ( routh (4:5 ,1:2) ) / routh (5 ,1) ,0 ,0];
11 disp ( routh , ” r o u t h=” )
25
12 // t o c h e c k s t a b i l i t y
13 routh (4 ,1) =8 - limit (5/ eps , eps ,0) ;
14 disp ( routh (4 ,1) ,” r o u t h ( 4 , 1 )=” )
15 routh (5 ,1) = limit ( routh (5 ,1) ,eps ,0) ;
16 disp ( routh (5 ,1) ,” r o u t h ( 5 , 1 )=” )
17 printf ( ” There a r e two s i g n c h a n g e s o f f i r s t column
hence the system i s u n s t a b l e ”)
1 s = %s ;
2 p = s ^6+2* s ^5+8* s ^4+12* s ^3+20* s ^2+16* s +16
3 r = routh_t ( p )
4 roots ( p )
5 disp (0 , ” t h e number o f r e a l p a r t o f r o o t s lying in
the r i g h t h a l f ”)
6 printf ( ” System i s s t a b l e ” )
1 s = %s ;
2 syms K a
3 p = s ^4+10* s ^3+32* s ^2+( K +32) * s +( K * a )
4 cof_a_0 = coeffs (p , ’ s ’ ,0) ;
5 cof_a_1 = coeffs (p , ’ s ’ ,1) ;
6 cof_a_2 = coeffs (p , ’ s ’ ,2) ;
7 cof_a_3 = coeffs (p , ’ s ’ ,3) ;
8 cof_a_4 = coeffs (p , ’ s ’ ,4) ;
9 r =[ cof_a_0 cof_a_1 cof_a_3 cof_a_4 ]
10 n = length ( r ) ;
11 routh =[ r ([5 ,3 ,1]) ; r ([4 ,2]) ,0]
12 routh =[ routh ; - det ( routh (1:2 ,1:2) ) / routh (2 ,1) ,- det (
routh (1:2 ,2:3) ) / routh (2 ,2) ,0];
26
13 routh =[ routh ; - det ( routh (2:3 ,1:2) ) / routh (3 ,1) ,- det (
routh (2:3 ,2:3) ) / routh (3 ,2) ,0];
14 routh =[ routh ; - det ( routh (3:4 ,1:2) ) / routh (4 ,1) ,0 ,0];
15 disp ( routh , ” r o u t h=” )
16 // f o r t h e g i v e n s y s t e m t o be s t a b l e
17 routh (3 ,1) >0
18 K <288;
19 routh (4 ,1) >0
20 (288 - K ) *( K +32) -100( K * a ) >0
21 // l e t K=200
22 K =200;
23 a =((288 - K ) *( K +32) ) /(100* K )
24 // v e l o c i t y e r r o r
25 Kv =( K * a ) /(4*2*4) ;
26 // % v e l o c i t y e r r o r
27 Kvs =100/ Kv
28 disp (a , ” c o n t r o l p a r a m e t e r=” )
29 disp (K , ” Gain=” )
1 s = %s ;
2 p = s ^3+7* s ^2+25* s +39
3 // t o c h e c k i f t h e r o o t s l i e l e f t o f s=−1
4 // s u b s t i t u t e s=s −1
5 p =( s -1) ^3+7*( s -1) ^2+25*( s -1) +20
6 r = routh_t ( p )
7 printf ( ” A l l t h e s i g n s o f e l e m e n t s f i r s t column a r e
p o s i t i v e h e n c e t h e r o o t s l i e l e f t o f s=−1” )
1 s = %s ;
27
2 syms K
3 // t h e s y s t e m c h a r a c t e r i s t i c eq can be w r i t t e n a s
4 p = s ^3+8.5* s ^2+20* s +12.5(1+ K )
5 cof_a_0 = coeffs (p , ’ s ’ ,0) ;
6 cof_a_1 = coeffs (p , ’ s ’ ,1) ;
7 cof_a_2 = coeffs (p , ’ s ’ ,2) ;
8 cof_a_3 = coeffs (p , ’ s ’ ,3) ;
9 r =[ cof_a_0 cof_a_1 cof_a_2 cof_a_3 ]
10 n = length ( r ) ;
11 routh =[ r ([4 ,2]) ; r ([3 ,1]) ]
12 routh =[ routh ; - det ( routh ) / routh (2 ,1) ,0]
13 t = routh (2:3 ,1:2) ;
14 routh =[ routh ; - det ( t ) / routh (3 ,1) ,0]
15 disp ( routh , ” r o u t h=” ) ;
16 // f o r l i m i t i n g v a l u e o f K
17 routh (3 ,1) =0
18 K =12.6;
19 disp (K , ” L i m i t i n g v a l u e o f K” )
1 syms zeta Wn ts z
2 // s e t t l i n g t i m e t s =4/ z e t a ∗Wn
3 // g i v e n t s =4 s e c
4 ts =4;
5 zeta * Wn = ts /4
6 printf ( ”now t h e r e a l p a r t o f dominant r o o t s h o u l d be
−1 o r more ” )
7 // s u b s t i t u t i n g s=s −1
8 p =( s -1) ^3+8.5*( s -1) ^2+20*( s -1) +12.5*(1+ K )
9 cof_a_0 = coeffs (p , ’ s ’ ,0) ;
10 cof_a_1 = coeffs (p , ’ s ’ ,1) ;
11 cof_a_2 = coeffs (p , ’ s ’ ,2) ;
12 cof_a_3 = coeffs (p , ’ s ’ ,3) ;
13 r =[ cof_a_0 cof_a_1 cof_a_2 cof_a_3 ]
28
14 n = length ( r ) ;
15 routh =[ r ([4 ,2]) ; r ([3 ,1]) ]
16 routh =[ routh ; - det ( routh ) / routh (2 ,1) ,0]
17 t = routh (2:3 ,1:2) ;
18 routh =[ routh ; - det ( t ) / routh (3 ,1) ,0]
19 disp ( routh , ” r o u t h=” ) ;
20 // f o r l i m i t i n g v a l u e o f K
21 routh (3 ,1) =0
22 K =2.64
23 disp (K , ” L i m i t i n g v a l u e o f K f o r s e t t l i n g t i m e o f 4 s=
”)
24 // r o o t s o f c h a r eq a t K=2.64
25 g = s ^3+8.5* s ^2+20* s +12.5*(1+2.64)
26 roots ( g )
29
Chapter 7
1 s = %s ;
2 syms k
3 H = syslin ( ’ c ’ ,( k *( s +1) *( s +2) ) /( s *( s +3) *( s +4) ) ) ;
4 evans (H ,5)
5 printf ( ” There a r e t h r e e b r a n c h e s o f r o o t l o c u s
s t a r t i n g w i t h K=0 and p o l e s s =0 , −3 , −4. ” )
6 printf ( ” As k i n c r e a s e s two b r a n c h e s t e r m i n a t e a t
z e r o s s =−1,−2 and one a t i n f i n i t y ” )
1 s = %s ;
2 syms k
3 H = syslin ( ’ c ’ ,1+( k /( s *( s +1) *( s +2) ) ) ) ;
4 evans (H ,5)
30
Figure 7.1: root locus
31
Figure 7.2: root locus
1 s = %s ;
2 syms k
3 H = syslin ( ’ c ’ ,1+( k /( s *( s +1) *( s +2) ) ) )
4 evans (H ,5)
5 d = derivat ( H )
6 p = numer ( d )
32
Figure 7.3: root locus
7 a = roots ( p ) // a=breakaway p o i n t
8 disp (a , ” breakaway p p o i n t=” )
1 s = %s ;
2 syms k
3 H = syslin ( ’ c ’ ,k /( s *( s +4) *( s ^2+(4* s ) +20) ) )
4 evans (H ,1000)
5 printf ( ” S i n c e t h e r e a r e no open l o o p z e r o s all
branches terminate at i n f i m i t y ”)
33
Figure 7.4: root locus
34
Figure 7.5: root locus
1 s = %s ;
2 syms k
3 H = syslin ( ’ c ’ ,k /( s *( s +3) *( s ^2+(2* s ) +2) ) )
4 evans (H ,10)
35
Figure 7.6: root locus
36
Scilab code Exa 7.8 root locus
1 syms K
2 s = %s ;
3 G = syslin ( ’ c ’ ,( K *( s +1) *( s +2) ) /(( s +0.1) *( s -1) ) )
4 evans ( G )
5 n =2;
6 disp (n , ” no o f p o l e s=” )
7 m =2;
8 disp (m , ” no o f z e r o e s=” )
9 K = kpure ( G )
10 disp (K , ” v a l u e o f K where RL c r o s s e s jw a x i s=” )
11 d = derivat ( G )
12 p = numer ( d )
13 a = roots ( p ) ; // a=breakaway p o i n t s
14 disp (a , ” breakaway p o i n t s=” )
15 for i =1:2
16 K = -( a (i ,1) +0.1) *( a (i ,1) -1) /(( a (i ,1) +1) *( a (i ,1)
+2) )
17 disp ( a (i ,1) ,” s=” )
18 disp (K , ”K=” )
19 end
20 printf ( ” z e t a =1 i s a c h i e v e d when t h e two r o o t s a r e
e q u a l and n e g a t i v e ( r e a l ) . T h i s h a p p e n s a t t h e
breakaway p o i n t i n t h e l e f t h a l f s−p l a n e / n” )
21 zeta =1;
22 wn =0.6;
23 sgrid ( zeta , wn )
24 K = -1/ real ( horner (G ,[1 %i ]* locate (1) ) ) ;
25 disp (K , ” The c o r r e s p o n d i n g v a l u e o f g a i n i s =” )
37
Figure 7.7: root locus
38
Scilab code Exa 7.9 root locus
1 syms K
2 s = %s ;
3 G = syslin ( ’ c ’ ,( K *( s +4/3) ) /( s ^2*( s +12) ) )
4 evans (G ,60)
5 d = derivat ( G )
6 p = numer ( d )
7 a = roots ( p ) // a=breakaway p o i n t s
8 disp (a , ” Breakaway p o i n t s=” )
9 printf ( ” Equal r o o t s a r e a t s=−4” )
10 printf ( ” / n V a l u e o f K a t s=−4=” )
11 K =4*4*8/(4 -(4/3) )
12 disp ( K )
1 syms Kh
2 s = %s ;
3 G = syslin ( ’ c ’ ,10* Kh *( s +0.04) *( s +1) /(( s +0.5) *( s
^2 -(0.4* s ) +0.2) *( s +8) ) ) ;
4 evans (G ,3)
5 Kh = kpure ( G )
6 K =10* Kh
7 zeta =1/(2) ^(1/2) ;
8 wn =.575;
9 sgrid ( zeta , wn )
10 K = -1/ real ((2* horner (G ,[1 %i ]* locate (1) ) ) ) ;
11 printf ( ” The z e t a = 1 / ( 2 ) ˆ 1 / 2 l i n e i n t e r s e c t s t h e r o o t
l o c u s a t two p o i n t s w i t h K1= 1 . 1 5 5 and K2=0.79 ” )
39
Figure 7.8: root locus
40
12 Kh1 =0.156;
13 Kh2 =0.079;
14 // from t h e b l o c k d i a g r a m
15 Td ( s ) =1/ s ;
16 E ( s ) = C ( s ) = G /(1+( G * Kh *( s +1) ) /( s +8) ) * Td ( s ) ;
17 // s u b s t i t u t i n g v a l u e o f G
18 F = s * E ( s ) =10* Kh /(1+(10* Kh ) ) ;
19 // s t e a y s t a t e e r r o r
20 ess = limit (F ,s ,0)
21 // f o r Kh1 = 0 . 1 5 6
22 ess =0.609;
23 // f o r Kh2 = 0 . 0 7 9
24 ess =0.44;
41
Chapter 9
1 s = %s ;
2 syms K T1 T2
3 H = syslin ( ’ c ’ ,K /(( T1 * s +1) *( T2 * s +1) ) ) ;
4 nyquist ( H )
5 show_margins (H , ’ n y q u i s t ’ )
6 printf ( ” S i n c e P=0( no o f p o l e s i n RHP) and t h e
n y q u i s t c o n t o u r d o e s n o t e n c i r c l e t h e p o i n t −1+ j 0
”)
7 printf ( ” System i s s t a b l e ” )
1 s = %s ;
2 H = syslin ( ’ c ’ ,( s +2) /(( s +1) *( s -1) ) )
3 nyquist ( H )
42
Figure 9.1: nyquist plot
43
Figure 9.2: nyquist plot
4 show_margins (H , ’ n y q u i s t ’ )
5 printf ( ” S i n c e P=1 and t h e p t . −1+ j 0 i s e n c i r c l e d
o n c e by t h e l o c u s ” )
6 printf ( ” Hence N=1 t h e r e f o r e , Z=0( no o f z e r o s i n RHP)
”)
7 printf ( ” System i s s t a b l e ” )
1 s = %s ;
2 syms K T
3 H = syslin ( ’ c ’ ,K /( s *( T * s +1) ) )
4 nyquist ( H )
44
Figure 9.3: nyquist plot
5 show_margins (H , ’ n y q u i s t ’ )
6 mtlb_axis ([ -1 1 -1 1])
7 printf ( ” S i n c e P=0( no o f p o l e s i n RHP) and t h e
n y q u i s t c o n t o u r d o e s n o t e n c i r c l e t h e p o i n t −1+ j 0
”)
8 printf ( ” System i s s t a b l e ” )
1 s = %s ;
2 H = syslin ( ’ c ’ ,(4* s +1) /( s ^2*( s +1) *(2* s +1) ) )
3 nyquist ( H )
4 show_margins (H , ’ n y q u i s t ’ )
45
Figure 9.4: nyquist plot
46
Figure 9.5: nyquist plot
47
Figure 9.6: nyquist plot
48
1 s = %s ;
2 syms K a
3 H = syslin ( ’ c ’ ,( K *( s + a ) ) /( s *( s -1) ) )
4 // f o r K>1
5 nyquist ( H )
6 show_margins (H , ’ n y q u i s t ’ )
7 mtlb_axis ([ -5 5 -5 5])
8 xtitle ( ” For K>1” )
9 printf ( ”P=1( p o l e i n RHP) )
10 p r i n t f ( ” Nyquist plot encircles the the point -1+ j0
once anti - clockwise i . e . , N =1 ” )
11 p r i n t f ( ” Hence Z =0 ” ) // N=P−Z
12 p r i n t f ( ” System is stable ” )
13 // f o r K<1
14 H= s y s l i n ( ’ c ’ , ( − 2 ∗ ( s +1) ) / ( s ∗ ( s −1) ) )
15 s h o w m a r g i n s (H, ’ n y q u i s t ’ )
16 m t l b a x i s ([ −5 5 −5 5 ] )
17 x t i t l e ( ” For K <1 ” )
18 p r i n t f ( ” The point -1+ j0 lie beyond -K ( the crossing
point of the plot ) . So N = -1 , P =1 ” )
19 p r i n t f ( ” Hence Z =2 , zeros in RHP =2 ” )
20 p r i n t f ( ” System is unstable ” )
1 s = %s ;
2 syms k
3 H = syslin ( ’ c ’ ,( k *( s -2) ) /( s +1) ^2)
4 // f o r K/2>−1 o r K>−2
5 nyquist ( H )
6 show_margins (H , ’ n y q u i s t ’ )
7 printf ( ”P=0( p o l e s i n RHP) ” )
8 printf ( ”N=−1, h e n c e Z=1” )
49
Figure 9.7: stability using nyquist plot
50
Figure 9.8: stability using nyquist plot
9 printf ( ” T h e r e f o r e , System i s u n s t a b l e ” )
1 s = %s ;
2 syms k
3 H = syslin ( ’ c ’ ,( K *( s +2) ) /( s ^2*( s +1) ) )
4 nyquist ( H )
5 show_margins (H , ’ n y q u i s t ’ )
6 mtlb_axis ([ -20 20 -20 20])
7 printf ( ”P=0 and t h e l o c u s d o e s n o t e n c i r c l e the
51
Figure 9.9: stability using nyquist plot
p o i n t −1+ j 0 ” )
8 printf ( ” System i s s t a b l e ” )
52
6 // f o r k/4>1 o r k>4
7 printf ( ”N=−2 a s i t e n c i r c l e s t h e p o i n t t w i c e i n
c l o c k w i s e d i r e c t i o n ”)
8 printf ( ”P=0 and h e n c e Z=2” )
9 printf ( ” System i s u n s t a b l e f o r k>4” )
1 // from t h e n y q u i s t p l o t
2 N = -2; // no o f e n c i r c l e m e n t s
3 P =0; // g i v e n
4 Z =P - N
5 printf ( ” S i n c e Z=2 t h e r e f o r e two r o o t s of the
c h a r a c t e r i s t i c equation l i e s in the r i g h t h a l f of
s−p l a n e , h e n c e t h e s y s t e m i s u n s t a b l e ” )
1 // from t h e n y q u i s t p l o t
2 N =0; // one c l o c k w i s e and one a n t i c l o c k w i s e
encirclement
3 P =0; // g i v e n
4 Z =N - P
5 printf ( ” S i n c e Z=0 no r o o t o f t h e c h a r a c t e r i s i c
equation l i e s in the r i g h t h a l f hence the system
i s s t a b l e ”)
53
Figure 9.10: gm and pm using nyquist plot
54
Figure 9.11: bode plot
1 s = %s ;
2 syms K
3 H = syslin ( ’ c ’ ,K /( s *(0.2* s +1) *(0.05* s +1) ) )
4 nyquist ( H )
5 show_margins (H , ’ n y q u i s t ’ )
6 mtlb_axis ([ -1 1 -5 1])
7 gm = g_margin ( H ) // g a i n m a r g i n
8 pm = p_margin ( H ) // p h a s e m a r g i n
55
Figure 9.12: bode plot
1 s = %s ;
2 H = syslin ( ’ c ’ ,10/( s *(0.1* s +1) *(0.05* s +1) ) )
3 fmin =0.1;
4 fmax =100;
5 bode (H , fmin , fmax )
6 show_margins ( H )
7 gm = g_margin ( H )
8 pm = p_margin ( H )
56
Figure 9.13: bode plot
1 s = %s ;
2 H = syslin ( ’ c ’ ,(8*( s +4) ) /(( s -1) *( s -2) ) )
3 fmin =0.1;
4 fmax =100;
5 bode (H , fmin , fmax )
6 show_margins ( H )
7 gm = g_margin ( H )
8 pm = p_margin ( H )
57
Figure 9.14: m circles
1 syms K
2 H = syslin ( ’ c ’ ,( K *( s +4) ) /(( s -1) *( s -2) ) )
3 fmin =0.1;
4 fmax =100;
5 bode (H , fmin , fmax )
6 show_margins ( H )
7 // f o r p h a s e m a r g i n =30
8 printf ( ”From bode p l o t i t can be s e e n t h a t g a i n
s h o u l d be r e d u c e d by 4 db ” )
58
1 s = %s ;
2 H = syslin ( ’ c ’ ,10/( s *((0.1* s ) +1) *((0.5* s ) +1) ) )
3 fmin =0.1;
4 fmax =100;
5 clf ()
6 black (H ,0.1 ,100)
7 chart ( list (1 ,0) )
8 gm = g_margin ( H )
9 pm = p_margin ( H )
10 printf ( ” For g a i n m a r g i n o f 20 db p l o t i s s h i f t e d
downwards by 8 db and a p h a s e m a r g i n o f 24
d e g r e e s i s o b t a i n e d i f c u r v e i s s h i f t e d upwards
by 3 . 5 db ” )
1 s = %s ;
2 H = syslin ( ’ c ’ ,10/( s *((0.1* s ) +1) *((0.05* s ) +1) ) )
3 fmin =0.1;
4 fmax =100;
5 clf ()
6 black (H ,0.1 ,100)
7 chart ( list (1 ,0) )
8 gm = g_margin ( H )
9 pm = p_margin ( H )
10 printf ( ” For g a i n m a r g i n o f 20 db p l o t i s s h i f t e d
downwards by 8 db and a p h a s e m a r g i n o f 24
d e g r e e s i s o b t a i n e d i f c u r v e i s s h i f t e d upwards
by 3 . 5 db ” )
59
Figure 9.15: m circles
60
Chapter 10
Introduction to Design
1 s = %s ;
2 syms Kv ;
3 g =( Kv /( s *( s +1) ) ) ;
4 // g i v e n Kv=12
5 Kv =12;
6 g =(12/( s *( s +1) ) ) ;
7 G = syslin ( ’ c ’ ,g )
8 fmin =0.01;
9 fmax =100;
10 bode (G , fmin , fmax )
11 show_margins ( G )
12 xtitle ( ” u n c o m p e n s a t e d s y s t e m ” )
13 [ gm , freqGM ]= g_margin ( G )
14 [ pm , freqPM ]= p_margin ( G )
15 disp ( gm , ” g a i n m a r g i n=” )
16 disp (( freqGM *2* %pi ) ,” g a i n m a r g i n f r e q=” ) ;
17 disp ( pm , ” p h a s e m a r g i n=” )
61
Figure 10.1: lead compensation
62
Figure 10.2: lead compensation
63
18 disp (( freqPM *2* %pi ) ,” p h a s e m a r g i n f r e q=” ) ;
19 printf ( ” s i n c e P .M i s l e s s t h a n d e s i r e d v a l u e s o we
need phase l e a d network ”)
20 disp ( ” s e l e c t i n g z e r o o f l e a d c o m p e n s t i n g n e t w o r k a t
w=2.65 r a d / s e c and p o l e a t w=7.8 r a d / s e c and
applying gain to account a t t e n u a t i o n f a c t o r . ”)
21 gc =(1+0.377* s ) /(1+0.128* s )
22 Gc = syslin ( ’ c ’ , gc )
23 disp ( Gc , ” t r a n s f e r f u n c t i o n o f l e a d c o m p e n s a t o r=” ) ;
24 G1 = G * Gc
25 disp ( G1 , ” o v e r a l l t r a n s f e r f u n c t i o n=” ) ;
26 fmin =0.01;
27 fmax =100;
28 bode ( G1 , fmin , fmax ) ;
29 show_margins ( G1 )
30 xtitle ( ” c o m p e n s a t e d s y s t e m ” )
31 [ gm , freqGM ]= g_margin ( G1 ) ;
32 [ pm , freqPM ]= p_margin ( G1 ) ;
33 disp ( pm , ” p h a s e m a r g i n o f c o m p e n s a t e d s y s t e m=” )
34 disp (( freqPM *2* %pi ) ,” g a i n c r o s s o v e r f r e q u e n c y=” )
1 s = %s ;
2 syms Ka ;
3 g =( Ka /( s ^2*(1+0.2* s ) ) ) ;
4 // g i v e n Ka=10
5 Ka =10;
6 g =(10/( s ^2*(1+0.2* s ) ) ) ;
7 G = syslin ( ’ c ’ ,g )
8 fmin =0.01;
64
Figure 10.3: lead compensation
65
Figure 10.4: lead compensation
66
9 fmax =100;
10 bode (G , fmin , fmax )
11 show_margins ( G )
12 xtitle ( ” u n c o m p e n s a t e d s y s t e m ” )
13 [ gm , freqGM ]= g_margin ( G )
14 [ pm , freqPM ]= p_margin ( G )
15 disp ( gm , ” g a i n m a r g i n=” )
16 disp (( freqGM *2* %pi ) ,” g a i n m a r g i n f r e q=” ) ;
17 disp ( pm , ” p h a s e m a r g i n=” )
18 disp (( freqPM *2* %pi ) ,” p h a s e m a r g i n f r e q=” ) ;
19 disp ( ” s i n c e P .M i s n e g a t i v e s o s y s t e m i s u n s t a b l e ” )
20 disp ( ” s e l e c t i n g z e r o o f l e a d c o m p e n s a t i n g n e t w o r k a t
w=2.8 r a d / s e c and p o l e a t w=14 r a d / s e c and
applying gain to account a t t e n u a t i o n f a c t o r . ”)
21 gc =(1+0.358* s ) /(1+0.077* s )
22 Gc = syslin ( ’ c ’ , gc )
23 disp ( Gc , ” t r a n s f e r f u n c t i o n o f l e a d c o m p e n s a t o r=” ) ;
24 G1 = G * Gc
25 disp ( G1 , ” o v e r a l l t r a n s f e r f u n c t i o n=” ) ;
26 fmin =0.01;
27 fmax =100;
28 bode ( G1 , fmin , fmax ) ;
29 show_margins ( G1 )
30 xtitle ( ” c o m p e n s a t e d s y s t e m ” )
31 [ gm , freqGM ]= g_margin ( G1 ) ;
32 [ pm , freqPM ]= p_margin ( G1 ) ;
33 disp ( pm , ” p h a s e m a r g i n o f c o m p e n s a t e d s y s t e m=” )
34 disp (( freqPM *2* %pi ) ,” g a i n c r o s s o v e r f r e q u e n c y=” )
67
Figure 10.5: lag compnsation
68
Figure 10.6: lag compnsation
1 s = %s ;
2 syms K ;
3 g =( K /( s *( s +1) *( s +4) ) ) ;
4 g =(( K /4) /( s *( s +1) *(0.25* s +1) ) )
5 // g i v e n Kv=5 : v e l o c i t y e r r o r c o n s t a n t
6 K =20;
7 g =(5/( s *( s +1) *(0.25* s +1) ) )
8 G = syslin ( ’ c ’ ,g )
9 fmin =0.01;
10 fmax =100;
11 bode (G , fmin , fmax )
12 show_margins ( G )
13 xtitle ( ” u n c o m p e n s a t e d s y s t e m ” )
14 [ gm , freqGM ]= g_margin ( G )
15 [ pm , freqPM ]= p_margin ( G )
16 disp ( gm , ” g a i n m a r g i n=” )
17 disp (( freqGM *2* %pi ) ,” g a i n m a r g i n f r e q=” ) ;
18 disp ( pm , ” p h a s e m a r g i n=” )
69
19 disp (( freqPM *2* %pi ) ,” p h a s e m a r g i n f r e q=” ) ;
20 disp ( ” s i n c e P .M i s n e g a t i v e s o s y s t e m i s u n s t a b l e ” )
21 disp ( ” s e l e c t i n g z e r o o f p h a s e l a g n e t w o r k a t w= 0 . 0 1 3
r a d / s e c and p o l e a t w=0.13 r a d / s e c and a p p l y i n g
gain to account a t t e n u a t i o n f a c t o r ”)
22 gc =(( s +0.13) /(10*( s +0.013) ) )
23 Gc = syslin ( ’ c ’ , gc )
24 disp ( Gc , ” t r a n s f e r f u n c t i o n o f l a g c o m p e n s a t o r=” ) ;
25 G1 = G * Gc
26 disp ( G1 , ” o v e r a l l t r a n s f e r f u n c t i o n=” ) ;
27 fmin =0.01;
28 fmax =100;
29 bode ( G1 , fmin , fmax ) ;
30 show_margins ( G1 )
31 xtitle ( ” c o m p e n s a t e d s y s t e m ” )
32 [ gm , freqGM ]= g_margin ( G1 ) ;
33 [ pm , freqPM ]= p_margin ( G1 ) ;
34 disp ( pm , ” p h a s e m a r g i n o f c o m p e n s a t e d s y s t e m=” )
35 disp (( freqPM *2* %pi ) ,” g a i n c r o s s o v e r f r e q u e n c y=” )
1 s = %s ;
2 syms K ;
3 g =( K /( s *(0.1* s +1) *(0.2* s +1) ) ) ;
4 // g i v e n Kv=30 : v e l o c i t y e r r o r c o n s t s n t
5 K =30;
6 g =(30/( s *(0.1* s +1) *(0.2* s +1) ) )
7 G = syslin ( ’ c ’ ,g )
8 fmin =0.01;
9 fmax =100;
70
Figure 10.7: lag and lead compensation
71
Figure 10.8: lag and lead compensation
72
10 bode (G , fmin , fmax )
11 show_margins ( G )
12 xtitle ( ” u n c o m p e n s a t e d s y s t e m ” )
13 [ gm , freqGM ]= g_margin ( G )
14 [ pm , freqPM ]= p_margin ( G )
15 disp ( gm , ” g a i n m a r g i n=” )
16 disp (( freqGM *2* %pi ) ,” g a i n m a r g i n f r e q=” ) ;
17 disp ( pm , ” p h a s e m a r g i n=” )
18 disp (( freqPM *2* %pi ) ,” p h a s e m a r g i n f r e q=” ) ;
19 disp ( ” s i n c e P .M i s n e g a t i v e s o s y s t e m i s u n s t a b l e ” )
20 disp ( ” I f l e a d c o m p e n s t i o n i s u s e d bandwidth w i l l
i n c r e a s e r e s u l t i n g in u n d e s i r a b l e system
s e n s i t i v e to n o i s e . I f l a g compensation i s used
bandwidth d e c r e a s e s s o a s t o f a l l s h o r t o f
s p e c i f i e d v a l u e o f 12 r a d / s e c r e s u l t i n g i n
s l u g g i s h system ”)
21 disp ( ” / n h e n c e we u s e a l a g −l e a d c o m p e n s a t o r ” )
22 // l a g c o m p e n s a t o r
23 disp ( ” s e l e c t i n g z e r o o f p h a s e l a g n e t w o r k w=1 r a d /
s e c and p o l e a t w=0.1 r a d / s e c and a p p l y i n g g a i n
to account a t t e n u a t i o n f a c t o r ”)
24 gc1 =(( s +1) /(10* s +1) ) ;
25 Gc1 = syslin ( ’ c ’ , gc1 )
26 disp ( Gc1 , ” t r a n s f e r f u n c t i o n o f l a g c o m p e n s a t o r ” )
27 // l e a d c o m p e n s a t o r
28 disp ( ” s e l e c t i n g z e r o o f l e a d c o m p e n s a t o r a t w= 0 . 4 2 5
r a d / s e c and p o l e a t w= 0 . 0 4 2 5 r a d / s e c ” )
29 gc2 =((0.425* s +1) /(0.0425* s +1) ) ;
30 Gc2 = syslin ( ’ c ’ , gc2 )
31 disp ( Gc2 , ” t r a n s f e r f u n c t i o n o f l e a d c o m p e n s a t o r ” )
32 Gc = Gc1 * Gc2 // t r a n s f e r f u n c t i o n o f l a g and l e a d
sections
33 disp ( Gc , ” t r a n s f e r f u n c t i o n o f l a g and l e a d s e c t i o n s ”
)
34 G1 = G * Gc
35 disp ( G1 , ” o v e r a l l t r a n s f e r f u n c t i o n=” ) ;
36 fmin =0.01;
37 fmax =100;
73
38 bode ( G1 , fmin , fmax ) ;
39 show_margins ( G1 )
40 xtitle ( ” c o m p e n s a t e d s y s t e m ” )
41 [ gm , freqGM ]= g_margin ( G1 ) ;
42 [ pm , freqPM ]= p_margin ( G1 ) ;
43 disp ( pm , ” p h a s e m a r g i n o f c o m p e n s a t e d s y s t e m=” )
44 disp (( freqPM *2* %pi ) ,” g a i n c r o s s o v e r f r e q u e n c y=” )
74
Chapter 12
1 s = %s ;
2 H = syslin ( ’ c ’ ,(2* s ^2+6* s +7) /(( s +1) ^2*( s +2) ) )
3 SS = tf2ss ( H )
4 [ Ac , Bc ,U , ind ]= canon ( SS (2) , SS (3) )
1 syms m11 m12 m13 m21 m22 m23 m31 m32 m33 ^
2 s = %s ;
3 poly (0 , ” l ” ) ;
4 A =[0 1 0;3 0 2; -12 -7 -6]
5 [ r c ]= size ( A )
6 I = eye (r , c ) ;
7 p = l *I - A ;
8 q = det ( p ) ; // d e t e r m i n a n t o f l i −p
9 // r o o t s o f q a r e
75
10 l1 = -1;
11 l2 = -2;
12 l3 = -3;
13 x1 =[ m11 ; m21 ; m31 ];
14 q1 =( l1 *I - A ) *1
15 // on s o l v i n g we f i n d m11=1 m21=−1 31=−1
16 m11 =1; m21 = -1; m31 = -1;
17 x2 =[ m12 ; m22 ; m32 ];
18 q2 =( l2 *I - A ) *1
19 // on s o l v i n g we f i n d m12=2 m22=−4 m32=1
20 m12 =2; m22 = -4; m32 =1;
21 x3 =[ m13 ; m23 ; m33 ];
22 q3 =( l3 *I - A ) *1
23 // on s o l v i n g we g e t m13=1 m23=−3 m33=3
24 m13 =1; m23 = -3; m33 =3;
25 // modal m a t r i x i s
26 M =[ m11 m12 m13 ; m21 m22 23; m31 m32 m33 ]
1 syms t m
2 s = %s ;
3 A =[1 0;1 1];
4 B =[1;1];
5 x =[1;0];
6 [ r c ]= size ( A )
7 p = s * eye (r , c ) -A // s ∗ I−A
8 q = inv ( p )
9 for i =1: r
10 for j =1: c
11 // i n v e r s e l a p l a c e o f e a c h e l e m e n t o f M a t r i x q
12 q (i , j ) = ilaplace ( q (i , j ) ,s , t ) ;
13 end
14 end
15 disp (q , ” p h i ( t )=” ) // S t a t e T r a n s i t i o n M a t r i x
76
16 t =t - m ;
17 q = eval ( q )
18 // I n t e g r a t e q w . r . t m
19 r = integrate ( q *B , m )
20 m =0 // Upper l i m i t i s t
21 g = eval ( r ) // P u t i n g u p p e r l i m i t i n q
22 m = t // Lower l i m i t i s 0
23 h = eval ( r ) // P u t t i n g l o w e r l i m i t i n q
24 y =( h - g ) ;
25 disp (y , ” y=” )
26 printf ( ” x ( t )=p h i ( t ) ∗ x ( 0 )+ i n t e g r a t e ( p h i ( t−m∗B) w . r . t
m from 0 t o t ) ” )
27 y1 =( q * x ) + y ;
28 disp ( y1 , ” x ( t )=” )
1 syms t
2 s = %s ;
3 A =[1 0;1 1];
4 [ r c ]= size ( A )
5 p = s * eye (r , c ) -A
6 // r e s o l v e n t m a t r i x
7 q = inv ( p )
8 disp (q , ” p h i ( s )=” )
9 for i =1: r
10 for j =1: c
11 q (i , j ) = ilaplace ( q (i , j ) ,s , t )
12 end
13 end
14 disp (q , ” p h i ( t )=” ) // s t a t e t r a n s i t i o n m a t r i x
Scilab code Exa 12.7 state transition matrix and state response
77
1 syms t m
2 s = %s ;
3 A =[0 1; -2 -3];
4 B =[0;2];
5 x =[0;1];
6 [ r c ]= size ( A )
7 p = s * eye (r , c ) -A
8 q = inv ( p )
9 for i =1: r
10 for j =1: c
11 q (i , j ) = ilaplace ( q (i , j ) ,s , t )
12 end
13 end
14 disp (q , ” p h i ( t )=” ) // s t a t e t r a n s i t i o n m a t r i x
15 t =t - m ;
16 q = eval ( q )
17 // I n t e g r a t e q w . r . t m
18 r = integrate ( q *B , m )
19 m =0 // Upper l i m i t i s t
20 g = eval ( r ) // P u t i n g u p p e r l i m i t i n q
21 m = t // Lower l i m i t i s 0
22 h = eval ( r ) // P u t t i n g l o w e r l i m i t i n q
23 y =( h - g ) ;
24 disp (y , ” y=” )
25 printf ( ” x ( t )=p h i ( t ) ∗ x ( 0 )+ i n t e g r a t e ( p h i ( t−m∗B) w . r . t
m from 0 t o t ) ” )
26 y1 =( q * x ) + y ;
27 disp ( y1 , ” x ( t )=” )
78
5 d = det ( P )
6 if d ==0
7 printf ( ” m a t r i x i s s i n g u l a r , so system i s
u n c o n t r o l l a b l e ”);
8 else
9 printf ( ” s y s t e m i s c o n t r o l l a b l e ”);
10 end ;
1 A =[0 1; -1 -2];
2 B =[1; -1];
3 P = cont_mat (A , B ) ;
4 disp (P , ” C o n t r o l l a b i l i t y M a t r i x=” )
5 d = determ ( P )
6 if d ==0
7 printf ( ” m a t r i x i s s i n g u l a r , s o s y s t e m i s
u n c o n t r o l l a b l e ”);
8 else
9 printf ( ” s y s t e m i s c o n t r o l l a b l e ” ) ;
10 end ;
79
9 else
10 printf ( ” s y s t e m i s o b s e r v a b l e ”);
11 end ;
1 syms g1 g2 g3
2 poly (0 , ” l ” ) ;
3 A =[1 2 0;3 -1 1;0 2 0];
4 C =[0;0;1];
5 G =[ g1 ; g2 ; g3 ];
6 p =A - G * C ;
7 [ r c ]= size ( A ) ;
8 I = eye (r , c ) ;
9 q = lI - p ; // l I −(A−G∗C) where I i s i d e n t i t y m a t r i x
10 r = det ( q ) // d e t r m i n a n t o f l I −(A−G∗C)
11 // on e q u a t i n g r =0 we g e t
12 // c h a r a c t e r i s t i c e q u a t i o n
13 l ^3+ g3 *( l ) ^2+(2* g2 -9) l +2+6* g1 -2* g2 -7* g3 =0;
14 printf ( ” d e s i r e d c h a r a c t e r i s t i c e q u a t i o n g i v e n i s \n ” )
15 l ^3+10*( l ) ^2+34* l +40=0;
16 // on c o m p a r i n g t h e c o e f f i c i e n t s og t h e two
equations
17 // we g e t g1 =25.2 g2 =21.5 g3 =10
18 g1 =25.2;
19 g2 =21.5;
20 g3 =10;
21 disp ( G )
80