Está en la página 1de 34

IDENTIFICACION DE SISTEMAS LINEALES

1. OBJETIVOS DE LA PRESENTE PRACTICA.-


 Introducir conceptos básicos sobre identificación de procesos.
 Emplear métodos clásicos para la identificación de parámetros y modelo de procesos de
orden reducido.
 Estudiar el uso de técnicas de identificación de sistemas dinámicos lineales empleando
herramientas específicas de Matlab.
2. FUNDAMENTO TEORICO.-

Fundamentalmente, identificación de sistemas consiste en la determinación de un modelo


matemático que presente los aspectos esenciales del sistema, caracterizado por la manipulación
de las señales de entrada y de salida y que están relacionados a través de una función de
transferencia continua o discreta.

Para los procesos industriales, el modelo puede ser obtenido a partir del tratamiento de las
medidas (procedimiento estadístico, filtro de datos, etc.) colectadas a partir de una realización
experimental. El modelo matemático final es una forma del conocimiento de la relación existente
entre las señales de entrada y salida, caracterizada en el proceso físico por la función de
transferencia. La figura 1 ilustra la composición básica en bloques de una tarea de identificación.

FIGURA 1. Procedimiento para identificación de procesos.

El área de identificación ha tenido considerable interés en los últimos años para fines de provisión,
diagnostico y control. Se observa su aplicación en diversos campos de la ingeniería, tales como
procesos químicos, sistemas bioquímicos, sistemas eléctricos, sistemas mecánicos y otro más.
Básicamente el proceso es sometido a una variación en la señal de entrada y el almacenamiento de
las medidas es realizado por algún registro. (Figura 2)
FIGURA 2. Modelo a partir de una variación de la entrada.

Las señales de test de entrada comúnmente utilizadas son: impulso, escalón, rampa, senoidal y prbs.
Para la identificación de las características esenciales de un proceso bajo es posible una entrada
escalón. Así, el cambio abrupto a través de un incremento o decremento en la amplitud del escalón
puede ser establecido por la variación de la tensión (sistemas eléctricos) o por la abertura o cierre de
una válvula de entrada.

Las características y comportamiento de un sistema (como por ejemplo estabilidad, dinámica


asimétrica, atraso) pueden ser obtenidos a partir del conocimiento de la respuesta al escalón.
También podemos decir que un sistema es asumido como lineal por la determinación de su respuesta
al escalón para diferentes amplitudes en la señal de entrada (curva) de su respuesta al escalón no
depende de la amplitud de la señal de entrada.

METODOS CLASICOS PARA IDENTIFICACION DE PARAMETROS.-

Un modelo parametrico de la dinámica de un proceso comúnmente encontrado en la industria está


caracterizado por la siguiente función de transferencia:

𝐾 𝑌 (𝑆)
G (S) = 𝑒 −𝜃𝑠 =
τS + 1 𝑈 (𝑆)

Y esta configurado por tres parámetros: ganancia estática K, constante de tiempo T y atraso de
transporte o tiempo muerto 𝜃.

La ganancia estática es una medida de la sensibilidad del proceso a cambios en la entrada del
mismo. La ganancia está definida como el cambio en estado estable en la salida entre el cambio en la
entrada que lo ocasiono.

𝑣𝑎𝑟𝑖𝑎𝑐𝑖𝑜𝑛 𝑒𝑛 𝑙𝑎 𝑠𝑎𝑙𝑖𝑑𝑎 𝛥𝑦
K= =
𝑣𝑎𝑟𝑖𝑎𝑐𝑖𝑜𝑛 𝑒𝑛 𝑙𝑎 𝑒𝑛𝑡𝑟𝑎𝑑𝑎 𝛥𝑢

Donde K es la ganancia del proceso. La constante de tiempo T es una medida de cuánto tiempo
demora el proceso en alcanzar el nuevo estado estable después que el inicio de la variación en la
salida detectada. El tiempo muerto 𝜃 es una medida de cuanto demora a ser detectada la variación
inicial en la salida después de ocurrida la variación en la entrada.

En los métodos de Ziegler/ Nichols (ZN) y Hagglund (HAG) los parámetros y 𝜃 son calculados
conforme ilustrado en la figura 3.
FIGURA 3. Metodos de ZN y HAG para modelado de procesos de primer orden.

IDENTIFICACION DE MODELOS EMPLEADOS EN MATLAB.-

Para realizar la identificación de parámetros via Matlab, se utilizara la herramienta IDENT. En el


command window introducir el comando IDENT, la herramienta de identificación de matlab estará
abierta.

IDENTIFICACION DE MODELOS DE SISTEMAS DE PRIMER ORDEN SIN RETRASO.-

Definicion del modelo continuo que va a generar los datos:

Gs=tf(1,[1 1])

Step (Gs)
Obtención de los datos que serán usados para identificación:

g=tf(1,[1 1]);

t=0:0.1:10;

u=idinput(length(t),´prbs´);

y=lsim(g,u,t);

Los valores de los datos y, u son generados a cada interval de 0.1[s]. Se usa la interfaz ident para
obtener un modelo con na=1, nb=1, nk=1 (sistema de primer orden sin atraso).

Modelo Identificado via ident:

Discrete- time IDPOLY model: A(q) y(q)=B(q)u(t)+e(t)

A(q)=1-0.9048q^-1

B(q)=0.09516 q^-1

Y(q)=0.9048y(k-1)+0.09516u(k-1)

[n,d]=th2tf(arx111);

Gdl=tf(n,d,0.1);

Gd1(z)=(0.09516)/(z-0.9048)

Conversión del modelo discreto para el modelo continuo:

Gc=d2c(Gd1)

Que resulta en el modelo original:

Gc1(s)=1/(s+1)

IDENTIFICACION DE MODELOS DE SISTEMAS DE PRIMER ORDEN CON ATRASO DE TIEMPO.

Modelo utilizado en Simulink para generar los datos:

FIGURA 4. Respuesta al
escalon de G(s).
FIGURA 5. Respuesta al escalon de G(s).

Atraso de tiempo=0.2[s] (bloque delay).

Los datos son generados con tiempo de muestreo de 0.05[s] (escogidos en el tiempo de integración).
Luego, el atraso identificado debe ser igual a 4 (0.2[s]=4*0.05[s]).

Usándose la interface ident, para obtener un modelo con un na=1, nb=1 y variando nk. En la figura 6
se muestra que el mejor modelo es el que contiene atraso 4, recordando que u(k) esta naturalmente
atrasada en un tiempo de muestreo en relación a la salida.

Luego el modelo escogido es arx115.

Discrete- time IDPOLY model: A(q)y(t)=B(q)u(t)+e(t)

A(q)=1-0.9753 q^-1

B(q)=0.009876 q^-5

Estimated using ARX from data set mydata

Loss function 3.4372e-030 and FPE 3.50629e-030

Sampling interval:0.05

[n,d]=th2tf(arx115)

n=

0 0 0 0 0 0.0099
d=

1.0000 -0.9743 0 0 0 0

gz=tf(n,d,0.05)

Transfer function:

0.009876

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

Z ^5-0.9753 Z^4

Sampling time: 0.05

Antes de convertir G(z) para continua, se debe retirar el atraso de tiempo discreto de la misma; esto
debido a que esta función discreta no podría ser convertida a continua pues posee polos discretos en
el origen (Z=0).

Gz=tf(0.009876,[1-0.9753],0.05)

Transfer function:

0.009876

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

z-0.9753

Sampling time: 0.05

Y entonces se convierte para continua:

Gs=d2c(Gz)

Transfer function:

0.2

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

s+0.5002

Finalmente se introduce el atraso de tiempo identificado (que es igual a 0.2[s]=4*0.05[s]).

𝑌(𝑠) 0.2
𝐺(𝑠) = = ∗ 𝑒 −0.2𝑠
𝐹(𝑠) 𝑠 − 0.5002

3. DESAROLLO DEL LABORATORIO.


 Realizar en Matlab los ejercicios propuestos por el docente en laboratorio, comparar las
respuestas y analizar los resultados.
Identificacion de Modelos de Sistemas de Primer Orden con atraso de tiempo.

 Primero se realizo el diseño en el simulink como se mostrara a continuacion.

Atraso de tiempo=0.2 [s] ( esto fue realizado mediante el bloque “ TRANSPORT DELAY”)

Tomando en cuenta ademas que el step se encuentra en “step time =0”

Los datos son generados con tiempo de muestreo de 0.05 [s]

Esto nos indica:

El atraso indentificado debe ser igual a 4 → (0.2[s]=4*0.05[s])


 Se uso el interface de Matlab el “ INDENT”:
Con el cual al generar la otra ventra “import data” se puede introducir y crear nuestra curva la cual
estara evaluada en :

Entonces obtenemos nuestra curva y ala vez se consigue el mejor modelado tomando en cuenta de
que nos conviene que sea de 1er orden para facilitar calculos y al escoger y ver cual tenia el
aproximado del 100% se obtuvo:
Como se observa tenemos un “arx224” y un “arx115” los cuales el primero es de 2do orden y el
segundo de 1er orden por tanto para facilitarnos trabajaremos con “arx111”.

 Introduciendo en nuestro command windows pero arrastrando primero a nuestro


“To workspace”.

>> arx115
Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t)
A(q) = 1 - 0.9753 q^-1

B(q) = 0.009876 q^-5

Estimated using ARX from data set eDat


Loss function 4.00851e-030 and FPE 4.08828e-030
Sampling interval: 0.05
 Obtenemos nuestro numerador y denominador y ademas nuestra funcion de
transferencia indicando su respectivo tiempo de retraso.
>> [n d]=th2tf(arx115)

n=
0 0 0 0 0 0.0099
d=
1.0000 -0.9753 0 0 0 0

>> gz=tf(n,d,0.05)

Transfer function:
0.009876
----------------
z^5 - 0.9753 z^4

Sampling time: 0.05

 Como se observa obtenemos un retraso para seguir trabajando se debe retirar el


retraso de tiempo discreto de la misma; esto debido a que esta funcion discreta no
podria ser convertida a continua pues posee polos discretos en el origen(z=0).
Transfer function:
0.009876
----------------
z^5 - 0.9753 z^4

Sampling time: 0.05


>> Gz=tf(0.009876,[1 -0.9753],0.05)
Transfer function:
0.009876
----------
z - 0.9753

Sampling time: 0.05


>> Gs=d2c(Gz)

Transfer function:
0.2
----------
s + 0.5002
 Finalmente se introduce el atraso de tiempo identificado (que es igual a
0.2[s]=4*0.05[s]).

>> Gs_con_atraso=tf(0.2,[1 0.5002],'inputdelay',0.2)

Transfer function:
0.2
exp(-0.2*s) * ----------
s + 0.5002
 MEDIANTE MATLAB LO REALIZAMOS PARA ARX224.

[n2,d2]=th2tf(arx224)

n2 =
0 0 0 0 0.0049 0.0049
d2 =
1.0000 -0.9753 -0.0000 0 0 0

>> g2=tf(n2,d2,0.05)
Transfer function:
0.004938 z + 0.004938
---------------------------------
z^5 - 0.9753 z^4 - 2.643e-012 z^3
Sampling time: 0.05
>> gs=d2c(gz)
??? Undefined function or variable 'gz'.

>> Gz=tf(n2,[1 -0.9753],0.05)

Transfer function:
0.004938 z + 0.004938
---------------------
z - 0.9753

Sampling time: 0.05


>> Gs=d2c(Gz)

Transfer function:
0.004938 s + 0.2
----------------
s + 0.5002

>> Gs2=d2c(Gz)

Transfer function:
0.004938 s + 0.2
----------------
s + 0.5002

>> Gs2_con_atraso=tf(0.2,[1 0.5002],'inputdelay',0.2)


Transfer function:
0.2
exp(-0.2*s) * ----------
s + 0.5002
>> 3*0.05
ans =
0.1500

>> Gs2_con_atraso=tf(0.15,[1 0.5002],'inputdelay',0.15)

Transfer function:
0.15
exp(-0.15*s) * ----------
s + 0.5002

>> Gs2_con_atraso=tf([0.004938 0.2],[1 0.5002],'inputdelay',0.15)

Transfer function:
0.004938 s + 0.2
exp(-0.15*s) * ----------------
s + 0.5002

>> Gs_con_atraso

Transfer function:
0.2
exp(-0.2*s) * ----------
s + 0.5002

>> Gs2_con_atraso
Transfer function:
0.004938 s + 0.2
exp(-0.15*s) * ----------------
s + 0.5002
>> figure(1),step(Gs_con_atraso,'g',Gs2_con_atraso),...
legend('gs','Gs2'),grid

Ejercicios propuestos en laboratorio.

1. Analizar el procedimiento via ident de para identificar la siguiente funcion de


transferencia, utilizar una señal de identificacion prbs:
32
G(s) =
(s + 1)(80s + 1)

Entonces:

32
G(s) =
(80s 2 + 81s + 1)
Sabemos:
Definicion del modelo continuo que a generar los datos:
Gs=tf(32,[80 81 1]);
>> step(Gs)
>> Gs=tf(32,[80 81 1])

Transfer function:
32
-----------------
80 s^2 + 81 s + 1
Se obtuvo los datos que seran usados para la identificacion:

>> g=tf(32,[80 81 1]);

>> t=0:0.2:10;

>> u=idinput(length(t),'prbs');

Warning: The PRBS signal delivered is the 51 first values of a full sequence

of length 63.

> In warning at 26

In idinput at 158

>> y=lsim(g,u,t);

>> ident

Donde: los valores de los datos y,u son generados a cada intervalo de 0.2[s]

Usando la interface ident obtenemos el siguiente modelo (sistema de segundo orden sin atraso).
Como se observa el que más se acerca al modelos es el “ arx111” con un -52.18%
2. Analizar el procedimiento via ident de y utilizar una señal de identificacion “step
scalon”.
15
G(s) = ∗ e−0.3s
(8s + 1)
 Primero se realizo el diseño en el simulink como se mostrara a continuacion.

Atraso de tiempo=0.3 [s] ( esto fue realizado mediante el bloque “ TRANSPORT DELAY”)
Tomando en cuenta ademas que el step se encuentra en “step time =0”
Los datos son generados con tiempo de muestreo de 0.05 [s]
Esto nos indica:
El atraso indentificado debe ser igual a 4 → (0.2[s]=4*0.05[s])
 Se uso el interface de Matlab el “ INDENT”:

Con el cual al generar la otra ventra “import data” se puede introducir y crear nuestra curva la cual
estara evaluada en :

Entonces obtenemos nuestra curva y ala vez se consigue el mejor modelado tomando en cuenta de
que nos conviene que sea de 1er orden para facilitar calculos y al escoger y ver cual tenia el
aproximado del 100% se obtuvo:
Como se observa tenemos un “arx224” y un “arx115” los cuales el primero es de 2do orden y el
segundo de 1er orden por tanto para facilitarnos trabajaremos con “arx111”.

 Introduciendo en nuestro command windows pero arrastrando primero a nuestro


“To workspace”.
>> arx115
Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t)
A(q) = 1 - 0.9753 q^-1

B(q) = 0.009876 q^-5

Estimated using ARX from data set eDat


Loss function 4.00851e-030 and FPE 4.08828e-030
Sampling interval: 0.05
 Obtenemos nuestro numerador y denominador y ademas nuestra funcion de
transferencia indicando su respectivo tiempo de retraso.
>> [n d]=th2tf(arx115)

n=
0 0 0 0 0 0.0099
d=
1.0000 -0.9753 0 0 0 0
>> gz=tf(n,d,0.05)

Transfer function:
0.009876
----------------
z^5 - 0.9753 z^4

Sampling time: 0.05

 Como se observa obtenemos un retraso para seguir trabajando se debe retirar el


retraso de tiempo discreto de la misma; esto debido a que esta funcion discreta no
podria ser convertida a continua pues posee polos discretos en el origen(z=0).

Transfer function:
0.009876
----------------
z^5 - 0.9753 z^4

Sampling time: 0.05


>> Gz=tf(0.009876,[1 -0.9753],0.05)

Transfer function:
0.009876
----------
z - 0.9753

Sampling time: 0.05


>> Gs=d2c(Gz)

Transfer function:
0.2
----------
s + 0.5002
 Finalmente se introduce el atraso de tiempo identificado (que es igual a
0.2[s]=4*0.05[s]).
>> Gs_con_atraso=tf(0.2,[1 0.5002],'inputdelay',0.2)

Transfer function:
0.2
exp(-0.2*s) * ----------
s + 0.5002
3. Indicar las ventajas y desventajas de usar diferentes tipos de señal de entrada para
identificar sistemas dinámicos lineales.
4. INFORME FINAL.
 Explicar el procedimiento empleado para identificación de sistemas tanto con Matlab
como con los métodos clásicos para procesos genéricos.

Para identificación de parámetros vía Matlab se utilizó la herramienta IDENT el uso de esta
herramienta se verá con un ejemplo. Realizamos el siguiente diagrama de bloques, en
simulink:
Figura1. Respuesta al escalón de G(s)

Posteriormente se cambio el valor de los parametros de Transport Delay, y los demas que se
muestran a continuación en las interfaces.
También se puede observar la salida en el scope, la respuesta al escalón de G(s).

En el SCOPE se pudo observar lo siguiente:


Despues en el comand window colocamos el comando ident obteniendo la siguiente ventana:

Se codifico lo siguiente:

g=tf(1,[1 1]);
t=0:0.1:10;
u=idinput(length(t),'prbs');
y=lsim(g,u,t);
se guardo el archivo.m, posteriormente se
accedió a las siguientes interfaces donde
se realizo unos cambios:
Se obtuvo la siguiente grafica:
Con el puntero del mouse se arrastró cada función al work space

Y después ver si están los gráficos, en la lista de Best Fits, en el mismo work space

En la parte de models view presionamos Transient Response se tiene lo siguiente:

En la ventana de command Window:


>> arx221 >> arx111
Discrete-time IDPOLY model: Discrete-time IDPOLY model:
A(q)y(t) = B(q)u(t) + e(t) A(q)y(t) = B(q)u(t) + e(t)
A(q) = 1 - 0.4098 q^-1 - 0.4479 A(q) = 1 - 0.9048 q^-1
q^-2 B(q) = 0.09516 q^-1
B(q) = 0.09516 q^-1 + 0.04711 q^-2 Estimated using ARX from data set
Estimated using ARX from data set eDat
eDat Loss function 2.2787e-033 and FPE
Loss function 2.47118e-033 and FPE 2.37077e-033
2.67499e-033 Sampling interval: 0.1
Sampling interval: 0.1 >> Gdl=tf(n,d,0.1)
>> [n,d]=th2tf(arx221); Transfer function:
n = 0.09516 z + 0.04711
0 0.0952 0.0471 -----------------------
d = z^2 - 0.4098 z - 0.4479
1.0000 -0.4098 -0.4479 Sampling time: 0.1
>> Gdl=tf(n,d,0.1); >> [n,d]=th2tf(arx111)
>> Gdl=tf(n,d,0.1) n =
Transfer function: 0.0952
0.09516 z + 0.04711 d =
----------------------- -0.9048
z^2 - 0.4098 z - 0.4479 >> Gdl=tf(n,d,0.1)
Sampling time: 0.1 Transfer function:
>> [n,d]=th2tf(arx221); 0.09516
>> Gdl=tf(n,d,0.1); ----------
>> Gc=d2c(Gdl) z - 0.9048
Transfer function: Sampling time: 0.1
>> [n,d]=th2tf(arx111);
s^2 + 14.06 s + 1036 >> Gdl=tf(n,d,0.1);
------------------------------- >> Gc=d2c(Gdl)
s^3 + 15.06 s^2 + 1050 s + 1036 Transfer function:
1
-----
s + 1
Mejorando la vista de la respuesta al Escalón de G(s)se tiene:
>> arx115
Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t)
A(q) = 1 - 0.9753 q^-1

B(q) = 0.009876 q^-5

Estimated using ARX from data set eDat


Loss function 1.91676e-030 and FPE 1.94241e-030
Sampling interval: 0.08

>> [n,d]=th2tf(arx115);
>> Gdl=tf(n,d,0.1);
>> Gdl=tf(n,d,0.05)

Transfer function:
0.009876
----------------
z^5 - 0.9753 z^4

Sampling time: 0.05


>> Gdl=tf([1 0.9753],0.05)
Transfer function:
s + 0.9753
----------
0.05
>> Gc=tf(0.2,[1 0.5002], 'inputdelay',0.2)
Transfer function:
0.2
exp(-0.2*s) * ---------- =(0.4/2s+1)*e-0.2s
s + 0.5002

 Indicar las ventajas y desventajas de usar diferentes tipos de señal de entrada para
identificar sistemas dinámicos lineales.
Esto se realizó en el punto 3 Desarrollo del Laboratorio.
5. CUESTIONARIO.

a) ¿Matlab cuenta con alguna otra herramienta para identificación de parámetros?


b) Investigar y explicar otro método de identificación.
c) ¿Qué función cumple el comando lsim en Matlab?

El comando lsim es bastante similar al comando step (en realidad, el comando step es justamente
un caso especial de lsim). Dado un sistema descrito ya sea por ecuaciones de espacio de estado o
por una función de transferencia, el comando lsim puede correr una simulación del sistema usando
entradas y condiciones iniciales arbitrarias.

La sintaxis del comando es la siguiente:

lsim

lsim(sys,u,t)

lsim(sys,u,t,x0)

lsim(sys,u,t,x0,'zoh')

lsim(sys,u,t,x0,'foh')

lsim(sys) El comando lsim(A,B,C,D,U,T,X0) dibuja la respuesta temporal del sistema lineal: x = Ax


+ Bu

y = Cx + Du

este comando es muy utilizado juntamente con el comando plot como se ve en el ejemplo:

>> [u,t] = gensig('square',4,10,0.1);

>> H = [tf([2 5 1],[1 2 3]) ; tf([1 -1],[1 1 5])]

lsim(H,u,t)

Transfer function from input to output...

2 s^2 + 5 s + 1
#1: ---------------
s^2 + 2 s + 3
s-1
#2: -----------
s^2 + s + 5

el grafico sera:

A causa de que cualquier función de transferencia puede representarse mediante muchos conjuntos
diferentes de matrices de espacio de estado, un sistema en la forma función de transferencia sólo
puede simularse con condiciones iniciales nulas.

6. BIBLIOGRAFIA.

 Matlab, curso Introductorio.centro Brasileño de Pesquisas Físicas.


 Manual básico de Matlab, apoyo a la Investigacion CPD.
 Aprenda Matlab 7.0 Gracia de Jalon, Javier; Rodríguez José I.; Vidal Jesús.
 Simulink . The Math Works Inc.
 Solucion de problemas de Ingenieria con Matlab.Etter, Delores.
 Problemas de ingeniería de Control Utilizando Matlab .Ogata, Katsuhiko.

También podría gustarte