matlab para sistemas de control 1 - 01
TRANSCRIPT
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
1/14
Doc. Triple_X Pgina 1
Sistemas de Control I, ETN 702
MatLab:Anlisis de sistemas de orden n, Reduccin de Diagrama Bloques y algo mas
Introduccin.
El presente documento es una introduccin para la resolucin, bajo el entorno MatLab 7.8, de
problemas concernientes a la ctedra de Sistemas de Control I, de la Carrera de Ingeniera
Electrnica, de la Facultad de Ingeniera Tecnolgica. Se presentan las principales sentencias para
el anlisis en el tiempo de sistemas de orden n, reduccin de diagrama de bloques y resolucin
de problemas clsicos con respecto de la ctedra. El autor
ndice
1. Como introducir una FT al entorno MatLab
2. Anlisis de la respuesta transitoria
3. Reduccin de diagrama de bloques
4. Miscelnea
1. Como introducir una F.T. al entorno MatLab.Consideremos la funcin de transferencia FTde orden tres sys1
Mtodo 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 funcin de transferencia
Transfer function:
s + 1
--------------------------------
0.125 s^3 + 0.75 s^2 + 1.5 s + 1
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
2/14
Doc. Triple_X Pgina 2
Mtodo 2. tb podemos introducir en forma directa los coeficientes de sys1 como vectores
separando por una coma el numerador del denominador dentro la sentencia tfde 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:
Mtodo 3. Si una FT viene representa segn 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)
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
3/14
Doc. Triple_X Pgina 3
2. Anlisis de la respuesta transitoria2.1La sentencia stepinfo retorna las principales caractersticas para FTs de orden n
sometidas a una entrada escaln unitario o funcin 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 sistemaen pasar del 10 al 90% de su valor final)
b. SettlingTime: tiempo de asentamiento o establecimiento tsc. SettlingMin:d. SettlingMax:e. Overshoot: mximo sobrepico positivo Mpf. Undershoot: mximo sobrepico negativog. Peak: amplitud mxima de la respuesta a un escaln unitarioh. PeakTime: tiempopico tptb 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
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
4/14
Doc. Triple_X Pgina 4
2.2Los polos de un sistema nos dan una clara idea sobre la estabilidad del mismo, lasentencia 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.3Graficar los polos xyzeros onos ayudara a visualizar la ubicacin de los mismos enel 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
1
2
3
4
5
Root Locus
Real Axis
ImaginaryAxis
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
5/14
Doc. Triple_X Pgina 5
>> rlocus(sys2); grid on
2.4 step es la sentencia que graficara la respuesta del sistema ante una entrada paso, unavez obtenida la grafica hacemos un click derecho en la grafica que proporcionara una
ventana donde tenemos las principales caractersticas 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
1
2
3
4
5
System: sys2
Gain: 0
Pole: -2 + 5i
Damping: 0.371
Overshoot (%): 28.5Frequency (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
ImaginaryAxis
Step Response
Time (sec )
Amplitude
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
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
6/14
Doc. Triple_X Pgina 6
tb podemos realizar dos graficas a la vez.
>> step(sys1,sys2) % trazo azul sys1 -> trazo verde (sys2)
2.5Para verificar la estabilidad de un sistema usamos isstable que retorna un 1 si elsistema es estable, retorna un 0 si no lo es
>> isstable(sys1)
ans =
1
>> isstable(sys2)
ans =
1
Step Response
Time (sec )
Amplitude
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
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
7/14
Doc. Triple_X Pgina 7
3. Reduccin de diagrama de bloques3.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 trminos zpk podemos pasar esta notacin 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)
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
8/14
Doc. Triple_X Pgina 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 realimentacin o en lazo cerrado tenemos la sentencia feedback
sys1u y+
-
H
>> H = 1; % realimentacin unitaria
>> sys7 = feedback(sys1,H)
Transfer function:
s + 1
--------------------------------
0.125 s^3 + 0.75 s^2 + 2.5 s + 2
Para una realimentacin 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
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
9/14
Doc. Triple_X Pgina 9
Ejemplo de reduccin de diagrama de bloques:
Considere el siguiente diagrama de bloques
Cu y+
-
G
S
F
Donde:
Introducimos las FTs 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 reduccin de diagrama de bloques tenemos el sistema T de orden siete,
veamos si el sistema es estable o no
>> isstable(T)
ans =
1
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
10/14
Doc. Triple_X Pgina 10
Establezcamos sus principales caractersticas
>> stepinfo(T)
ans =
RiseTime: 2.1558
SettlingTime: 4.1129SettlingMin: 0.9015
SettlingMax: 0.9987
Overshoot: 0
Undershoot: 0
Peak: 0.9987
PeakTime: 6.8058
Graficamos su respuesta ante una entrada escaln 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)
Amplitude
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
11/14
Doc. Triple_X Pgina 11
4. Miscelnea.En esta parte realizaremos grficos simultneos como ser, diagrama de bode, respuesta de
un sistema ante una funcin 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 (s ec)
Amplitude
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
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
12/14
Doc. Triple_X Pgina 12
tb podemos realizar el diagrama de bode de sysm
>> figure; bode(sysm)
Pero tenemos como objetivo realizar grficos simultneos entonces vemoslos
>> 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.36At frequency (rad/sec): 8.85
Magnitude(dB)
10-1
100
101
102
103
-180
-135
-90
-45
0
System: sysm
Phase Margin (deg): 72.9Delay Margin (sec) : 0.102
At frequency (rad/sec): 12.5
Closed Loop Stable? Yes
Phase(deg)
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
13/14
Doc. Triple_X Pgina 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 funcin paso2. El grafico dos es la respuesta de sysm ante una funcin impulso que se define como:
3. La tercera grafica presenta el diagrama de bode de sysm4. La cuarta grafica es el diagrama de nyquist para sysm
Ahora veremos cmo responde sysm ante funcin cuadrada
>> [u2,t2] = gensig('square',8,20,0.01);
>> lsim(sysm,u2,t2)
tb podemos generar una funcin senoidal
>> [u2,t2] = gensig('sin',4,10,0.1);
>> lsim(sysm,u2,t2)
Linear Simulation Results
Time (sec )
Amplitude
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
-
8/7/2019 MATLAB PARA SISTEMAS DE CONTROL 1 - 01
14/14
Doc. Triple_X Pgina 14
hagamos un zoom al estado transitorio de sysm
Observamos que sysm en su estado transitorio no se aproxima a la funcin de entrada
Linear Simulation Results
Time (sec )
Amplitude
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 )
Amplitude
0 0.5 1 1.5 2 2.5
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4