Está en la página 1de 26

UNIVERSIDAD NACIONAL SAN AGUSTIN

EJERCICIOS RESUELTOS
EN MATLAB
GUIA DE LABORATORIO T.C.A. I
CARI SALAS, IVAN ISMAEL 20161844
ESTABILIDAD DE LOS SISTEMAS DE CONTROL AUTOMATICO

1. Criterio de Routh-Hurtwitz (R-H): Determine si G(s) es estable usando el


criterio de R-H
N ( s)
i) G( s) 
s 3  3s  2
kN ( s)
ii) G( s) 
s  2s  24s 3  48s 2  25s  50
5 4

Use roots en Matlab para determinar las raíces de la ecuación característica y


comprobar sus resultados analíticos.

N ( s)
i) G( s)  usando el criterio de Routh-Hurtwitz (R-H) tenemos:
s 3  3s  2

1 -3 Al calcular los respectivos valores con el método vemos que al

s2 0 2 sacar las determinantes se encuentra una división entre 0 por


ello
1
s ∞ 0 se ve el símbolo ∞ ya que es indeterminado.

s0 ∞ 0 Por ello por criterio de R-H el “sistema es inestable”

Lo cual comprobando con matlab usando roots:

>> roots([1 0 -3 2])


ans =
-2.0000
1.0000
1.0000

Lo cual se ve que tiene dos raíces en el semiplano derecho.


Con esto se comprueba el resultado con el método Routh-Hurtwitz.

kN ( s)
ii) G ( s )  tenemos:
s  2s  24s 3  48s 2  25s  50
5 4

s5 1 24 -25
s4 2 48 -50
(2s 4  48s 2  50)
 8s 3  96s
s

s3 0(8) 0(96) 0

s2 24 -50 0 Se tiene un negativo

s1 112.7 0 0

s0 -50 0 0 Por tanto el “sistema es inestable”

En matlab tenemos:

>> roots([1 2 24 48 -25 -50])


ans =
0.0000 + 5.0000i
0.0000 - 5.0000i
1.0000
-2.0000
-1.0000

2. Criterio de (R-H): A partir de la ecuación característica φ(s), determine si


el sistema es estable usando el criterio R-HH.
El criterio de Routh Hurwizt es un método algebraico que proporciona
información sobre la estabilidad absoluta de un sistema lineal e invariante
en el tiempo, este criterio prueba si las raíces de la ecuación característica se
encuentran en el semiplano derecho, izquierdo o en el eje jω.

i.  ( s )  s 3  2s 2  s  2

s3 1 1
s2 2 2
s 1 d (2s 2  2)
4 0  4s
ds
s0 8 0

Como no hay cambios de signo en la primera columna el sistema es estable.

>> p=[1 2 1 2];


>> roots(p)

ans =

-2.0000
0.0000 + 1.0000i
0.0000 - 1.0000i
>> pzmap(tf([1],[1 2 1 2]));grid
Pole-Zero Map
1.5

0.5
Imaginary Axis

-0.5

-1

-1.5
-2 -1.5 -1 -0.5 0 0.5
Real Axis

Como se puede apreciar tenemos una raíz en el lado izquierdo del plano y
dos en el eje jω, entonces el sistema si es estable.

ii.  (s)  s 4  13s 2  36

s4 1 12 36
3 ( s 4  12s 2  36)
s 4 24 0  4s 3  24s
s
s2 6 36 0 (6s 2  36)
 12s
s1 12 0 0 s

s0 36 0 0
En este caso tampoco cambian los signos en la primera columna, entonces
el sistema es estable.
>> p=[1 0 13 0 36];
>> roots(p)

ans =

0 + 3.0000i
0 - 3.0000i
0 + 2.0000i
0 - 2.0000i
>>pzmap(tf([1],[1 0 13 0 36]))
Pole-Zero Map
4

Imaginary Axis 1

-1

-2

-3

-4
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Real Axis

Ahora tenemos dos pares de raíces complejas conjugadas ubicadas todas en


eje jω, por lo tanto el sistema es estable.

iii.  (s)  s 5  2s 4  4s 3  8s 2  5s  10

s5 1 4 5
s4 2 8 10 (2s 4  8s 2  10)
 8s 3  16s
s3 8 16 0 s
2
s 4 10 0
1
s -4 0 0
s0 -10 0 0

Por existir un cambio de signo por tanto el sistema es inestable.


>> p=[1 2 4 8 5 10];
>> roots(p)

ans =

-2.0000
0.3436 + 1.4553i
0.3436 - 1.4553i
-0.3436 + 1.4553i
-0.3436 - 1.4553i
>> pzmap(tf([1],[1 2 4 8 5 10]))
Pole-Zero Map
1.5

Imaginary Axis 0.5

-0.5

-1

-1.5
-2 -1.5 -1 -0.5 0 0.5
Real Axis
Como tenemos dos raíces complejas conjugadas en el lado derecho del
plano, este sistema no es estable.
iv.  ( s)  s 4  s 3  s 2  s  2

s4 1 1 2
3
s 1 1 0
s2  2 0
s1  2

2 0 0
 

s0 2 0 0

En este ejemplo se uso ε para representar un valor muy pequeño, luego


sesiguio el procedimiento ya conocido, entonces como hay dos cambios de
signo tendremos dos raíces en el semiplano derecho del plano s.
>> p=[1 1 1 1 2];
>> roots(p)

ans =

-0.9734 + 0.7873i
-0.9734 - 0.7873i
0.4734 + 1.0256i
0.4734 - 1.0256i
>> pzmap(tf([1],[1 1 1 1 2]))
Pole-Zero Map
1.5

0.5
Imaginary Axis

-0.5

-1

-1.5
-1 -0.5 0 0.5
Real Axis

En este se comprueba la existencia de dos raíces complejas conjugadas


ubicadas en el semiplano derecho, entonces el sistema correspondiente a la
ecuación característica es inestable.

4. Lugar de Raíces: Sea el sistema de control definido por el diagrama de


bloques de la figura siguiente. Realice el grafico del lugar de raíces; y según
este gráfico, determine para que valores de “k” este grafico, determine para
que valores de “k” el sistema es estable.
( s  2)( s  3)
i) C (s)  k G ( s)  H ( s)  1
s2  s
C ( s)G( s)
F ( s) 
1  C ( s)G( s) H ( s)
k ( s  2)( s  3)
F ( s) 
(1  k ) s 2  (1  5k ) s  6k

s2 1 k 6k
s1 1 5k 0
0
s 6k 0

1  k  0 , 1  5k  0 6k  0 o bien 1  k  0 , 1  5k  0 6k  0
   
Entonces: k  1   k     k  0  k  1   k     k  0
1 1
  5    5 
k  0  k  1
 k  .  1]  [0,
s 2  5s  6
La función a analizar es: P( s) 
s2  s
>> P=tf(conv([1 2],[1 3]),conv([1 0],[1 1]))

Transfer function:
s^2 + 5 s + 6
-------------
s^2 + s
>> rlocus(P)
>> [K,polos]=rlocfind(P)
Select a point in the graphics window
selected_point =
-0.3774 + 0.3012i
K=
0.0767
polos =
-0.6424 + 0.1205i
-0.6424 - 0.1205i

>> [K,polos]=rlocfind(P)
Select a point in the graphics window
selected_point =
0.0041 - 0.0031i
K=
8.6466e-004
polos =
-0.9983
-0.0052
>> [K,polos]=rlocfind(P)
Select a point in the graphics window
selected_point =
-2.7577 - 0.0031i
K=
26.4001
polos =
-2.7577
-2.0963
Root Locus
1
0.95 0.9 0.82 0.7 0.52 0.3

0.8
0.978
0.6

0.4
0.994

0.2
Imaginary Axis

3 2.5 2 1.5 1 0.5


0

-0.2

0.994
-0.4

-0.6
0.978
-0.8
0.95 0.9 0.82 0.7 0.52 0.3

-3 -2.5 -2 -1.5 -1 -0.5 0


Real Axis

Con los últimos puntos seleccionados se comprueba lo hallado analíticamente,


pero solo para valores positivos de K, ya que el comando rlocus solo evalúa el
sistema en estos valores.

1
ii) C (s)  k G ( s)  H ( s)  1
s( s  3s  18)
2

C ( s)G( s)
F ( s) 
1  C ( s)G( s) H ( s)
k
F ( s) 
s 3  3s 2  18s  k

s3 1 18
s2 3 k
54  k
s1 0
3
s0 k 0

54  k
 0  k 0  54  k  0  k  0
3
54  k  k  0  k  54  k  0
54  k  0  k  54
 k  [0,54]
1
P( s) 
La función a analizar es:

s s  3s  18
2

>> [K,polos]=rlocfind(P)
Select a point in the graphics window
selected_point =
1.7820 + 6.1180i
K=
265.1732
polos =
-6.5028
1.7514 + 6.1409i
1.7514 - 6.1409i
>> [K,polos]=rlocfind(P)
Select a point in the graphics window
selected_point =
-0.0379 + 0.0311i

K=
0.8766

polos =
-1.4755 + 3.9596i
-1.4755 - 3.9596i
-0.0491
>> [K,polos]=rlocfind(P)
Select a point in the graphics window
selected_point =
-9.0237 - 0.0311i
K=
652.9275
polos =
-9.0237
3.0119 + 7.9552i
3.0119 - 7.9552i
Root Locus
10
0.68 0.56 0.42 0.28 0.14
0.8
8

6
0.91

4
0.975
2
Imaginary Axis

12 10 8 6 4 2
0

-2
0.975
-4

0.91
-6

-8
0.8
0.68 0.56 0.42 0.28 0.14
-10
-12 -10 -8 -6 -4 -2 0 2 4
Real Axis

Lo que comprueba los valores analíticos encontrados.


k s 1
iii) C (s)  G (s)  H ( s)  1
s s ( s  4)
C ( s)G( s)
F ( s) 
1  C ( s)G( s) H ( s)

k ( s  1)
F (s) 
s  4s 2  ks  k
3

s3 1 k
2
s 4 k
1 3k
s 0
4
s0 k 0

k
 0  k 0
2
k 0  k 0  k  [0, 
s 1
La función es: P( s) 
s s  4
2

>> [K,polos]=rlocfind(P)

Select a point in the graphics window

selected_point =
-0.6398 + 1.2631i

K=
5.4790
polos =
-2.7277
-0.6361 + 1.2665i
-0.6361 - 1.2665i
>> [K,polos]=rlocfind(P)
Select a point in the graphics window
selected_point =
-3.1991 - 0.0249i

K=
3.7292
polos =
-3.198
-0.4007 + 1.0027i
-0.4007 - 1.0027i
Root Locus

0.64 0.5 0.38 0.28 0.17 0.08 3.5


3
3
0.8 2.5
2
2
1.5
0.94
1
1
0.5
Imaginary Axis

0.5
-1
1
0.94
1.5
-2
2

0.8 2.5
-3
3

0.64 0.5 0.38 0.28 0.17 0.08 3.5


-4
4
-3.5 -3 -2.5 -2 -1.5 -1 -0.5 0
Real Axis

k 1 1
i) C (s)  G ( s)  H (s) 
s s2 s4
C ( s)G( s)
F ( s) 
1  C ( s)G( s) H ( s)
k ( s  4)
F (s)  3
s  6 s 2  8s  k

s3 1 8
s2 6 k
48  k
s1 0
6
s0 k 0

48  k
0  k 0
6
48  k  0  k 0
48  k  k  0
k  48  k  0
 k  [0,48]
>> P=tf(1,[1 6 8 0])

Transfer function:
1
-----------------
s^3 + 6 s^2 + 8 s

>> rlocus(P);grid
>> [K,polos]=rlocfind(P)
Select a point in the graphics window
selected_point =
-0.0379 - 0.0745i

K=
0.6507

polos =
-4.0768
-1.8362
-0.0869

>> [K,polos]=rlocfind(P)
Select a point in the graphics window

selected_point =
-9.9716 - 0.0248i

K=
474.6813

polos =
-9.9716
1.9858 + 6.6076i
1.9858 - 6.6076i

>> [K,polos]=rlocfind(P)
Select a point in the graphics window

selected_point =
-5.0427 - 0.0248i

K=
16.0028

polos =
-5.0429
-0.4786 + 1.7159i
-0.4786 - 1.7159i

Root Locus
8
0.76 0.64 0.5 0.34 0.16
0.86
6

4 0.94

2 0.985
Imaginary Axis

12 10 8 6 4 2
0

-2 0.985

-4 0.94

-6
0.86
0.76 0.64 0.5 0.34 0.16
-8
-12 -10 -8 -6 -4 -2 0 2 4
Real Axis
5. A partir de la ecuación característica ф(s), determine para que valor del
sistema es estable (use criterio de R-H)

i)  (s)  s 4  s 3  3s 2  2s  k

Usando el criterio R-H tenemos:


s4 1 3 k

s3 1 2 0 Todos los valores de la primera columna de


resultados
2
s 1 k 0 deben ser positivos.
1
s 2k 0 0
0
s k 0 0

2k  0 k  2 y k 0 entonces

0k 2 En este rango el “sistema será estable”

Haciendo en matlab: poniendo a k=1

>> g=tf([1],[1 1 3 2 1])

Transfer function:
1
---------------------------
s^4 + s^3 + 3 s^2 + 2 s + 1

>> rlocus(g)
Root Locus
4
4
0.72 0.58 0.44 0.3 0.14 3.5
3
3
2.5
0.84
2
2
0.92 1.5
1
1
0.98
Imaginary Axis

0.5

0.98 0.5
-1
1
0.92 1.5
-2
2
0.84
2.5
-3
3

0.72 0.58 0.44 0.3 0.14 3.5


-4
-4 -3 -2 -1 40 1 2 3
Real Axis

ii)  (s)  s 5  s 4  2s 3  s 2  s  k

Usando el criterio R-H tenemos:

s5 1 2 1

s4 1 1 k

s3 1 1 k 0 Todos los valores de la primera columna deben ser

s2 k k 0 positivos

s1 k 0 0

s0 k 0 0

k 0 k  0  k  0 entonces

k 0 para este valor el “sistema es estable”


Haciendo en matlab para k=0 tenemos:

>> g=tf([1],[1 1 2 1 1 0])

Transfer function:
1
---------------------------
s^5 + s^4 + 2 s^3 + s^2 + s

>> rlocus(g)

Root Locus
3
0.81 0.7 0.56 0.38 0.2

2 0.89

0.95
1
0.988
Imaginary Axis

4 3.5 3 2.5 2 1.5 1 0.5


0

0.988
-1
0.95

-2 0.89

0.81 0.7 0.56 0.38 0.2


-3
-4 -3 -2 -1 0 1 2 3
Real Axis

6. Un motor DC está representado por la función de transferencia (1) donde (s ) es


la velocidad del motor y Vi(s ) es el voltaje de entrada. Diseñe un controlador
proporcional para que el sistema en lazo cerrado tenga un coeficiente de
amortiguamiento   0.707 .
Determine el error en régimen permanente.

( s) 2
 (1)
Vi( s) ( s  10)( s  2)
( s) 2
G(s)  
Vi( s) ( s  10)( s  2)
G( s)G1( s)
W ( s) 
1  G( s)G1( s)
H ( s)  ?
H ( s)  k
2
*k
( s  10)( s  2)
W ( s) 
2
1 *k
( s  10)( s  2)
2k
W ( s) 
( s  10)( s  2)  2k
2k
W ( s)  2
s  12 s  20  2k
2k
W ( s)  2
s  12s  20  2k

entonces si s 2  12s  20  2k  s 2  2s   2

  0.707
12  2
12  2 * 0.707 *
12

1.414
  8.4865629420084865629420084865629
  8.49

20  2k   2
20  2k  8.492
20  2k  72.0801
2k  52.0801
k  26.04005
k  26
52
Entonces W ( s ) 
s  12s  72
2
7. La función transferencia del péndulo invertido está expresado por (2),
donde  (s ) es el ángulo de inclinación de la barra y T (s) representa el torque
aplicado por un motor en base del péndulo. Haga el lugar de raíces
suponiendo un controlador proporcional Gc( s )  Kp . ¿Qué tipo de repuesta
en lazo cerrado espera para los valores de Kp ?

 ( s) 2
 (2)
T ( s) s 22

 ( s) 2
G( s)   G1( s )  Gc( s )  Kp
T ( s) s 22

Entonces la función en lazo cerrado será:

2
*k
H (s) 
G ( s)Gc( s)
 H (s)  s  2 2
 H (s)  2
2k
 H (s)  2
2k
1  G ( s)Gc( s) 1 2
2
*k s  2  2k s  2(k  1)
s 2

 (s)  s 2  2(k  1)

s2 1 0

s1 2(k  1) 0

s0 0 0

Entonces 2(k  1)  0  k  1 la “señal será estable”

En matlab tendremos:

>> g=tf([4],[1 0 2])

Transfer function:
4
-------
s^2 + 2
>> rlocus(g)
Root Locus
3
3
0.27 0.19 0.12 0.06
2.5
0.36
2
2
0.5 1.5

0.66 1
1
0.5
Imaginary Axis

0.88

0.88 0.5
-1
0.66 1

0.5 1.5
-2
2
0.36
2.5
0.27 0.19 0.12 0.06
-3
-1 -0.8 -0.6 -0.4 -0.2 30 0.2 0.4 0.6 0.8 1
Real Axis

>> rlocfind(g)
Select a point in the graphics window

selected_point =

-0.5379 - 1.4068i

ans =

0.3862

Root Locus
3
3
0.27 0.19 0.12 0.06
2.5
0.36
2
2
0.5 1.5

0.66 1
1
0.5
Imaginary Axis

0.88

0.88 0.5
-1
0.66 1

0.5 1.5
-2
2
0.36
2.5
0.27 0.19 0.12 0.06
-3
-1 -0.8 -0.6 -0.4 -0.2 30 0.2 0.4 0.6 0.8 1
Real Axis
8. Considere el sistema en lazo directo:
10
G ( s) 
s 1
Obtenga la respuesta temporal del sistema en lazo cerrado (realimentación
negativa y unitaria), cuando este sujeto a cada una de las entradas
siguientes:

Creamos nuestra función de transferencia y el tiempo de simulacion:

>> G=tf([10],[1 1])

Transfer function:
10
-----
s+1

>> H=feedback(G,1)

Transfer function:
10
------
s + 11

>> t=[0:0.01:10];
i. r (t )  sen(t  30o )

>> lsim(H,sin(t+pi/6),t)
Linear Simulation Results
1

0.8

0.6

0.4

0.2
Amplitude

-0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7 8 9 10
Time (sec)

ii. r (t )  2sen(2t  45 o )
>> lsim(H,2*sin(2*t-pi/4),t)
Linear Simulation Results
2

1.5

0.5
Amplitude

-0.5

-1

-1.5

-2
0 1 2 3 4 5 6 7 8 9 10
Time (sec)

iii. r (t )  sen(t  30 o )  2 cos(2t  45 o )

>> lsim(H,sin(t+pi/6)+cos(2*t-pi/4),t)
Linear Simulation Results
2

1.5

0.5
Amplitude

-0.5

-1

-1.5

-2
0 1 2 3 4 5 6 7 8 9 10
Time (sec)

9. Considere un sistema en lazo cerrado con la siguiente función de


transferencia en lazo abierto.
10k ( s  0.5)
G( s) H ( s) 
s ( s  2)(s  10)
2

Grafique las trazas polares de G ( s ) H ( s ) con valores de k  1 y k  10 . Aplique


el criterio de Nyquist y determine la estabilidad del sistema con estos
valores.

10( s  0.5)
* Si K=1 G( s) H ( S ) 
s ( s  2)( s  10)
2

En matlab hallando la respuesta en nyquist será:

>> gh=tf([10 5],[1 12 20 0 0])

Transfer function:
10 s + 5
---------------------
s^4 + 12 s^3 + 20 s^2

>> nyquist(gh)
>> grid
>> axis([-10 10 -5 5])

Nyquist Diagram
4
0 dB

2 dB -2 dB
2

4 dB -4 dB
1
6 dB -6 dB
Imaginary Axis

10 dB -10 dB
0

-1

-2

-3

-4
-10 -5 0 5
Real Axis
La función en lazo cerrado será luego de hacer la operación:
G ( s) H ( s)
F (s) 
1  G ( s) H ( s)

Y usando el criterio R-H

10k ( s  0.5)
F (s) 
s  12s 3  20s 2  10ks  5k
4

 (s)  s 4  12s 3  20s 2  10ks  5k

s4 1 20 5

s3 12 10 0

s2 19.1667 5 0

s1 6.8696 0 0

s0 5 0 0

Por el criterio de R-H el sistema es estable

100( s  0.5)
* Si K=10 G( s) H ( S ) 
s ( s  2)( s  10)
2

En matlab hallando la respuesta en nyquist será:

>> gh=tf([100 50],[1 12 20 0 0])

Transfer function:
100 s + 50
---------------------
s^4 + 12 s^3 + 20 s^2

>> nyquist(gh)
>> grid
>> axis([-10 10 -5 5])
Nyquist Diagram
4
0 dB

2 dB -2 dB
2

4 dB -4 dB
1
6 dB -6 dB
Imaginary Axis

10 dB -10 dB
0

-1

-2

-3

-4
-10 -5 0 5
Real Axis

La función en lazo cerrado será luego de hacer la operación:


G ( s) H ( s)
F (s) 
1  G ( s) H ( s)

Y usando el criterio R-H

100( s  0.5)
F (s) 
s  12s 3  20s 2  100s  50
4

 (s)  s 4  12s 3  20s 2  100s  50

s4 1 20 50

s3 12 100 0

s2 11.6667 50 0

s1 48.5716 0 0

s0 50 0 0

Por el criterio de R-H el sistema es estable

También podría gustarte