Identificación del sistema multitanque INTECO.
Se desea identificar el sistema de dos tanques acoplados que se muestra en la figura. Las señales de entrada que se utilizarán son los valores de anchos de pulso de cada señal pwm que controla la apertura de las válvulas C1 y C2. El caudal de entrada al tanque superior es constante
Principales aportes de la carrera de William Edwards Deming
Actividad no15 2do parcial
1. Página 1
UNIVERSIDAD DE FUERZAS ARMADAS “ESPE”
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
ASIGNATURA: CONTROL INTELIGENTE
Actividad No 15 Identificación de sistemas dinámicos.
Fecha: 04 de junio de 2014
Nombre alumno: Dayana Ochoa y Carlos Mendoza
NRC: 2055
Introducción. IDENTIFICACIÓN DEL SISTEMA DINÁMICO MULTITANQUE
MEDIANTE RED NEURONAL
Identificación del sistema multitanque INTECO.
Se desea identificar el sistema de dos tanques acoplados que se muestra en la figura. Las señales
de entrada que se utilizarán son los valores de anchos de pulso de cada señal pwm que controla
la apertura de las válvulas C1 y C2. El caudal de entrada al tanque superior es constante.
El modelamiento matemático del sistema se lo ha realizado en simulink, a partir de la
información del manual del sistema multitanque.
En los esquemas de simulación de cada tanque se ha aumentado un bloque de función que tiene
por objeto transformar el valor de ancho de pulso de la señal pwm de cada válvula a un valor de
Constante de válvula C.
Para la válvula C1 del tanque 1 el ancho de pulso de la señal PWM es u2. Para la válvula C2 el
ancho de pulso para la señal PWM de control es u3. Se ha asumido una relación lineal entre el
ancho de pulso de la señal PWM y el coeficiente de la válvula C.
1. Analice el modelo matemático del sistema multitanque. Describa las variables principales
del modelo. Identifique las entradas, salidas, estados y parámetros del proceso. Determine
las ecuaciones del proceso en variables de estado.
𝒒𝟏 = 𝝁 𝟏 ∗ 𝑺√𝟐𝒈𝑯 𝟏
𝒒𝟐 = 𝝁 𝟐 ∗ 𝑺√𝟐𝒈𝑯 𝟐
𝑨 𝟏
𝒅𝑯𝟏
𝒅𝒕
=
𝒅𝑽𝟏
𝒅𝒕
= 𝒒𝟎 − 𝝁 𝟏 ∗ 𝑺√𝟐𝒈𝑯 𝟏
𝑨 𝟏
𝒅𝑯𝟏
𝒅𝒕
=
𝒅𝑽𝟏
𝒅𝒕
= 𝒒𝟎 − 𝝁 𝟏 ∗ 𝑪 𝟏√𝑯 𝟏
𝑨 𝟐
𝒅𝑯𝟐
𝒅𝒕
=
𝒅𝑽𝟐
𝒅𝒕
= 𝒒𝟏 − 𝝁 𝟐 ∗ 𝑺√𝟐𝒈𝑯 𝟐
𝒒 𝟎
𝒒 𝟏
𝒒 𝟐
C1
C2
A1
2. Página 2
2. Deduzca la función β(H2) que aparece en el modelo matemático del tanque 2.
3. Simule el proceso para distintas condiciones de apertura de las válvulas y grafique la
evolución de los niveles en los tanques. Presente cuatro casos de estudio (apertura de
válvulas). Tiempo de simulación de 5 minutos.
Condiciones iniciales
a) válvula1= 0.8, válvula2=0.2
C
Hmax
H2
b
𝑨 𝟐=𝒄𝒘+xw=β (𝑯 𝟐)
𝑯 𝟐
𝑯 𝒎𝒂𝒙
=
𝒙
𝒃
w
x
3. Página 3
4. Escriba el código requerido para identificar mediante una red neuronal el sistema dinámico
formado por los dos tanques para distintas aperturas de válvulas. Compare gráficamente la
salida de la red neuronal y del sistema dinámico.
b) válvula1= 0.6, válvula2=0.3
c) válvula1= 0.2, válvula2=0.7
d) válvula1= 1, válvula2=1
4. Página 4
Para realizar el entrenamiento de 20 cm3/s se debe realizar el siguiente gráfico en
simulink:
Ahora se debe desarrollar el programa en matlab para el entrenamiento de la red
neuronal:
deg2rad=pi/180;
H1iniV=[5:2:25];
H2iniV=[5:2:25];
ap1V=[0.6:0.1:1];
ap2V=[0.6:0.1:1];
q0V=[20:3:29];
%Combinacion de valores de vectores : combvec
Pm=combvec(H1iniV,ap1V,H2iniV,ap2V, q0V);
dh1V=[]
dh2V=[]
for i=1:length(Pm)
q0=Pm(5,i);
H1ini=Pm(1,i);
ap1=Pm(2,i);
H2ini=Pm(3,i);
ap2=Pm(4,i);
sim('two_tank_1',[0 1])
dh1=H1-H1ini;
dh2=H2-H2ini;
dh1V=[dh1V dh1];
dh2V=[dh2V dh2];
mensaje=sprintf('patron no %d de %d',i,length(Pm))
end
Tm=[dh1V;dh2V];
% Aproximacion de funciones
P=Pm;
T=Tm;
net = newff(minmax(P),[8 2],{'tansig' 'purelin'});
Y = sim(net,P);
net.trainParam.epochs = 50;
net.trainParam.goal=1e-5;
net = train(net,P,T);
Y = sim(net,P);
close all
figure(1)
subplot(211)
plot(dh1V,'k')
subplot(212)
plot(dh2V,'k')
figure(2)
dh1nn= Y(1,:)
dh2nn=Y(2,:)
subplot(211)
plot(dh1nn)
subplot(212)
plot(dh2nn)
hold off
5. Página 5
Gráfica de entrenamiento
Comparación gráfica de la salida de la red neuronal y del sistema dinámico
Generación de la función de entrenamiento
Si se requiere que el caudal sea dinámico se realiza las siguientes modificaciones en
el diagrama de simulink:
6. Página 6
Ahora se debe desarrollar el programa en matlab para el entrenamiento de la red
neuronal:
deg2rad=pi/180;
H1iniV=[5:2:25];
H2iniV=[5:2:25];
ap1V=[0.6:0.1:1];
ap2V=[0.6:0.1:1];
q0V=[20:3:29];
%Combinacion de valores de vectores : combvec
Pm=combvec(H1iniV,ap1V,H2iniV,ap2V, q0V);
dh1V=[]
dh2V=[]
for i=1:length(Pm)
q0=Pm(5,i);
H1ini=Pm(1,i);
ap1=Pm(2,i);
H2ini=Pm(3,i);
ap2=Pm(4,i);
caudal=Pm(5,i);
sim('two_tank_1',[0 1])
dh1=H1-H1ini;
dh2=H2-H2ini;
dh1V=[dh1V dh1];
dh2V=[dh2V dh2];
mensaje=sprintf('patron no %d de %d',i,length(Pm))
end
Tm=[dh1V;dh2V];
% Aproximacion de funciones
P=Pm;
T=Tm;
net = newff(minmax(P),[8 2],{'tansig' 'purelin'});
Y = sim(net,P);
net.trainParam.epochs = 50;
net.trainParam.goal=1e-5;
net = train(net,P,T);
Y = sim(net,P);
close all
figure(1)
subplot(211)
plot(dh1V,'k')
subplot(212)
plot(dh2V,'k')
figure(2)
dh1nn= Y(1,:)
dh2nn=Y(2,:)
subplot(211)
plot(dh1nn)
subplot(212)
plot(dh2nn)
hold off
Comparación gráfica de la salida de la red neuronal y del sistema dinámico
7. Página 7
5. Construya un diagrama en simulink que permita la verificación del sistema identificado
con red neuronal mediante una comparación con el sistema original. Transcriba el
diagrama de simulink y los resultados obtenidos para varias condiciones iniciales y de
condición de apertura de válvulas. (3 casos de estudio)
Diagrama en Simulink
a) caudal= 20; válvula1= 0.6; válvula2=0.6
b) caudal= 23; válvula1= 0.8; válvula2=0.6
8. Página 8
Nosotros Dayana Ochoa y Carlos Mendoza afirmamos que esta actividad es de nuestra autoría y
establecemos que para la elaboración de la misma hemos seguido los lineamientos del Código de
Ética de la Universidad de las Fuerzas Armadas ESPE
c) caudal= 26; válvula1= 0.7; válvula2=0.9
d) caudal= 29; válvula1= 1; válvula2=0.6