Académique Documents
Professionnel Documents
Culture Documents
DOCENTE:
2015
1
LABORATORIO 3: IDENTIFICACION PARAMETRICA
INDICE
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.
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:
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.
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
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
PLANTA A IDENTIFICAR
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
9
LABORATORIO 3: IDENTIFICACION PARAMETRICA
la planta y recibir informacin del sensor de temperatura del agua calentada mediante el
intercambiador de calor.
-Conversor I-V
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:
11
LABORATORIO 3: IDENTIFICACION PARAMETRICA
-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
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 =
Donde:
est_id -estructura de datos de identificacin.
13
LABORATORIO 3: IDENTIFICACION PARAMETRICA
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.
>>ze = est_idF(200:400);
>>idplot(ze(200:300))
ze=est_idF(200:400);
idplot(ze(200:300))
14
LABORATORIO 3: IDENTIFICACION PARAMETRICA
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.
impulse(ze,'sd',k)
15
LABORATORIO 3: IDENTIFICACION PARAMETRICA
impulse(ze,'sd',k,'fill');
16
LABORATORIO 3: IDENTIFICACION PARAMETRICA
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
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
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 =
18
LABORATORIO 3: IDENTIFICACION PARAMETRICA
m1.A
ans =
0.9387 0.0297
-0.1569 1.0073
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
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
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.
bode(m1);grid;
20
LABORATORIO 3: IDENTIFICACION PARAMETRICA
nyquist(m1,'sd',k);grid
step(m1,ze);grid
21
LABORATORIO 3: IDENTIFICACION PARAMETRICA
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
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.
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
bode(m1,m2);grid
() = 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])
compare(zv,m1,m2,m7)
25
LABORATORIO 3: IDENTIFICACION PARAMETRICA
nb = 1;
nc = 2;
nd = 3;
nf = 5;
nk = 10;
m8 = bj(ze,[nb nc nd nf nk])
nb = 1;
nf = 5;
nk = 10;
m9 = oe(ze,[nb nf nk])
compare(zv,m1,m2,m7,m8,m9)
26
LABORATORIO 3: IDENTIFICACION PARAMETRICA
27
LABORATORIO 3: IDENTIFICACION PARAMETRICA
Fnormaliz*pi=F
Fnormaliz=Fseal/Fmuestreo
(Fseal/(Fmuestreo*sample))*pi=F
Donde Fmuestreo=1/0.5
-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
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)
INFORME
b. La salida(y)
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
Modelo ARMAX
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
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:
33
LABORATORIO 3: IDENTIFICACION PARAMETRICA
-0.004511 s + 0.001166
------------------------
s^2 + 0.1022 s + 0.01732
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
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
39
LABORATORIO 3: IDENTIFICACION PARAMETRICA
40
LABORATORIO 3: IDENTIFICACION PARAMETRICA
CONCLUSIONES
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.
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.
41
LABORATORIO 3: IDENTIFICACION PARAMETRICA
OBSERVACIONES
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
43