53334256 Matlab Para Sistemas de Control 1 01

14
Doc. Triple_X Página 1 Sistemas de Control I, ETN 702 MatLab: Análisis de sistemas de orden “n”, Reducción de Diagrama Bloques y algo mas… Introducción. El presente documento es una introducción para la resolución, bajo el entorno MatLab 7.8, de problemas concernientes a la cátedra de Sistemas de Control I, de la Carrera de Ingeniería Electrónica, de la Facultad de Ingeniería Tecnológica. Se presentan las principales sentencias para el análisis en el tiempo de sistemas de orden ‘n’, reducción de diagrama de bloques y resolución de problemas clásicos con respecto de la cátedra. El autor… Índice 1. Como introducir una FT al entorno MatLab 2. Análisis de la respuesta transitoria 3. Reducción de diagrama de bloques 4. Miscelánea 1. Como introducir una F.T. al entorno MatLab. Consideremos la función de transferencia ‘FT’ de orden tres sys1… Método 1. Introducimos el numerador ‘num1’ y denominador ‘den1’ como vectores, los componentes del vector son los coeficientes del los polinomios del numerador y denominador respectivamente de la FT sys1>> num1 = [1 1]; den1 = [0.125 0.75 1.5 1]; >> sys1 = tf(num1,den1) % la sentencia ‘ft’ viene de transfer function o función de transferencia Transfer function: s + 1 -------------------------------- 0.125 s^3 + 0.75 s^2 + 1.5 s + 1

Transcript of 53334256 Matlab Para Sistemas de Control 1 01

Doc. Triple_X Página 1

Sistemas de Control I, ETN – 702

MatLab: Análisis de sistemas de orden “n”, Reducción de Diagrama Bloques y algo mas…

Introducción.

El presente documento es una introducción para la resolución, bajo el entorno MatLab 7.8, de

problemas concernientes a la cátedra de Sistemas de Control I, de la Carrera de Ingeniería

Electrónica, de la Facultad de Ingeniería Tecnológica. Se presentan las principales sentencias para

el análisis en el tiempo de sistemas de orden ‘n’, reducción de diagrama de bloques y resolución

de problemas clásicos con respecto de la cátedra. El autor…

Índice

1. Como introducir una FT al entorno MatLab

2. Análisis de la respuesta transitoria

3. Reducción de diagrama de bloques

4. Miscelánea

1. Como introducir una F.T. al entorno MatLab.

Consideremos la función de transferencia ‘FT’ de orden tres sys1…

Método 1. Introducimos el numerador ‘num1’ y denominador ‘den1’ como vectores, los

componentes del vector son los coeficientes del los polinomios del numerador y denominador

respectivamente de la FT sys1…

>> num1 = [1 1]; den1 = [0.125 0.75 1.5 1];

>> sys1 = tf(num1,den1) % la sentencia ‘ft’ viene de transfer function o función de transferencia

Transfer function:

s + 1

--------------------------------

0.125 s^3 + 0.75 s^2 + 1.5 s + 1

Doc. Triple_X Página 2

Método 2. tb’ podemos introducir en forma directa los coeficientes de sys1 como vectores

separando por una coma el numerador del denominador dentro la sentencia ‘tf’ de la forma…

>> sys1 = tf([1 1],[0.125 0.75 1.5 1])

Transfer function:

s + 1

--------------------------------

0.125 s^3 + 0.75 s^2 + 1.5 s + 1

Suele pasar que una FT pueda estar expresada respecto a sus polos y zeros del sistema como:

Método 3. Si una FT viene representa según sus zeros y polos debemos introducir los vectores: ‘z’

para los zeros, vector ‘p’ para los polos, y una constante ‘k’ que es la ganancia del sistema

>> z = [-2 3]; p = [-2-5i -2+5i]; k = 2; %note los signos de los componentes de los vectores ‘z’ y ’p’

>> sys2 = zpk(z,p,k)

Zero/pole/gain:

2 (s+2) (s-3)

---------------

(s^2 + 4s + 29)

Doc. Triple_X Página 3

2. Análisis de la respuesta transitoria

2.1 La sentencia ‘stepinfo’ retorna las principales características para FT’s de orden “n”

sometidas a una entrada escalón unitario o función paso, su sintaxis es….

>> stepinfo(sys1)

ans =

RiseTime: 0.8876

SettlingTime: 3.2703

SettlingMin: 0.9190

Overshoot: 5.4934

Undershoot: 0

Peak: 1.0549

PeakTime: 2.0134

Donde:

a. RiseTime: tiempo de riso ‘tr’ o tiempo de levantamiento (tiempo que tarda el sistema

en pasar del 10 al 90% de su valor final)

b. SettlingTime: tiempo de asentamiento o establecimiento ‘ts’

c. SettlingMin:

d. SettlingMax:

e. Overshoot: máximo sobrepico positivo ‘Mp’

f. Undershoot: máximo sobrepico negativo

g. Peak: amplitud máxima de la respuesta a un escalón unitario

h. PeakTime: tiempo pico ‘tp’

tb’ aplicamos un ‘stepinfo’ a sys2

>> stepinfo(sys2)

ans =

RiseTime: 0.1830 SettlingTime: 1.9155 SettlingMin: -1.3635 SettlingMax: -0.1440 Overshoot: 229.5060 Undershoot: 483.3333 Peak: 2 PeakTime: 0

Doc. Triple_X Página 4

2.2 Los polos de un sistema nos dan una clara idea sobre la estabilidad del mismo, la

sentencia ‘pole’ a encontrarlos nos ayuda…

>> pole(sys1)

ans =

-2.0000

-2.0000 + 0.0000i

-2.0000 - 0.0000i

>> pole(sys2)

ans =

-2.0000 + 5.0000i

-2.0000 - 5.0000i

2.3 Graficar los polos “x” y zeros “o” nos ayudara a visualizar la ubicación de los mismos en

el plano complejo para ello usamos la sentencia ‘rlocus’…

>> rlocus(sys1); grid on

-2.5 -2 -1.5 -1 -0.5 0 0.5-6

-4

-2

0

2

4

6

0.040.090.140.20.280.4

0.56

0.8

0.040.090.140.20.280.4

0.56

0.8

1

2

3

4

5

6

1

2

3

4

5

6

Root Locus

Real Axis

Imagin

ary A

xis

Doc. Triple_X Página 5

>> rlocus(sys2); grid on

2.4 ‘step’ es la sentencia que graficara la respuesta del sistema ante una entrada paso, una

vez obtenida la grafica hacemos un click derecho en la grafica que proporcionara una

ventana donde tenemos las principales características de la respuesta del sistema, las

seleccionamos para verlas en la grafica…

>> step(sys1)

-3 -2 -1 0 1 2 3 4-6

-4

-2

0

2

4

6

0.44

0.56

0.7

0.84

0.95

0.10.20.320.44

0.56

0.7

0.84

0.95

1

2

3

4

5

6

1

2

3

4

5

6

System: sys2

Gain: 0

Pole: -2 + 5i

Damping: 0.371

Overshoot (%): 28.5

Frequency (rad/sec): 5.39

System: sys2

Gain: 0.00113

Pole: -1.99 - 4.99i

Damping: 0.371

Overshoot (%): 28.5

Frequency (rad/sec): 5.38

System: sys2

Gain: 349

Pole: -1.99

Damping: 1

Overshoot (%): 0

Frequency (rad/sec): 1.99

System: sys2

Gain: 2.28

Pole: 0.0337 + 0.539i

Damping: -0.0623

Overshoot (%): 122

Frequency (rad/sec): 0.54

0.10.20.32

Root Locus

Real Axis

Imagin

ary

Axis

Step Response

Time (sec)

Am

plit

ude

0 1 2 3 4 5 60

0.2

0.4

0.6

0.8

1

1.2

1.4

System: sys1

Peak amplitude: 1.05

Overshoot (%): 5.49

At time (sec): 2.01 System: sys1

Settling Time (sec): 3.27

System: sys1

Rise Time (sec): 0.888

Doc. Triple_X Página 6

tb’ podemos realizar dos graficas a la vez….

>> step(sys1,sys2) % trazo azul ‘sys1’ –-> trazo verde (sys2)

2.5 Para verificar la estabilidad de un sistema usamos ‘isstable’ que retorna un “1” si el

sistema es estable, retorna un “0” si no lo es…

>> isstable(sys1)

ans =

1

>> isstable(sys2)

ans =

1

Step Response

Time (sec)

Am

plit

ude

0 1 2 3 4 5 6-1.5

-1

-0.5

0

0.5

1

1.5

2

System: sys1

Peak amplitude: 1.05

Overshoot (%): 5.49

At time (sec): 2.01

System: sys2

Settling Time (sec): 1.92

sys1

sys2

Doc. Triple_X Página 7

3. Reducción de diagrama de bloques

3.1 Bloques en serie, para evaluar dos bloques en serie se emplea la sentencia ‘series’…

sys1 sys2u y

>> sys3 = series(sys1,sys2)

Zero/pole/gain:

16 (s+2) (s+1) (s-3)

-----------------------

(s+2)^3 (s^2 + 4s + 29)

Observamos que la FT de ‘sys3’ esta expresado en términos ‘zpk’ podemos pasar esta notación a

una ‘ft’ conocida con…

>> sys4 = tf(sys3)

Transfer function:

16 s^3 - 112 s - 96

---------------------------------------------

s^5 + 10 s^4 + 65 s^3 + 230 s^2 + 380 s + 232

3.2 ‘parallel’ es la sentencia para bloques en paralelo (suma de bloques)

sys1

sys2

u y+

-

>> sys5 = parallel(sys1,-sys2) % observe el signo de cada bloque

Zero/pole/gain:

-2 (s-3.953) (s+4.836) (s+1.034) (s^2 + 3.083s + 8.297)

-------------------------------------------------------

(s+2)^3 (s^2 + 4s + 29)

Doc. Triple_X Página 8

>> sys6 = tf(sys5)

Transfer function:

-2 s^5 - 10 s^4 + 8 s^3 + 120 s^2 + 424 s + 328

-----------------------------------------------

s^5 + 10 s^4 + 65 s^3 + 230 s^2 + 380 s + 232

3.3 Para sistemas con realimentación o en lazo cerrado tenemos la sentencia ‘feedback’…

sys1u y+

-

H

>> H = 1; % realimentación unitaria

>> sys7 = feedback(sys1,H)

Transfer function:

s + 1

--------------------------------

0.125 s^3 + 0.75 s^2 + 2.5 s + 2

Para una realimentación de orden 1 MatLab retorna…

>> H = tf(1,[1 0]); % sensor de orden uno

>> sys8 = feedback(sys1,H)

Transfer function:

s^2 + s

----------------------------------------

0.125 s^4 + 0.75 s^3 + 1.5 s^2 + 2 s + 1

Doc. Triple_X Página 9

Ejemplo de reducción de diagrama de bloques:

Considere el siguiente diagrama de bloques

Cu y+

-

G

S

F

Donde:

Introducimos las FT’s de cada bloque al entorno MatLab.

>> F = tf(1,[1 1]); G = tf(100,[1 5 100]); C = tf(20*[1 1 60],[1 40 400 0]); S = tf(10,[1 10]);

>> T = F*feedback(C*G,S)

Transfer function:

2000 s^3 + 22000 s^2 + 140000 s + 1.2e006

------------------------------------------------------------------------------------

s^7 + 56 s^6 + 1205 s^5 + 14150 s^4 + 133000 s^3 + 540000 s^2 + 1.62e006 s + 1.2e006

Como resultado de la reducción de diagrama de bloques tenemos el sistema ‘T’ de orden siete,

veamos si el sistema es estable o no…

>> isstable(T)

ans =

1

Doc. Triple_X Página 10

Establezcamos sus principales características…

>> stepinfo(T)

ans =

RiseTime: 2.1558 SettlingTime: 4.1129 SettlingMin: 0.9015 SettlingMax: 0.9987 Overshoot: 0 Undershoot: 0 Peak: 0.9987 PeakTime: 6.8058 Graficamos su respuesta ante una entrada escalón unitaria… >> step(T)

>> grid

0 1 2 3 4 5 60

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1Step Response

Time (sec)

Am

plit

ude

Doc. Triple_X Página 11

4. Miscelánea.

En esta parte realizaremos gráficos simultáneos como ser, diagrama de ‘bode’, respuesta de

un sistema ante una función impulso ‘impulse’, diagrama de ‘nyquist’ y otros…

Empecemos definiendo un sistema de segundo orden con ξ = 0.42 y ωn = 11…

>> xy = 0.42; wn = 11;

>> sysm = tf(wn*wn,[1 2*xy*wn wn*wn])

Transfer function:

121

------------------

s^2 + 9.24 s + 121

Para graficar las respuesta de ‘sysm’ ante una entrada impulso usamos la sentencia

‘impulse’…

>> impulse(sysm)

Impulse Response

Time (sec)

Am

plit

ude

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6-2

-1

0

1

2

3

4

5

6

7

System: sysm

Peak amplitude: 6.5

At time (sec): 0.115

Doc. Triple_X Página 12

tb’ podemos realizar el diagrama de bode de ‘sysm’…

>> figure; bode(sysm)

Pero tenemos como objetivo realizar gráficos simultáneos entonces veámoslos…

>> ltiview({'step';'impulse';'bode';'nyquist'},sysm)

Bode Diagram

Frequency (rad/sec)

-80

-70

-60

-50

-40

-30

-20

-10

0

10

System: sysm

Peak gain (dB): 2.36

At frequency (rad/sec): 8.85M

agnitude (

dB

)

10-1

100

101

102

103

-180

-135

-90

-45

0

System: sysm

Phase Margin (deg): 72.9

Delay Margin (sec): 0.102

At frequency (rad/sec): 12.5

Closed Loop Stable? Yes

Phase (

deg)

Doc. Triple_X Página 13

En la grafica anterior podemos observar cuatro graficas para evaluar el sistema ‘sysm’:

1. La grafica uno es la respuesta de ‘sysm’ ante una función paso

2. El grafico dos es la respuesta de ‘sysm’ ante una función impulso que se define como:

3. La tercera grafica presenta el diagrama de bode de ‘sysm’

4. La cuarta grafica es el diagrama de nyquist para ‘sysm’

Ahora veremos cómo responde ‘sysm’ ante función cuadrada…

>> [u2,t2] = gensig('square',8,20,0.01);

>> lsim(sysm,u2,t2)

tb’ podemos generar una función senoidal…

>> [u2,t2] = gensig('sin',4,10,0.1);

>> lsim(sysm,u2,t2)

Linear Simulation Results

Time (sec)

Am

plit

ude

0 2 4 6 8 10 12 14 16 18 20-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

System: sysm

Peak amplitude: 1.23

At time (sec): 12.3

Doc. Triple_X Página 14

hagamos un zoom al estado transitorio de ‘sysm’…

Observamos que ‘sysm’ en su estado transitorio no se aproxima a la función de entrada

Linear Simulation Results

Time (sec)

Am

plit

ude

0 1 2 3 4 5 6 7 8 9 10-1.5

-1

-0.5

0

0.5

1

1.5

System: sysm

Peak amplitude: 1.01

At time (sec): 1.1

Input: In(1)

Peak amplitude: 1

At time (sec): 9

Linear Simulation Results

Time (sec)

Am

plit

ude

0 0.5 1 1.5 2 2.5

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4