Post on 25-Jul-2015
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