miércoles, 6 de agosto de 2014

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.  

Variables principales: caudal q, altura en los tanques H1 y H2

Entradas: caudales, aperturas de las válvulas

Estados del sistema: las alturas de los tanques

Parámetros: dimensiones de los tanques, dimensión de la válvula, gravedad
  
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.  

   1)      ap1=0.5, ap2= 0.5
   2)      ap1=1, ap2= 0.5

   3)      ap1=0.5, ap2= 1


   4)      ap1=1, ap2= 1

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.
 
H1iniV=[1:2:25];
H2iniV=[1:2:25];
ap1V=[0.5:0.1:1]
ap2V=[0.5:0.1:1]
qV=[10:10:40];
%Combinacion de valores de vectores : combvec
Pm=combvec(H1iniV,ap1V,H2iniV,ap2V,qV);
dh1V=[]
dh2V=[]
for i=1:length(Pm)
%verificar que el modelo de simulink tenga estas variables de entrada
  H1ini=Pm(1,i);
  ap1=Pm(2,i);
  H2ini=Pm(3,i);
  ap2=Pm(4,i);
  sim('two_tank_1',[0 1])%simula el Sistema tanque 1 seg y entrega H1,H2
% verificar en modelo que H1 y H2 entreguen un solo valor y tipo array
  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. 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).


   1)      q0=40, ap1=0.9, ap2=0.7, H1in= 15, H2in=10

   2)      q0=20, ap1=0.5, ap2=1, H1in= 15, H2in=10

   3)      q0=15, ap1=1, ap2=1, H1in= 15, H2in=10