Vous êtes sur la page 1sur 43

LABORATORIO 3: IDENTIFICACION PARAMETRICA

PONTIFICIA UNIVERSIDAD CATLICA DEL PERU

MAESTRIA EN INGENIERIA DE CONTROL Y AUTOMATIZACION

LABORATORIO DE IDENTIFICACIN DE SISTEMAS

DOCENTE:

Dr. Juan Javier Sotomayor Moriano

PRESENTADO POR LOS ALUMNOS:

1. Luis Angel Arias Copacondori


2. Dimel Arturo Contreras Martnez
3. Elmer Calle Chojeda

2015

1
LABORATORIO 3: IDENTIFICACION PARAMETRICA

INDICE

Generacin de seal PRBS.. 3


Adquisicin de datos con seal Pseudoaleatoria.. 6
Objetivos..6
Implementacin del sistema.6
Equipos...6
Conexiones6
Procedimiento software..10
Adquisicin de datos10
Identificacion paramtrica de sistema.13
Objetivos..13
Procedimiento de identificacin...13
Utilizando Filtros Pasabajos.26
Informe30
Conclusiones..41
Observaciones...42
Bibliografia..43

2
LABORATORIO 3: IDENTIFICACION PARAMETRICA

PARTE I
GENERACIN DE SEAL PRBS

Es una seal binaria pseudoaleatoria, que posee excitacin permanente para poder
realizar la identificacin paramtrica.
Los valores alto y bajo de la seal PRBS se obtienen a partir del rango de linealidad de
la planta(intercambiador de calor), utilizando el mayor rango posible para disminuir la
relacin seal/ ruido.

Como la seal ub es de tipo binaria(0 y 1), para pasarlo a los valores de 0 y 15 se


realiza la siguiente conversin:
up = 5*ub + 10
Se escoge un PRBS de longitud N:
= 2 1
n=7
= 127
A = [1 0 0 0 0 0 1];

El periodo de conmutacin:

3
LABORATORIO 3: IDENTIFICACION PARAMETRICA

= 20

=
4

= 5
El tiempo de muestreo es:

= = 0.5
10

Cdigo implementado:

%% Limited band
clear n A up k P
close all
n = 7;
P = 10;
A = [1 0 0 0 0 0 1]; % a6 a5 ... a1
up(1:(n+1)*P,1) = [zeros(n*P,1); ones(P,1)];

for k=n+2:2^n-1
up((k-1)*P+1:k*P,1) = rem(A(1)*up((k-1)*P,1)+A(2)*up((k-
2)*P,1)+A(3)*up((k-3)*P,1)...
+A(4)*up((k-4)*P,1)+A(5)*up((k-5)*P,1)+A(6)*up((k-
6)*P,1)+A(7)*up((k-7)*P,1)+1,2);
end
up = 5*up + 10;
figure(5)

t = (0:0.5:0.5*(length(up)-1))';
plot(t,up)
uprbs = [t up];
axis tight
4
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Resultado:

Esquema de implementacin en simulink:

5
LABORATORIO 3: IDENTIFICACION PARAMETRICA

PARTE II
ADQUISICION DE DATOS: EXCITACIN DE PROCESOS
UTILIZANDO UNA SEAL PSEUDOALEATORIA

1.-OBJETIVO
Aprender a realizar un proceso de adquisicin de datos para una identificacion
paramtrica de una planta industrial. La presente gua describe: la implementacin de
las conexiones de hardware, las configuraciones en matlab y el uso del algoritmo
desarrollado en el laboratorio anterior para generar una seal pseudoaleatoria.

2.- IMPLEMENTACION DEL SISTEMA DE ADQUISICION DE DATOS


2.1 EQUIPOS UTILIZADOS PARA LA ADQUISICION DE DATOS
Los equipos necesarios para el proceso de adquisicin de datos sern los siguientes:
Tarjeta de adquisicin de datos (DAQ) PCI-6229) de national instruments.
Bornera para la tarjeta de adquisicin de datos.
Computador personal con MATLAB (para la tarjeta PCI-6229) incluyendo el mdulo RT
(Real Time) para usarlo en el entorno grafico SIMULINK.
Conversor voltaje/corriente (V/I), para transformar el voltaje de salida de la tarjeta DAQ
en corriente necesaria para operar la vlvula neumtica, la tarjeta DAQ trabaja
solamente con voltaje.
Resistencia de 250 ohmios, parar transformar la salida del sensor en voltaje.
Cables de conexiones con las longitudes necesarias.

2.2 CONEXIONES ENTRE EQUIPOS


La implementacin requiere el empleo de herramientas como: destornilladores,
alicates de corte y multmetros que cumplan con los estndares industriales.

Planta de control de temperatura (intercambiador de calor)

Esta planta regula el flujo de flujo caliente al intercambiador de calor para poder
calentar un fluido a la temperatura deseada
El objetivo del laboratorio es hallar un modelo de la planta mediante identificacion
no paramtrica y identificacion paramtrica

6
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Intercambiador

de calor

VALVULA PROPORCIONAL SENSOR DE TEMPERATURA

ACTUADOR

Es una vlvula proporcional que regula el caudal de agua caliente hacia el intercambiador de
calor. Se controla con seales de 4 a 20mA o de -10V a 10V.

Mediante la regulacin de sta vlvula podemos controlar la temperatura del agua fra que
pasa por el intercambiador de calor, hasta llegar a temperaturas cercanas al agua caliente.

7
LABORATORIO 3: IDENTIFICACION PARAMETRICA

SENSOR DE TEMPERATURA DEL AGUA DE SALIDA

PLANTA A IDENTIFICAR

TABLERO DE CONTROL Y MONITOREO PROPIO DE LA PLANTA

8
LABORATORIO 3: IDENTIFICACION PARAMETRICA

En ste tablero se tienen que visualizar las variables, y principalmente controlar que el termo
resistores no sobrepasen una temperatura lmite.

ESQUEMA DE IMPLEMENTACIN

En la experiencia se inici configurando el software Matlab en Tiempo Real, elaborando un


programa SCRIPT para generar seal PRBS, y un esquema Simulink para enviar la seal PRBS a

9
LABORATORIO 3: IDENTIFICACION PARAMETRICA

la planta y recibir informacin del sensor de temperatura del agua calentada mediante el
intercambiador de calor.

Las seales se envan y reciben a la planta desde la computadora utilizando:

-Mdulo de conexin en modo Remoto

-Conversor I-V

-Bornera de la tarjeta PCI 6229

Adems como parte del proceso se requiere controlar manualmente la temperatura de


calentamiento de los resistores y adems abrir la vlvula de vaciado del tanque de agua
calentada antes de que rebalse.

Con estos pasos realizados ya identificamos las variable a controlar y medir en la


planta as como su funcionamiento, lo que sigue es configurar la estacin de trabajo
para la obtencin de datos.
2.3 PROCEDIMIENTO PARA LA CONFIGURACION DEL SOFTWARE

En este laboratorio se utilizara el programa de simulink de matlab para enviar y recibir


seales en tiempo real a travs del toolbox de tiempo real.
Para poder ejecutar programas en tiempo real con matlab es necesario asegurarse de
que el kernel Real-Time Windows target est instalado, para esto, en el workspace de
matlab escriba lo siguiente:
>> rtwintgt setup

Es necesario tambin el compilador de lenguaje C mediante la instruccin MEX.


Esta instruccin es capaz de enlazar y compilar archivos fuente en una biblioteca
compartida llamada archivo mex que se ejecuta dentro de Matlab. Se instala de la
siguiente manera:
>> mex setup

2.4 ADQUISICION DE DATOS CON LA DAQ Y SIMULINK


-Para desarrollar la adquisicin de datos se asume que ya se utiliz el algoritmo para
generar la seal pseudoaleatoria y por consiguiente ya existe un vector bidimensional
de esta seal en el espacio de trabajo con la forma:

Simin1=[t U] o simplemente [t U]
Donde:
t=vector de tiempo
U=seal pseudoaleatoria
-Para crear un programa de envi y adquisicin de las seales de respuesta de la
planta en tiempo real con el simulink, se debern utilizar los bloques analog output y

10
LABORATORIO 3: IDENTIFICACION PARAMETRICA

analog input de la librera de bloques: Real time Windows target, adems se utilizara el
bloque From Workspace del simulink. Luego se deber crear el siguiente programa en
el simulink:
Modelamiento.mdl
-Incluya los bloques correspondientes y conctelos segn:

-Este programa lee seales de un canal de entrada analgica de la tarjeta y la grfica.


Tambin enva un voltaje pseudoaleatorio a travs de un canal de salida analgica de
la tarjeta. Para que este programa funcione correctamente correctamente, tenemos
que configura las opciones dentro de los boques analgicos. Para los bloques analog
input y analog output es necesario configurar:
- La tarjeta a utilizar: National instruments PCI-6229
- El periodo de muestreo : pe 0.01
- El canal de entrada /salida a utilizar: es necesario considerar que matlab
considera al canal 0 como 1 y as sucesivamente, por lo que se requiere
sumarle una unidad al nmero del canal asignado en la tabla de National
Instruments.
-Posteriormente se requieren configurar los parmetros de simulacin del programa
dentro del men simulation en la opcin model configuration Parameters, en el
submen solver.

11
LABORATORIO 3: IDENTIFICACION PARAMETRICA

-Adicionalmente se requiere configurar el archivo objetivo del sistema y su compilador,


dentro del submen code generation.

-Finalmente se requiere compilar el programa y ejecutarlo en modo externo.

-Para el bloque Scope es necesario configurar una variable para almacenar la data,
en la casilla DATA HISTORY: Los datos se almacenaran en una variable datos para
su posterior procesamiento.

Con estos pasos realizados tenemos configurado Maltab para que trabaje en Real time
usando la tarjeta de adquisicin para poder obtener datos de la planta, lo siguiente que
debemos hacer es usar los mtodos de identificacion de sistemas con los datos
obtenidos

12
LABORATORIO 3: IDENTIFICACION PARAMETRICA

PARTE III
IDENTIFICACION PARAMETRICA UTILIZANDO TECNICAS DE
IDENTIFICACION DE SISTEMAS

1. OBJETIVOS

Preparar datos obtenidos experimentalmente para la adecuada modelacin de


un proceso.
Realizar la identificacin paramtrica de un proceso utilizando las tcnicas de
Identificacin de Sistemas.

2. PROCEDIMIENTO DE IDENTIFICACION PARAMETRICA

1. Cargar los datos en el espacio de trabajo de Matlab: Se puede utilizar el


comando load o el comando open para abrir el archivo identi.mat donde fueron
guardados los datos de entrada / salida.
>>load identi.mat

close all; clc;


load identi.mat
y1=datos1.signals.values(:,2);
u1=datos1.signals.values(:,1);
tt = datos1.time;

2. Crear una estructura de datos de identificacin, con los datos de entrada, salida
y tiempo de muestreo utilizado, introducir los nombres de las variables
respectivas.
>>est_id = iddata (y1, u1, ts);

ts=0.5;
Wnl=0;
Wnh= 20;
est_id=iddata(y1,u1,ts);

est_id =

Time domain data set with 1201 samples.


Sample time: 0.5 seconds
Outputs Unit (if specified)
y1
Inputs Unit (if specified)G
u1

Donde:
est_id -estructura de datos de identificacin.

13
LABORATORIO 3: IDENTIFICACION PARAMETRICA

y1 -salida o respuesta del proceso.


u1 -entrada (seal pseudoaleatoria) del proceso.
ts -periodo de muestreo.

Para introducir los nombres de las variables:


>>est_id.InputName=flujo;
>>est_id.OutputName=temperatura;
ts=0.5;
Wnl=0;
Wnh= 20;
est_id=iddata(y1,u1,ts);
est_id.InputName='Flujo_agua';
est_id.OutputName='Temperatura';

De ser necesario, en este punto se pueden filtrar los datos obtenidos experimentalmente
utilizando la funcin idfilt, de la siguiente forma:
>>est_idF = idfilt (est_id, [Wnl Wnh])

est_idF=idfilt(est_id,[Wnl Wnh]);

Donde:
est_id -estructura que contiene los datos de entrada y de salida.
Wnl -frecuencia inferior del filtro.
Wnh -frecuencia superior de filtro.

3. Seleccionar un rango de datos para obtener el modelo: el resto servir para


validar el mismo. En este caso el vector de entrada ser:

>>ze = est_idF(200:400);
>>idplot(ze(200:300))

ze=est_idF(200:400);
idplot(ze(200:300))

14
LABORATORIO 3: IDENTIFICACION PARAMETRICA

4. Remover la varianza de los datos, para eliminar el offset de las seales o


componentes continuas:
>>ze = dtrend(ze);

ze=dtrend(ze)

ze =
Time domain data set with 201 samples.
Sample time: 0.5 seconds
Outputs Unit (if specified)
Temperatura
Inputs Unit (if specified)
Flujo_agua

Es necesario restar los valores medios de cada seal debido a que, normalmente, se
construyen modelos lineales que describen la respuesta del proceso para desviaciones
de un equilibrio fsico. Para los datos en estado de equilibrio, es razonable suponer que
los niveles medios de las seales corresponden a este equilibrio. Es as, que es posible
buscar modelos en torno a cero, sin modelar los niveles de equilibrio absoluto en
unidades fsicas.

5. Obtener la respuesta al impulso del sistema, esto ayudar a tener una


informacin preliminar importante para encontrar el modelo paramtrico.
>>impulse(ze, sd, k)

impulse(ze,'sd',k)

15
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Esta instruccin grafica la respuesta impulsional del proceso, mostrando la regin de


confianza correspondientes a las desviaciones estndar k, como una regin alrededor
de cero. Cualquier respuesta fuera de esta regin es as significante. Es posible
aadir el argumento FILL despus del modelo para mostrar la regin o regiones de
confianza como una banda de un color caracterstico, para mayor facilidad de anlisis
de los resultados:

>>impulse(M, sd, k, fill)

impulse(ze,'sd',k,'fill');

De la grfica resultante se puede encontrar una aproximacin razonable del retardo de


tiempo. Este retardo pudo haberse obtenido tambin de una id. no paramtrica.

6. Utilizando el Mtodo de Error de Prediccin (PEM: prediction error method)


encontrar una primera aproximacin del modelo en espacio de estados. Matlab

16
LABORATORIO 3: IDENTIFICACION PARAMETRICA

sintetiza este mtodo en la instruccin pem que calcula un modelo en espacio de


estados a partir de una estructura de datos.
>>m1 = pem(ze);

m1=pem(ze)

m1 =
Discrete-time identified state-space model:
x(t+Ts) = A x(t) + B u(t) + K e(t)
y(t) = C x(t) + D u(t) + e(t)

A=
x1 x2
x1 0.9387 0.02974
x2 -0.1569 1.007

B=
Flujo_agua
x1 0.01265
x2 -0.008795

C=
x1 x2
Temperatura -0.2193 -0.08182

D=
Flujo_agua
Temperatura 0

K=
Temperatura
x1 -1.4
x2 -1.385

Sample time: 0.5 seconds

Parameterization:
FREE form (all coefficients in A, B, C free).
Feedthrough: none
Disturbance component: estimate
Number of free coefficients: 10
Use "idssdata", "getpvec", "getcov" for parameters and their uncertainties.

Status:
Estimated using PEM on time domain data "ze".
Fit to estimation data: 77.05% (prediction focus)
FPE: 2.375e-05, MSE: 2.2e-05

Las caractersticas de este modelo se encuentran, mediante:

17
LABORATORIO 3: IDENTIFICACION PARAMETRICA

>>get(m1)

get(m1)

a: [2x2 double]
b: [2x1 double]
c: [-0.2193 -0.0818]
d: 0
k: [2x1 double]
StateName: {2x1 cell}
StateUnit: {2x1 cell}
Structure: [1x1 pmodel.ss]
NoiseVariance: 2.2910e-05
Report: [1x1 idresults.ssest]
InputDelay: 0
OutputDelay: 0
Ts: 0.5000
TimeUnit: 'seconds'
InputName: {'Flujo_agua'}
InputUnit: {''}
InputGroup: [1x1 struct]
OutputName: {'Temperatura'}
OutputUnit: {''}
OutputGroup: [1x1 struct]
Name: ''
Notes: {}
UserData: []
SamplingGrid: [1x1 struct]

>>m1.EstimaInfo

m1.EstimationInfo

ans =

Status: 'Estimated using PEM with Focus = "prediction"'


Method: 'PEM'
LossFcn: 2.1998e-05
FPE: 2.3749e-05
DataName: 'ze'
DataLength: 201
DataTs: 0.5000
DataDomain: 'Time'
DataInterSample: 'bl'
WhyStop: 'Maximum number of iterations reached'
UpdateNorm: 1.8218
LastImprovement: 4.3435e-07
Iterations: 20
InitialState: 'estimate'
Warning: 'None'
N4Horizon: [15 10 10]
N4Weight: 'CVA'

18
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Asimismo, para encontrar una de las matrices A, B, C o D del modelo en espacio de


estados, basta con citarlas as:
>>m1.A

m1.A

ans =

0.9387 0.0297
-0.1569 1.0073

7. Verificar la calidad del modelo obtenido, empleando el mtodo de validacin


cruzada con un rango de datos diferentes a los utilizados en el proceso de
modelacin.
Para esto se escoge un intervalo de datos no utilizados anteriormente. Por ejemplo:
>>zv = est_id(700:1000);

zv=est_id(700:1000);

zv =
Time domain data set with 301 samples.
Sample time: 0.5 seconds
Outputs Unit (if specified)
Temperatura
Inputs Unit (if specified)
Flujo_agua

Al igual que en los datos de modelamiento, se procede a eliminar la varianza:


>>zv = detrend(zv);

zv=dtrend(zv);

Para la comparacin propiamente dicha, se utiliza el comando compare, que tiene como
parmetros de entrada: a la respuesta de un sistema (caracterizada en un intervalo de
datos) y a un modelo en espacio de estados.
>>compare(zv, m1)

compare(zv,m1)

19
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Se cuantifica la aproximacin del modelo utilizando un ndice de performance. Este


ndice es una medida cuantitativa de la calidad del modelo que puede obtenerse a
partir de la norma de los errores residuales.

La frmula que utiliza Matlab para calcular el ndice de performance (FIT) es la


siguiente:

= (1 ) 100%

Donde:

-salida medida.

-salida estimada.

-media de y.

Este ndice corresponde a las variaciones de la salida real que son reproducidas por
el modelo. Un nmero ms cercano a 100% significa un mejor modelo.

8. Para analizar las caractersticas frecuencias del modelo, se encuentra el


diagrama de bode:
>>bode(m1)

bode(m1);grid;

20
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Alternativamente se puede utilizar un diagrama de Nyquist considerando regiones de


incertidumbre (dentro de las elipses), correspondientes a k desviaciones estndar.
>>nyquist(m1, sd, k)

nyquist(m1,'sd',k);grid

9. Para analizar el comportamiento temporal del modelo versus la respuesta real


del proceso, se utiliza la funcin step.
>>step(m1, ze)

step(m1,ze);grid

21
LABORATORIO 3: IDENTIFICACION PARAMETRICA

10. Creacin de modelos paramtricos con estructuras pre-establecidas


El objetivo de este tipo de identificacin es encontrar modelos polinomiales, por ejemplo
para un modelo ARX se tiene la siguiente estructura:
() = 1 ( ) + 2 ( 2) ( )
= 1 ( 3) + +2 ( 4) ( )
Donde:
T -periodo de muestreo.
-nmero de polos.
-1-nmero de ceros.
10. La implementacin de modelos ARX, se concibe segn la funcin:
>>m2=arx(ze,[na nb nk]);
na -coeficiente de polos.
nb -coeficiente de ceros.
nk -coeficiente de periodos de retardo.

m2 = arx(ze,[2 1 10])
m3 = arx(ze,[1 2 10])
m4 = arx(ze,[2 2 10])
m5 = arx(ze,[1 3 10])
m6 = arx(ze,[1 4 10])

compare(zv,m1,m2,m3,m4,m5,m6)

22
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Los coeficientes de polos y ceros se pueden ir iterando intuitivamente, comparando


sus ndices de performance hasta encontrar porcentajes de adecuacin razonables.

Una herramienta de apoyo que introduce Matlab para encontrar estos coeficientes es
la funcin arxstruc que computa funciones de prdida para familias de modelos ARX;
esto quiere decir que se introducir vectores que contienen menor funcin de perdida
entre un rango a valores para modelar: ze y un rango de valores a validar: zv. Para
introducir los rangos de valores se hace uso de la funcin struc.

Un ejemplo de utilizacin de esta funcin es el siguiente:


>>V = arxstruc(ze, zv, struc(1:5,1:5,1:5))

V = arxstruc(ze, zv, struc(1:5,1:5,1:5));

Que calcula la funcin de perdida para todas las posibles combinaciones de na entre
[1:5] con nb entre [1:5] y nk entre [1:5].
El resultado del clculo de la funcin de perdida aparecer en la primera fila para los
coeficientes que se muestran en las filas restantes de cada columna, la ltima columna
de V retorna el nmero de datos de clculo.
11. Calcular por lo menos 05 modelos de acuerdo a las familias encontradas con
arxctruc, hasta encontrar el que presente mejor porcentaje de validacin:
>>m2 = arx (ze, [na2 nb2 nk2]);
>>m3 = arx (ze, [na3 nb3 nk3]);
>>m4 = arx (ze, [na4 nb4 nk4]);
>>m5 = arx (ze, [na5 nb5 nk5]);
>>m6 = arx (ze, [na6 nb6 nk6]);
12. Comparar los modelos encontrados, analizando su ndice de performance:
>>compare( zv, m1, m2, m3, m4, m5, m6)
13. Comparar y graficar los polos y ceros de los modelos encontrados. Analizar
los resultados, mediante la funcin:
>>pzmap(m1, m2)

pzmap(m1,m2);grid

23
LABORATORIO 3: IDENTIFICACION PARAMETRICA

14. Igualmente para analizar las caractersticas en frecuencia de los modelos, se


encuentra el diagrama de bode:
>>bode(m1, m2, m3, m4)

bode(m1,m2);grid

15. Implementar un modelo ARMAX de la forma:


()() = () = ( ) + ()()
Donde:
() = 1 + 1 1 + + ()

() = 1 + 1 1 + + ()

() = 1 + 1 1 + + ()

24
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Teniendo como referencia a los valores de los coeficientes obtenidos para el modelo
ARX encontrado como el que mejor describe el comportamiento del proceso, se debe ir
iterando tentativamente valores para la amplitud del vector de perturbaciones.
La funcin para implementar modelos ARMAX es la siguiente:
>>m7 = armax(ze,[na nb nc nk])

na = 2; %Mediante pruebas se obtuvo este valor


nb = 1; %que de aproxima mejor
nc = 2;
nk = 10;
m7 = armax(ze,[na nb nc nk])

16. Comparar los modelos encontrados, haciendo uso de la funcin compare.


>>compare(zv,m7)

compare(zv,m1,m2,m7)

17. Utilizando el mismo procedimiento se pueden calcular modelos Box-Jenkins,


Output-Error, etc. Considerando sus respectivos parmetros iniciales y sus
respectivas funciones de clculo.
La funcin para implementar modelos Box-Jenkins es la siguiente:
>> m8 = bj(ze,[nb nc nd nf nk])

25
LABORATORIO 3: IDENTIFICACION PARAMETRICA

nb = 1;
nc = 2;
nd = 3;
nf = 5;
nk = 10;
m8 = bj(ze,[nb nc nd nf nk])

La funcin para implementar modelos Output-Error es la siguiente:


>> m9 = oe(ze,[nb nc nd nf nk])

nb = 1;
nf = 5;
nk = 10;
m9 = oe(ze,[nb nf nk])

Comparando los modelos encontrados, haciendo uso de la funcin compare.


>>compare(zv,m1,m2,m7,m8,m9)

compare(zv,m1,m2,m7,m8,m9)

Realizado los pasos anteriores hemos obtenido modelos paramtricos de la planta,


donde pudimos obtener mediante pruebas los parmetros que mejor se aproximan al
sistema.

26
LABORATORIO 3: IDENTIFICACION PARAMETRICA

UTILIZACION DE FILTROS PASABAJOS EN LA ADQUISICION


-Para disear el filtro adecuado, es necesario conocer la frecuencia de corte adecuada
para atenuar las componentes de frecuencia superiores a esta. Para encontrar la
frecuencia de corte se debe calcular la densidad espectral de potencia, esto se har a
travs de la instruccin psd.matlab.
%%%%%%%%%%%%%%%%%%%%%%%%% Grafica de la densidad Espectral de
Potencia%%%%
yys=spectrum.welch;
DEP=psd(yys,y1);
plot(DEP)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%

27
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Fnormaliz*pi=F
Fnormaliz=Fseal/Fmuestreo

(Fseal/(Fmuestreo*sample))*pi=F
Donde Fmuestreo=1/0.5

Frecuencia de pase Fpass en la grafica es=0.01


Fpass= 2.5736rad/seg
Frecuencia de stop Fstop en la grafica es=0.1
Fstop= 25.6153rad/seg

- Analizando la densidad espectral de potencia del grafico de DEP se obtendr la


frecuencia de corte que servir para diseo del filtro pasabajo, en simulink se debe
incluir el bloque: Digital Filter Design de men: Signal Processing Blockset.

-Dentro de este bloque se utilizar la Fpass (Frec. Corte) para disear el filtro, se
incluye un Fstop, adems se pueden las especificaciones se pueden manejar las
especificaciones de magnitud, el orden del filtro, etc.

Fpass= 1.62Hz
Fstop= 4.07Hz

Frecuencia en Hz

28
LABORATORIO 3: IDENTIFICACION PARAMETRICA

-Despus de introducir todos los parmetros necesarios se disea el filtro mediante el


botn design filter. Finalmente se introduce este bloque en el programa de adquisicin
de datos.

Incluyendo los bloques enunciados a lo largo de la gua, el modelo en simulink para


enviar la seal pseudoaleatoria de excitacin persistente al proceso a modelar, queda
como se muestra en la siguiente figura

Hicimos la prueba con un filtro pasa bajos para la seal de entrada de temperatura,
con clculos realizados en su frecuencia de corte, obtuvimos datos semejantes.

29
LABORATORIO 3: IDENTIFICACION PARAMETRICA

NOTA
En este punto analizamos las condiciones iniciales del sistema ante la respuesta que
nos dio matlab.

Haciendo estos cambios (No trabajar con salida temperatura sino con la variacin de
temperatura y luego sumarle las condiciones iniciales)

u1 = u1*5+50;(para q vaya de 10 a 15 bar)


y1 = y1-2.8; (para que el sistema tenga salida variacin de temperatura)
(2.8 es el valor que entrega el sensor en To)

INFORME

Anlisis de Variable de control y Variable de proceso


a. La entrada(u)
Es el flujo que se vara mediante una vlvula.
Valores:
Elctrico: -10V a +10V.
Fsico: 0 -100% (Abertura)
Rango lineal utilizado: 10 15% / -8 a -7V

b. La salida(y)

Es la temperatura del agua a la del intercambiador de calor.


Valores:
Elctrico: 4 a 20mA. (Mediante un conversor se vuelve voltaje)
Fsico: -----
Rango lineal utilizado: 40 60C/ 2 a 4V (Considerado a partir de los datos)

30
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Como la temperatura representa una salida con valor inicial diferente de cero,
se tomar como variable de salida la variacin de temperatura, y como offset
su valor inicial (To).
y(0)=T(o) =To
Si se considera la variacin de temperatura en vez de la temperatura en s:
y(0)=dT(o)=0 (sistema relajado) , Con offset To

1. Desarrollar el procedimiento completo de identificacin del proceso estudiado,


presentar un modelo ARX y un modelo ARMAX que mejor describa el
comportamiento del proceso, aplicar anlisis temporales y frecuenciales,
sustentar los resultados con grficos, tablas, etc. Dar conclusiones.

Modelo ARMAX

Discrete-time ARMAX model: A(z)y(t) = B(z)u(t) + C(z)e(t)


A(z) = 1 - 1.9 z^-1 + 0.906 z^-2

B(z) = 0.0001144 z^-10

C(z) = 1 - 1.54 z^-1 + 0.5401 z^-2

Sample time: 0.5 seconds

Parameterization:
Polynomial orders: na=2 nb=1 nc=2 nk=10
Number of free coefficients: 5
Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

Status:
Estimated using ARMAX on time domain data "ze".
Fit to estimation data: 76.79% (prediction focus)
FPE: 2.438e-05, MSE: 2.25e-05

31
LABORATORIO 3: IDENTIFICACION PARAMETRICA

m2 =
Discrete-time ARX model: A(z)y(t) = B(z)u(t) + e(t)
A(z) = 1 - 0.5868 z^-1 - 0.3976 z^-2

B(z) = 0.0007364 z^-10

Sample time: 0.5 seconds

Parameterization:
Polynomial orders: na=2 nb=1 nk=10
Number of free coefficients: 3
Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

Status:
Estimated using ARX on time domain data "ze".
Fit to estimation data: 74.81% (prediction focus)
FPE: 2.641e-05, MSE: 2.651e-05

Comprobacin:

clc;
close all;

t=0:0.5:100000;
t=t(1:length(u1));
temp_init = 50; % Valor considerado
u_esc = u1;

figure(1)
% lsim(sys_dis,u1,t,'b');
subplot(211)
%lsim(sys_con,u_esc,t);
plot(t,u1,t,y1,'-g')
title('Variacin de la temperatura')
legend('u Valvula PRBS' , 'y Variacion temperatura')

subplot(212)
hold on
y_m7=lsim(m7,u_esc,t)
plot(t,y_m7+temp_init,'-b')
legend('Resultado ARMAX')

y_m2 = lsim(m2,u_esc,t)
plot(t,y_m2+temp_init,'k')
legend('ARX')

plot(t,y1+temp_init,'-g')
legend('Resultado ARMAX','ARX','Valor experimental')

grid on
axis([0 600 38 42])
title('Valor de la temperatura, con To = 40C')

32
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Resultado:

Se puede observar que el modelo ARMAX presenta mayor aproximacin a la planta.


2. Argumentar comparaciones y resultados entre el modelamiento no paramtrico
temporal y frecuencial y el modelamiento paramtrico desarrollado en este
laboratorio.

Mediante el modelo no paramtrico, se obtiene un retardo de:


Td = 5s (aproximadamente)
La regin lineal:

33
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Respuesta al escaln: (con amplitud A=15 vlvula abierta al 15%)

%% para el espacio de estados en tiempo continuo


clc
close all
A=m1.A;
B=m1.B;
C=m1.C;
D=m1.D;
t=0:0.5:100000;
t=t(1:length(u1));
% Compute the actual transfer function
[a b] = d2c(A,B,0.5)
[num den]=ss2tf(a,b,C,D)
sys=tf(num,den)
pole(sys)
lsim(sys,u1,t);grid

%%Estabilidad del sistema


eig(a)

%%calculo de la ecuacion en diferencias


sys =

-0.004511 s + 0.001166
------------------------
s^2 + 0.1022 s + 0.01732

Continuous-time transfer function.

Donde obtenemos la ecuacin en diferencias dado por:

Y[k]=-0.1022*Y[k-1]-0.01732*Y[k-2]-0.004511*X[k-1]+0.001166*X[k-2]

34
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Del modelo ARMAX

Discrete-time ARMAX model: A(z)y(t) = B(z)u(t) + C(z)e(t)


A(z) = 1 - 1.9 z^-1 + 0.906 z^-2

B(z) = 0.0005721 z^-10

C(z) = 1 - 1.54 z^-1 + 0.5401 z^-2

Dada como ecuacin en diferencias:


y[k]-1.9*y[k-1]+0.906*y[k-2]=0.0005721*u[k-10]+e[k]-1.54*e[k-1]+0.5401*e[k-2]
Del modelo ARX
Discrete-time ARX model: A(z)y(t) = B(z)u(t) + e(t)
A(z) = 1 - 0.5868 z^-1 - 0.3976 z^-2
B(z) = 0.003682 z^-10
Dada como ecuacin en diferencias:
y[k]-0.5868y[k-1]-0.3976*y[k-2]=0.003682*u[k-10]+e[k]

3. presentar las diferencias encontradas entre la utilizacin de la interfaz grfica


ident de Matlab y el uso de la Lnea de Comandos para la identificacin de
procesos utilizando el Toolbox de Identificacin de Sistemas de Matlab.

1.- Ejecutamos en Matlab toolbox ident


>>ident

2.- Ingresamos datos obtenidos en la planta intercambiador de calor-Valvula


Apertura-Temperatura import data

35
LABORATORIO 3: IDENTIFICACION PARAMETRICA

3.- Tomamos datos para la identificacion [200-400] y validacin [700-1000] los datos
que da mejor estimacin al sistema

36
LABORATORIO 3: IDENTIFICACION PARAMETRICA

4.- Estimaremos el modelo ARX con la mejor estimacin posible y el menor orden
posible que nos da un mejor modelo

37
LABORATORIO 3: IDENTIFICACION PARAMETRICA

5.- Estimaremos el modelo ARMAX con la mejor estimacin posible y el menor orden
posible que nos da un mejor modelo

38
LABORATORIO 3: IDENTIFICACION PARAMETRICA

Del modelo ARMAX obtenido por el Ident grfico :

A(z)y(t) = B(z)u(t) + C(z)e(t)


A(z) = 1 - 1.869 z^-1 + 0.8771 z^-2

B(z) = 7.339*10e-5 z^-10

C(z) = 1 1.416 z^-1 + 0.5816 z^-2

Dada como ecuacin en diferencias:


y[k]- 1.869*y[k-1]+0.8771 *y[k-2]= 7.339*10e-5*u[k-10]+e[k]-1.416*e[k-1]+0.5816*e[k-2]
El modelo obtenido es muy semejante al modelo obtenido por ident cdigo.

6.- Estimaremos el modelo BJ con la mejor estimacin posible y el menor orden


posible que nos da un mejor modelo

39
LABORATORIO 3: IDENTIFICACION PARAMETRICA

40
LABORATORIO 3: IDENTIFICACION PARAMETRICA

CONCLUSIONES

I. La planta identificada, intercambiador de calor, result ser estable. Tanto en su


modelo contino como discreto.

II. La planta result ser de fase no mnima, es decir posee un polo con parte real
positiva. Por ello posiblemente sea ms complicado de controlar que si hubiese
resultado de fase mnima.

III. El modelo identificado indica que la planta tiene un retardo de 5 segundos, ya


que posee 10 muestras de retardo con tiempo de muestreo 0.5s.

IV. El modelo ARMAX se aproxima a la planta ms que el modelo ARX, tanto en


estimacin como en validacin.

V. El modelo ARMAX y el modelo en espacio de estados discreto, presentan


aproximacin a la planta prcticamente iguales.

VI. La planta, al tener como salida la temperatura, resulta ser un sistema no


relajado ya que y(0) = To !=0. Es por ello que se trabaj con la variacin de
temperatura como salida y con offset la temperatura inicial.

VII. Se debe de seleccionar una seal PRBS con periodo de conmutacin mayor al
seleccionado, de tal manera que se produzcan mayores cambios de
temperatura a la salida.

VIII. Se trabaj con valores de apertura de la vlvula de 10 a 15%, recomendados


en el laboratorio. Estos valores representan los lmites de la seal de control en
la regin lineal.

IX. El desarrollo de la identificacin obtuvo mejores resultados utilizando los


comandos del ident en cdigo respecto al ident GUI.

41
LABORATORIO 3: IDENTIFICACION PARAMETRICA

OBSERVACIONES

I. La temperatura de los termo resistores fue controlado manualmente por uno de


los integrantes del grupo, ste representa una perturbacin ya que no se
mantiene constante en un solo valor sino que vara en un rango de valores
dependientes del operador.

II. Es preferible aumentar el tiempo de conmutacin de la seal PRBS de tal


manera que la variacin de la temperatura sea ms notoria.

III. Hay que considerar que la velocidad de cambio de temperatura depende del
sensor utilizado, es por eso que para otro tipo de sensor el sistema podra
presentar una dinmica aparente ms rpida o lenta.

42
LABORATORIO 3: IDENTIFICACION PARAMETRICA

BIBLIOGRAFA

I. Daniel Rodrguez Ramrez, Teodoro lamo Cantarero, Ingeniera de Control -


Identificacin mediante el mtodo de los mnimos cuadrados.

II. Munther A. Dahleh. System Identification, Lecture6

III. Ljung , Identification Systems

IV. Jirka Roubal . Model identification, ARX ARMAX OE Model 2009

43

Vous aimerez peut-être aussi