Analisis a Respuesta Transitoria

24
Capítulo 5: Análisis de Respuesta Transitoria - 119 - Capítulo 5. ANÁLISIS DE RESPUESTA TRANSITORIA.

Transcript of Analisis a Respuesta Transitoria

Page 1: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 119 -

Capítulo 5.

ANÁLISIS DE RESPUESTA TRANSITORIA.

Page 2: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 120 -

5.1 INTRODUCCIÓN.

En este capítulo estudiaremos las carácterísticas de la respuesta transitoria de los

sistemas de control en lazo cerrado. La respuesta transitoria corresponde a aquella parte

de la respuesta debida a los ceros del sistema en lazo cerrado, y la respuesta en estado

permanente corresponde a aquella parte de la respuesta debida a los polos de la función

de entrada o excitación.

Con frecuencia, los sistemas de control en tiempo discreto son analizados

mediante entradas "estándar", como son entradas escalón, entradas rampa o entradas

senoidales. Esto es debido a que la respuesta del sistema a una entrada arbitraria puede

ser estimada a partir de su respuesta correspondiente a dichas entradas estándar. En este

capítulo, consideraremos la respuesta del sistema de control en tiempo discreto a

entradas en el dominio del tiempo, como son entradas escalón. [REF. 2].

5.2 ESPECIFICACIONES DE LA RESPUESTA TRANSITORIA.

En muchos casos prácticos, las características de diseño deseadas de los sistemas

de control, sean en tiempo continuo o en tiempo discreto, se especifican en términos de

cantidades en el dominio del tiempo. Esto ocurre debido a que los sistemas con

almacenamiento de energía no pueden responder de forma instantánea, y siempre que

estén sujetos a entradas o perturbaciones mostrarán algunas respuestas transitorias.

Con frecuencia, las características de diseño de un sistema de control están

especificadas en términos de su respuesta transitoria a una entrada escalón unitario, ya

que dicha entrada es fácil de generar, y sirve para proporcionar información útil de las

características de la respuesta transitoria. [REF. 2].

Page 3: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 121 -

La respuesta transitoria de un sistema a una entrada escalón unitario depende de

las condiciones iniciales. Por comodidad, al comparar respuestas transitorias de varios

sistemas, es frecuente utilizar la condición inicial estándar: el sistema está inicialmente

en reposo, y la salida y todas sus derivadas con respecto al tiempo son cero. Las

características de respuesta pueden entonces compararse sin dificultad.

La respuesta transitoria de un sistema de control, donde la señal de salida es en

tiempo continuo, a menudo muestra oscilaciones amortiguadas antes de llegar al estado

permanente. Igual que en el caso de los sistemas de control en tiempo continuo, la

respuesta transitoria de un sistema de control digital puede caracterizarse no sólo por el

factor de amortiguamiento relativo y la frecuencia natural amortiguada [REF. 1], sino

por los parámetros que se muestran a continuación.

Primero definimos expr, que es la función con la que vamos a trabajar ahora.

NOTA del autor: Aunque mostramos la expresión en función de kT , expr sólo está en

función de k. A los procedimientos que describiremos a continuación, se les pasará

como argumentos dicha expresión y su período de muestreo correspondiente. En este

caso concreto, T = 0.1. También se le pasará el parámetro max, que es el número

máximo de puntos que tiene la secuencia.

> restart: Digits:=5:

f := (.13157e-1*z^3+1.1407*z^2+.13822*z-.20587) /

((z-1)*(z^2+0.3505*z-0.2642)):

expr := simplify(evalf(invztrans(f, z, k))):

subs(k=k*T, expr);

+

− + .77922 ( )charfcn0 k T .00022383 e( )−1.0002 k T

+ .99992 .20778 ( )-1.( ) + 1. k T

e( )−.33088 k T

Page 4: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 122 -

Y ahora la pintamos, teniendo en cuenta el período de muestreo:

> plot([seq([k/10, subs(k=k/10,expr)], k=0..20)], style=point,

xtickmarks=10);

5.2.1 Tiempo de retardo

El tiempo de retardo es el tiempo que tarda la respuesta en alcanzar o superar por

primera vez un valor mayor o igual que la mitad del valor final. [REF. 1].

Ejemplo:

Se define el intervalo de retardo kd como el índice del primer elemento de la

secuencia de salida con valor mayor o igual a la mitad del valor final de ésta. En los

sistemas discretos de control la salida es una respuesta temporal, por lo que el tiempo de

retardo dt se define como:

El procedimiento kd recibe como parámetro la secuencia de puntos de la salida y

calcula el intevalo de retardo kd . El procedimiento td calcula el tiempo de retardo

correspondiente. Sus parámetros, como ya se ha indicado, son expr, el período de

muestreo T y el número max de puntos de la secuencia.

td

= td kd T

Page 5: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 123 -

> kd := proc(sec)

local i, f, mitad;

i := 1:

f := nops(sec):

mitad := sec[f, 2]/2;

while (sec[i,2] < mitad) do i := i+1:

od:

i-1:

end:

> td := proc(inv, T, max)

local sec, resp, i, invf;

invf := evalf(inv):

sec := []:

for i from 0 to max do

sec := [op(sec), [i, eval(subs(k=i, invf))]]:

od:

resp := kd(sec);

printf("\nTiempo de Retardo: td = %.3g\n", resp*T);

end:

> td(expr, 1/10, 20);

Tiempo de Retardo: td = .1

En el gráfico de la función (mostrado antes) puede comprobarse visualmente este

resultado.

Page 6: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 124 -

5.2.2 Tiempo de crecimiento o subida

El tiempo de crecimiento en sistemas continuos es el tiempo requerido para que

la respuesta crezca del 10% al 90%, del 5% al 95%, o del 0% al 100% de su valor final,

según la situación. Para sistemas de segundo orden subamortiguados, por lo general se

utiliza el tiempo de crecimiento de 0% a 100%. Para sistemas sobreamortiguados se

suele utilizar el tiempo de crecimiento de 10% a 90%. (Ver amortiguamiento).

[REF. 1].

Se define el intervalo de subida como el índice del primer elemento de la

secuencia de salida con valor mayor o igual al valor final de ésta. En los sistemas

discretos de control la salida es una respuesta temporal, por lo que el tiempo de

crecimiento o subida se define como [REF. 3]:

Ejemplo:

Se implementan los procedimientos kr y tr, que dada la secuencia de puntos de

una expresión, y un período de muestreo T, calculan el intervalo y el tiempo de subida.

> kr := proc(sec) local i, f, vfinal;

i := 1:

f := nops(sec):

vfinal := sec[f, 2];

while (sec[i,2] < vfinal) do i:=i+1:

od:

i-1:

end:

tr

kr

tr

= tr kr T

Page 7: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 125 -

> tr := proc(inv, T, max)

local resp, i, sec, invf;

invf := evalf(inv):

sec := []:

for i from 0 to max do

sec := [op(sec), [i, eval(subs(k=i, invf))]]:

od:

resp := kr(sec):

printf("\nTiempo de Crecimiento: tr = %.3g\n", resp*T);

end:

> tr(expr, 1/10, 20);

Tiempo de Crecimiento: tr = .1

En el gráfico de la función puede comprobarse visualmente este resultado.

5.2.3 Tiempo de pico

El tiempo de pico es el tiempo requerido por la respuesta para alcanzar el primer

pico del sobreimpulso. [REF. 1].

Se define el intervalo de pico como el índice correspondiente al elemento de

la secuencia de salida de valor máximo. [REF. 3]. Como se señaló anteriormente,

teniendo en cuenta la particularidad en los sistemas discretos de control, se puede

definir el tiempo de pico como el instante en que el valor de la secuencia es máximo:

tp

kp

= tp kp T

Page 8: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 126 -

Ejemplo:

Se implementa el procedimiento tp, que dada la secuencia de puntos de una

expresión, y un período de muestreo T, calcula el tiempo de pico. Para ello nos

ayudamos del procedimiento kp, que calcula el intervalo de pico.

> kp := proc(sec)

local i, max, ind, f;

f := nops(sec):

max := sec[1,2]:

ind := 1:

for i from 1 to f do

if (sec[i,2] > max)

then max := sec[i,2]:

ind := i:

fi:

od:

ind-1:

end:

> tp := proc(inv, T, max)

local resp, i, sec, invf;

invf := evalf(inv):

sec := []:

for i from 0 to max do

sec := [op(sec), [i, eval(subs(k=i, invf))]]:

od: (continúa)

Page 9: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 127 -

resp := kp(sec):

printf("\nTiempo de Pico: tp = %.3g\n", resp*T);

printf(" Valor maximo = %.3g\n", sec[resp+1, 2]);

end:

> tp(expr, 0.1, 20);

Tiempo de Pico: tp = .1

Valor maximo = 1.149

En el dibujo se aprecia que el primer pico se obtiene en = t k T con = k 1 y = T1

10

5.2.4 Sobreimpulso máximo

El máximo sobreimpulso es el valor pico máximo de la curva de respuesta,

medido a partir de la unidad. Si el valor final en estado permanente (estabilizado) de la

respuesta difiere de la unidad, entonces es común utilizar el sobreimpulso porcentual

máximo, definido por la relación:

Sobreimpulso máximo porcentual = − ( )x tp ( )x ∞

( )x ∞ 100%

Siendo ( )x k T la función de salida o respuesta.

El valor del máximo sobreimpulso (en porcentaje), indica en forma directa la

estabilidad relativa del sistema. [REF. 1].

Mp

Page 10: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 128 -

También se define el máximo sobreimpulso como el valor del elemento de la

secuencia de salida ( )x k T , de índice , [REF. 3], por lo que entonces se define el

máximo sobreimpulso como un valor relativo en tanto por ciento del valor final:

= Mp − ( )x kp ( )x ∞

( )x ∞ 100%

Ejemplo:

Se implementa el procedimiento Mp, que dada una expresión, y un período de

muestreo T, calcula el sobreimpulso máximo.

> Mp := proc(inv, T, max)

local x1, x2, resp, f, i, sec, invf;

invf := evalf(inv):

sec := []:

for i from 0 to max do

sec := [op(sec), [i, eval(subs(k=i, invf))]]:

od:

f := nops(sec):

x1 := sec[kp(sec)+1, 2]:

x2 := sec[f, 2]:

resp := (x1-x2)*100/x2:

printf("\nSobreimpulso Máximo Porcentual:");

printf(" Mp = %.3f%c\n", resp, "%");

printf(" Sube un %.3f%c sobre el ", resp, "%");

printf("valor final %.3g\n", x2);

printf(" Se puede apreciar en el dibujo.\n");

end:

kp

Page 11: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 129 -

> Mp(expr, 0.1, 20);

Sobreimpulso Máximo Porcentual: Mp = 14.961%

Sube un 14.961% sobre el valor final 1

Se puede apreciar en el dibujo.

5.2.5 Tiempo de establecimiento

El tiempo de establecimiento es el tiempo requerido por la curva de respuesta

para alcanzar y mantenerse dentro de determinado rango alrededor del valor final de un

tamaño especificado, en función de un porcentaje absoluto de valor final, por lo general

2% ó 5%. El tiempo de establecimiento está relacionado con la constante de tiempo de

mayor valor en el sistema de control. El criterio para la fijación del porcentaje de error a

usar depende de los objetivos de diseño del sistema en cuestión. [REF. 1]. En nuestro

ejemplo pasamos el porcentaje como parámetro del procedimiento, debiendo estar entre

2% y 5%.

Se define el intervalo de establecimiento como el índice del primer elemento

de la secuencia de salida a partir del cual ésta se mantiene en la banda del más/menos

p% del valor final [REF. 3], siendo p el parámetro que se le pasa al procedimiento.

Asimismo, puede definirse el tiempo de establecimiento como:

ts

ks

ts

= ts ks T

Page 12: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 130 -

Ejemplo:

> ks := proc(sec, p)

local i, x2, ref, f;

if (p<2) or (p>5)

then ERROR(`invalid porcentaje`, p)

fi:

f := nops(sec):

x2 := sec[f, 2]:

ref := x2*p/100:

i := 1:

while ( (abs(sec[i,2]-c2) > ref) and (i <= f) ) do

i:=i+1:

od:

if (i=22)

then ERROR(`invalid ks`, i-1)

fi:

i-1:

end:

Page 13: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 131 -

> ts := proc(inv, T, max, p)

local resp, valor, i, sec, invf;

invf := evalf(inv):

sec := []:

for i from 0 to max do

sec := [op(sec), [i, eval(subs(k=i, invf))]]:

od:

resp := ks(sec, p):

valor := resp*T:

printf("\nTiempo de Establecimiento:");

printf(" ts = %.3g\n", valor);

printf(" Tarda %d iteraciones en ", resp);

printf("alcanzar la banda del\n");

printf(" +/- %.3g%c del valor final.\n", p, "%");

end:

> ts(expr, 1/10, 20, 4.8);

Tiempo de Establecimiento: ts = .5

Tarda 5 iteraciones en alcanzar la banda del

+/- 4.8% del valor final.

Page 14: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 132 -

Las especificaciones en el dominio del tiempo que se acaban de dar son muy

importantes, ya que la mayor parte de los sistemas de control son sistemas en el

dominio del tiempo: deben mostrar respuestas aceptables en el tiempo. Lo que significa

que el sistema de control bajo diseño deberá ser modificado hasta que la respuesta

transitoria sea satisfactoria.

No todas las especificaciones se aplican necesariamente a un caso concreto. Por

ejemplo, para un sistema sobreamortiguado, el tiempo de pico y el sobreimpulso

máximo no son aplicables. [REF. 2].

Page 15: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 133 -

5.3 EJERCICIOS.

Para poder realizar los ejercicios, es imprescindible haber ejecutado los

procedimientos de los apartados anteriores. Por eso aquí no utilizamos 'restart'.

5.3.1.- Análisis de respuesta transitoria de la siguiente expresión:

exp1 :=

para T = 1/5. Implementar primero un procedimiento que se encargue de

realizar todo el análisis de respuesta transitoria.

Primero se realiza el procedimiento que calcula los tiempos de retardo,

crecimiento, pico y establecimiento, así como el sobreimpulso máximo porcentual.

> AnaliTrans := proc(expr, T, max, p);

td(expr, T, max);

tr(expr, T, max);

tp(expr, T, max);

Mp(expr, T, max);

ts(expr, T, max, p);

end:

invztrans , ,

+ − − .050914 z3 1.2230 z2 .03125 z .15655

( ) − z 1 ( ) + − z2 .3505 z .2642z k

Page 16: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 134 -

Se pinta la función discreta para el período de muestreo T = 1/5

> exp1 := invztrans((.50914e-1*z^3+1.2230*z^2-.3125e-1*z-.15655) /

((z-1)*(z^2+0.3505*z-0.2642)), z, k):

plot([seq([1*k/5, subs(k=1*k/5, exp1)], k=0..20)], style=point,

xtickmarks=10);

Análisis de respuesta transitoria.

> AnaliTrans(exp1, 1/5, 20, 5);

Tiempo de Retardo: td = .2

Tiempo de Crecimiento: tr = .2

Tiempo de Pico: tp = .2

Valor maximo = 1.256

Sobreimpulso Máximo Porcentual: Mp = 25.687%

Sube un 25.687% sobre el valor final .999

Se puede apreciar en el dibujo.

Tiempo de Establecimiento: ts = 1.2

Tarda 6 iteraciones en alcanzar la banda del

+/- 5% del valor final.

Page 17: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 135 -

5.3.2.- Análisis de respuesta transitoria de la siguiente función:

para T = 3/5

Primero la dibujamos, para que se aprecie que es una función que nunca llega a

1 (se queda por encima de dicho valor).

> fun2 := 1-exp(-7/10*t)+3*t^2*exp(-7/10*t):

plot({fun2, 1, 4}, t=0..15, color=[wheat, wheat, red]);

Ahora la convertimos en una expresión discreta:

> exp2 := invztrans(ztrans(fun2, t, z), z, k):

simplify(subs(k=k*T, exp2));

plot([seq([3*k/5, subs(k=3*k/5, exp2)], k=0..20)], style=point);

− + 1 e

7 t10

3 t2 e

− +

710

t

− + 1 e

710k T

3 e

710k T

k2 T2

Page 18: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 136 -

Análisis de respuesta transitoria. Nótese que, a diferencia del ejercicio anterior,

en esta ocasión el tiempo de pico no coincide con los de retardo y crecimiento.

> AnaliTrans(evalf(exp2), 3/5, 20, 5);

Tiempo de Retardo: td = .6

Tiempo de Crecimiento: tr = .6

Tiempo de Pico: tp = 1.8

Valor maximo = 4.184

Sobreimpulso Máximo Porcentual: Mp = 317.960%

Sube un 317.960% sobre el valor final 1.001

Se puede apreciar en el dibujo.

Tiempo de Establecimiento: ts = 8.4

Tarda 14 iteraciones en alcanzar la banda del

+/- 5% del valor final.

5.3.3.- Análisis de respuesta transitoria de la siguiente expresión:

para T = 2/5

> fun3 := (-1+10.15*t-6.44*t^2)*exp(-t)+1:

plot({fun3, 1}, t=0..10, color=[wheat, red]);

+ ( )− + − 1 10.15 t 6.44 t2 e( )− t

1

Page 19: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 137 -

Esta función, tras estar por encima de uno, vuelve a decrecer, llegando a tener

valor negativo, y luego vuelve a subir, llegando al uno por debajo. Discretizamos y

definimos la secuencia de puntos correspondiente.

> exp3 := invztrans(ztrans(fun3, t, z), z, k):

subs(k=k*T, exp3);

plot([seq([2*k/5, subs(k=2*k/5,exp3)], k=0..20)], style=point,

xtickmarks=10);

Análisis de respuesta transitoria:

> AnaliTrans(exp3, 2/5, 20, 5);

Tiempo de Retardo: td = .4

Tiempo de Crecimiento: tr = .4

Tiempo de Pico: tp = .4

Valor maximo = 1.997

Sobreimpulso Máximo Porcentual: Mp = 99.700%

Sube un 99.700% sobre el valor final 1

Se puede apreciar en el dibujo.

Tiempo de Establecimiento: ts = 4

Tarda 10 iteraciones en alcanzar la banda del

+/- 5% del valor final.

− + − + 1.0000 .36788( )k T

10.150 .36788( )k T

k T 6.4400 .36788( )k T

k2 T2 1

Page 20: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 138 -

5.3.4.- Análisis de respuesta transitoria de la siguiente expresión:

para T = 4/5

> fun4:= 1-exp(-t/10):

plot({fun4, 1}, t=0..40, color=[wheat, red]);

Esta función va ascendiendo poco a poco hasta alcanzar su valor final,

acercándose a uno. En esta ocasión, tomamos 40 puntos de la secuencia al discretizar.

> exp4 := invztrans(ztrans(fun4, t, z), z, k):

simplify(subs(k=k*T, exp4));

plot([seq([4*k/5, exp4], k=0..40)], style=point);

− 1 e

t10

− 1 e

110k T

Page 21: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 139 -

Análisis de respuesta transitoria. Al no ser una función con picos, sino que va creciendo

progresivamente, puede apreciarse que el Sobreimpulso Máximo Porcentual es de 0%,

ya que su valor nunca llega al uno.

> AnaliTrans(exp4, 4/5, 20, 5);

Tiempo de Retardo: td = 4.8

Tiempo de Crecimiento: tr = 16.0

Tiempo de Pico: tp = 16.0

Valor maximo = .865

Sobreimpulso Máximo Porcentual: Mp = 0.000%

Sube un 0.000% sobre el valor final .8665

Se puede apreciar en el dibujo.

Tiempo de Establecimiento: ts = 14.4

Tarda 18 iteraciones en alcanzar la banda del

+/- 5% del valor final.

5.3.5.- Análisis de respuesta transitoria de la siguiente expresión:

para T = 1/2

> fun5 := 1-exp(-t)-2*t^2*exp(-t):

plot({fun5, 1}, t=0..10, color=[wheat, red]);

− − 1 e( )− t

2 t2 e( )− t

Page 22: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 140 -

> exp5 := invztrans(ztrans(fun5, t, z), z, k):

simplify(subs(k=k*T, exp5));

plot([seq([k/2, subs(k=k/2,exp5)], k=0..20)],

style=point, xtickmarks=10);

En las gráficas anteriores puede observarse que exp5 tiene una oscilación oculta,

que no se ve en el gráfico de la función discreta.

Análisis de respuesta transitoria. Como nunca alcanza al uno, Mp = 0%.

− − 1 e( )−k T

2 e( )−k T

k2 T2

Page 23: Analisis a Respuesta Transitoria

Capítulo 5: Análisis de Respuesta Transitoria

- 141 -

> AnaliTrans(exp5, 1/2, 20, 5);

Tiempo de Retardo: td = 2.5

Tiempo de Crecimiento: tr = 9.5

Tiempo de Pico: tp = 9.5

Valor maximo = 1

Sobreimpulso Máximo Porcentual: Mp = 0.000%

Sube un 0.000% sobre el valor final 1

Se puede apreciar en el dibujo.

Tiempo de Establecimiento: ts = 4

Tarda 8 iteraciones en alcanzar la banda del

+/- 5% del valor final.

Page 24: Analisis a Respuesta Transitoria

Sistemas de Control en Tiempo Discreto

- 142 -

5.4 REFERENCIAS.

[REF. 1] K. Ogata,

Ingeniería de Control Moderna,

Prentice-Hall, 1980

[REF. 2] K. Ogata,

Sistemas de Control en Tiempo Discreto,

Prentice-Hall, 2ª edición, 1996

[REF. 3] J.M. Pérez Oria, S. Arnáltes Gómez,

Introducción a los Sistemas de Control con Computador,

Editorial Ciencia 3 Distribución S.A., 1993