matlab para sistemas de control 1 - 01

Upload: tripl3s

Post on 08-Apr-2018

222 views

Category:

Documents


0 download

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