Universidad, Ciencia y Tecnología
versión impresa ISSN 1316-4821versión On-line ISSN 2542-3401
uct v.13 n.50 Puerto Ordaz mar. 2009
MODELO Y CONTROL ASISTIDO POR COMPUTADORA DE UN SISTEMA INDUSTRIAL. CASO: PLANTA PILOTO COMPACTA-UCV
Alfonsi, Alfonso Pérez, Jesús
El MSc. Alfonso Alfonsi es Profesor Asociado en el Dpto. de Computación y Sistemas de la Universidad de Oriente, Núcleo de Anzoátegui, miembro del Grupo de Arquitecturas de Sistemas de Control (GASC), Av. Argimiro Gabaldon (Vía Alterna), Barcelona, Edo. Anzoátegui, Venezuela, teléfonos 58-281-4203257, correo electrónico asas@cantv.net.
El Dr. Jesús A. Pérez es Profesor Titular del Instituto Universitario Tecnológico de La Victoria, Estado Aragua y del Postgrado en Instrumentación de la Facultad de Ciencias de la Universidad Central de Venezuela, Av. Roosevelt, Galpón 10, Caracas, Venezuela, teléfonos 58-212-6051198, fax 58-212-6934289, correo electrónico jperez@gmail.com
Resumen:
Este trabajo presenta funciones en Scilab/Scicos bajo Linux para obtener modelos, desde datos experimentales, y controladores discretos en un sistema industrial. Se toma como caso de estudio la Planta Piloto desarrollada con componentes industriales, para fines educativos y de investigación. Se generaron los modelos de la planta y los controladores Deadbeat para las variables caudal, presión y nivel. Estos representan al sistema, siendo mínima la suma del error cuadrático cometido en las medidas; los lazos de control no presentan error en estado permanente ni componente oscilatoria entre los muestreos. Las funciones, libretos y módulos funcionales generados son un aporte para el diseño de sistemas de control por computadora.
Palabras Clave: Control discreto/ Funciones Scilab/ Identificación de sistemas/ Simulación/ Software. libre.
MODEL AND CONTROL AIDED COMPUTER OF AN INDUSTRIAL SYSTEM. CASE: COMPACT PILOT PLANT-UCV
Abstract:
This work presents functions in Scilab/Scicos under Linux to obtain models from experimental data and discreet controllers in an industrial system. The Pilot Plant developed with industrial components for educational and research purposes, was taken as a typical case. The models of the plant and the Deadbeat controllers were generated for the variables of flow, pressure and level. These represent the system, being minimal the sum of the quadratic error made in the measures; the control bonds do not display errors in a permanent condition or oscillating components among the sampling. The functions, scripts and functional modules generated are a contribution for the design of control systems by computer.
Keywords: Discreet control/ Scilab Functions/ Identification of Systems/ Simulation/ Free Software.
Manuscrito finalizado en Barcelona, Venezuela, el 28/05/20, recibido el 2008/06/11, en su forma final (aceptado) el 2008/11/30.
I. INTRODUCCIÓN
Cuando se plantea un control industrial, lo primero es establecer un modelo dinámico del proceso a controlar. Esto se logra realizando ensayos experimentales excitando al sistema con una señal, registrando la respuesta, y aplicando algún método para la obtención del modelo, luego se escoge el controlador y se seleccionan adecuadamente sus parámetros, con la asistencia de programas computacionales. En la literatura actual se encuentran herramientas de software, que son de ayuda en este tipo de problema, dispersas en sus librerías, y mayoritariamente propietarios. Entonces se desea identificar los lazos involucrados en una planta industrial, diseñar sus controladores discretos, y simularlos, desarrollando para ello un conjunto de funciones y módulos funcionales con Scilab [1] bajo Linux, ambos de dominio público y gratuito, que el usuario pueda modificar y adaptarlo a sus necesidades de control.
Se toma como caso de estudio la Planta Piloto Compacta (PPC) manejada por computadora, fabricada con componentes industriales sirviendo como contribución a la educación e investigación en automatización y control [2]. Tiene una aplicación en LabView bajo Windows, ubicada en el Laboratorio de Instrumentación de la Facultad de Ciencias de la UCV.
Existen referencias que enmarcan este trabajo. Ortega en [3] crea un modelo para simular una planta piloto utilizando el lenguaje Dymola. Herrera, [4], utiliza técnicas de identificación para simular el comportamiento de elementos basados en el efecto Joule y Peltier, y en [5], Arteaga y Contreras identifican a una planta de endulzamiento de gas y creando un control predictivo, utilizando ambos el Matlab. En [2] se encuentra el desarrollo de la PPC, objeto de estudio. En [6], Bucher y Balemi, muestran aplicaciones en un laboratorio didáctico, donde identifican, diseñan e implementan algoritmos de control en Scilab/Scicos. Y en [7], se realizó una emulación de modelos de plantas de diferentes órdenes discretizadas e implementadas en un PLC S7-300 de SIEMENS y simulaciones en Matlab.
El trabajo está estructurado como sigue, en la siguiente sección, se presenta la herramienta computacional y las funciones desarrolladas. En la sección III, se entrega una aplicación usando a la PPC como caso de estudio. Luego se discuten los resultados obtenidos, las conclusiones y las referencias.
II. DESARROLLO
1. Herramienta de software
Scilab [1] es una herramienta desarrollada por INRIA (Institut National de Recherche en Informatique et Automatique), para la solución de problemas en los ámbitos de los sistemas de control, el procesamiento de señales y otras aplicaciones matemáticas con la filosofía del software libre. Provee un entorno de programación bastante robusto, con el cual se puede escribir programas llamados libretos, funciones u objetos que se pueden ejecutar y simular los sistemas con la creación de módulos funcionales a partir de Scicos. Scilab/Scicos funcionan en equipos con sistema operativo Linux o Windows. En este caso se trabaja con el Scilab ver. 4.12 bajo Linux/Ubuntu ver 7.04.
2. Funciones y Libretos
El objetivo que se persigue es desarrollar funciones (con extensión sci) y libretos (con extensión sce) necesarios para ser utilizados en la obtención del modelo de una planta, diseñar un control discreto y simular el sistema. Se crearon cuatro funciones para soportar lo anterior.
2.1 Funciones para la identificación y modelo
Para esta fase se toman los registros de la respuesta temporal de la variable controlada, en cada tiempo de muestreo, de la planta a estudiar, excitada con una función escalón, cuya amplitud se manipula con la apertura inicial y final en cada válvula de control involucrada y son almacenadas en un archivo que alimentan al libreto DatosPPC.sce. A continuación se muestra un trozo del libreto, indicando como hacer la disposición de los datos y códigos necesarios para almacenar los datos del experimento:
Para cargar los datos experimentales de salida de una planta almacenados en un archivo de datos al ambiente Scilab, junto a cada muestra, se desarrolla la función cargad.sci, que se invoca utilizando en la línea de código:
[xx,yy]=cargad(yd,xd,pp)
Sus parámetros son los siguientes: xx: Longitud de las muestras, yy: Datos experimentales de la salida de la planta, yd: Datos experimentales de la salida de la planta, xd: Número de muestras, y pp: Período de las muestras. El código se presenta a continuación:
Ejemplo de la función: [xq1,yq1]=cargad(yq1,483,0.01). Se carga 483 datos experimentales de salida yq1 de una planta muestreados a 0,01 s y devuelve los datos yq1 muestreados y el número de muestras xq1.
Se desarrolla la función mmcuad.sci, que permite determinar el modelo de una planta mediante SISO por mínimos cuadrados (LS) [8] en función de transferencia y espacio de estado discreto, esta a su vez se apoya en la función de la librería de Scilab llamada time_id.sci [1], que se invoca utilizando en la línea de código:
[F,S,G,H,C,D,u]=mmcuad(y,x,a,o)
Sus parámetros son los siguientes: F: Función de transferencia discreta, S: Función en espacio de estado, G, H, C, D: Matrices de espacio de estado discreto, u: Identificación de la función escalón, y: Vector columna de datos experimentales de la salida planta, x: número de muestras, a: amplitud del escalón, o: orden del modelo. El código se presenta a continuación:
Ejemplo de la función: [Q,S1,Gq2,Hq2,Cq2,Dq2,u1]= mmcuad(yq1,483,25,1). Se obtiene el modelo por mínimos cuadrados orden 1 de 483 muestras de datos experimentales en yq1, excitados con una señal escalón de amplitud 25, y es representado en función de transferencia Q(z) y ecuaciones de estado dadas por S1 y las matrices, Gq2, Hq2, Cq2 y Dq2.
2.2 Función de excitación con una señal escalón variable por tramos Para generar la función de excitación escalón del sistema, verifmod.sci, que puede variar su amplitud a un número de muestras determinada por el usuario.
[MF,u]=verifmod(n,b,c,d,e1,e2,s)
Sus parámetros son los siguientes: MF: Datos de la verificación de la planta, u: Función de entrada, n: cambios de la entrada (máximo 2), b: valor final del 1 tramo, c: valor inicial del 2 tramo, d: valor final del 2 tramo, e1: escalón 1 tramo, e2: escalón 2 tramo, s: modelo a considerar. El código se presenta a continuación:
Ejemplo de la función: [QQ,u]= verifmod(2,210,211,700,15,40,Q). Dos tramos: 1 hasta 210 con amplitud 15, otra de 211 hasta 700 con amplitud 40, función Q.
2.3 Función para el controlador discreto
En esta sección se diseña el controlador discreto conocido como (Deadbeat) [9]. Como premisa se tiene un sistema en lazo cerrado, con el controlador en línea directa con la planta, se quiere un controlador de respuesta con oscilaciones muertas. Entonces, dado que es necesario que la función de transferencia de lazo cerrado F(z) tenga n polos, z = 0 en para que tenga una respuesta de duración finita. Entonces GD (z) queda
donde , y n es el orden del sistema, y polinomio indica un polinomio que debe tener la propiedad
, para que el error de escalón en estado estacionario sea cero. A esto se confecciona la función cdb.sci:
[FC,G,H,C,D,S]=cdb(p,ft)Siendo sus parámetros los siguientes: FC: Función de Transferencia discreta del controlador, G, H, C, D: Matrices en Espacio de Estado discreto, S: modelo en scilab de funciones, p: Número de polos en el origen, ft: Función de transferencia de la planta discreta. El código se presenta a continuación:
Se obtiene el controlador discreto Deadbeat con 1 polo en el origen de la planta Q de 25, y es representado en función de transferencia QC(z) y Ecuaciones de estado dadas por S1 y las matrices, Gq2, Hq2, Cq2 y Dq2.
3. Caso de estudio: Planta Piloto Compacta-UCV
Análisis y definición de los lazos de control
El objetivo que se persigue es identificar los lazos involucrados a una planta y diseñarles controles discretos. En la Fig. 1 se muestra la PPC, caso de estudio. Consta de dos tanques, dos bombas a la salida de cada uno de ellos, varios equipos de medición, tres válvulas neumáticas para las acciones de control (FCV-02, PCV-03 y LCV-04) y un computador con procesador Pentium III y tarjetas CIODDA06 y CIO-DAS801 de Computer Borrad. Se tienen instrumentos virtuales en LabView ver. 6.0 de la National Instruments bajo ambiente Windows, que permiten obtener la información a una respuesta al escalón de los lazos de control, y otras operaciones más [2,10]. Para esta entrega, se definen tres lazos de control: Caudal que fluye por la tubería que depende de FCV-02, Presión en la bomba 1 que depende de FCV-02 y PCV-03 y Nivel en el tanque 2 que depende de FCV-02 y LCV-04.
4. Modelo, Control y Simulación
El procedimiento es el siguiente:
1. Ejecute el libreto DatosPPC.sce.
2. Ejecute las funciones cargad.sci, mmcuad.sci, cdb.sci y verifmod.sci.
3. Elabore y ejecute un libreto Modelo.sce.
4. Elabore y ejecute un libreto PContr.sce.
5. Entrar en el Scicos y cargar el módulo funcional Planta&Cont.cos.
6. Entre la línea de comando de verifmod.sci.
El libreto Modelo.sce ayuda a obtener los modelos invocando a las funciones cargad.sci y mmcuad.sci. Se muestra un ejemplo para el lazo de caudal, que puede ser extendido a los demás lazos:
En las Figuras 2, 3 y 4 están las salidas de los modelos cuyas funciones de transferencia son:
Donde QT: Caudal en la tubería, P1: Presión en la Bomba 1, y H2 : Nivel en T2. Y u1: Apertura de FCV-02, u2: Apertura de PCV-03 y u3: Apertura de LCV-04.
En la Figura (2), existe una contribución de la entrada del Caudal (u1) a las funciones de la Presión en B1 y Nivel en T2. Por tal motivo, es necesario hacer un desacoplamiento.
Se alista un libreto, PContr.sce, que invoque a cdb.sci y haga el desacoplo dinámico, MT(z) , que presente las funciones de transferencia en lazo cerrado y prepare las funciones para el módulo funcional en Scicos, Planta&Cont.cos (fig. 5). La Matriz de Desacoplamiento MT(z) y sus elementos M21 y M31 se muestra en (3):
Las funciones transferencia de los controladores, son los que se establecen en (4, 5, 6), respectivamente.
5. Discusión de resultados
El propósito de entregar los códigos de las funciones cargad, mmcuad, verifmod, cdb tienen la finalidad que el usuario, pueda utilizar el código tal cual está e invocar a las funciones, o adaptarlas a sus necesidades de aplicación. Por ejemplo, la función verifmod aquí se presenta con cambios de dos tramos, la cual puede ser ampliada al número de tramos que se necesite; también en función cdb, donde se entrega un controlador deadbeat, se pueden cambiar las líneas de código donde se arma dicho controlador y colocar un nuevo esquema de control.
La respuesta a un escalón de los datos experimentales obtenidos de la PPC y los modelos por LS de los lazos: Caudal, Presión B1 por PVC-03, Presión B1 por FVC-02, Nivel en T2 por LVC-04 y Nivel en T2 por FVC-02, presentan una buena aproximación recogida en la Fig. 2, 3 y 4, por la utilización de LS cuyo objetivo es minimizar la suma del error cuadrático cometido en las k medidas.
De (2) se observa que hay una contribución de la entrada del caudal (u1) a las funciones de la Presión en B1 y Nivel en T2, respectivamente, para lo cual se realizó un desacoplamiento dinámico, que queda demostrado con (3).
De la simulación del sistema de control (Fig. 6), se destaca que los controladores tienen el comportamiento esperado. El punto de funcionamiento del flujo en la tubería es sometido a un cambio de 10 l/min 20 l/min, la presión en la B1 es sometido a un cambio de referencia de 25 psi (172,37 KPa) a 50 psi (344,74 KPa), y el nivel de referencia de T2 se cambia de 30 cm a 50 cm. observándose que cumple con los principios del Deadbeat. Las funciones cargad,sci, cdb.sci y mmcuad.sci fueron las responsables de estos resultados. Y la función verifmod.sci permitió verificar cambios en la entrada, como se comportan los modelos de los lazos de control abierto y cerrado.
En [4] y [5] se utiliza la identificación de sistemas como alternativa confiable y práctica, para determinar los modelos de una planta de endulzamiento de gas y sistemas basados en el efecto Joule y Peltier, creando controles con Matlab, que es propietario. En [3] se crea un modelo para simular el comportamiento de una planta piloto planteando las ecuaciones físicas que modelan los componentes del sistema, utilizando el lenguaje Dymola. Guevara y Borjas en [7], discretizan en ecuaciones de diferencias un circuito eléctrico de segundo orden y utilizan el bloque de regulación PID de un PLC, cerrando el lazo de control, comparando la respuesta del lazo de control con el circuito real y el emulado utilizando también software propietario. El presente desarrollo está en Scilab/Scicos, software libre y gratuito y las funciones generadas son un aporte como herramienta en el Diseño de Sistemas de Control Asistido por Computadora (DSCAC), bajo Linux, utilizando técnicas de identificación de sistemas y estrategias de control discreto. La planta utilizada como objeto de control está construida con componentes industriales.
Bucher y Balemi en [6] utilizan en el Scilab/Scicos bajo RTAI y librerías COMEDI; estas últimas poseen un repertorio de manejadores de tarjetas A/D y D/A bajo Linux. Esto da pie para proponer el desarrollo de los manejadores de las tarjetas CIO-DDA06 y CIO-DAS801 de la PPC [2], que no están en COMEDI, para capturar los datos bajo este ambiente. También se propone desarrollar un software de tiempo real desde el punto de vista riguroso del concepto.
III. CONCLUSIONES
1. Cuatro funciones fueron realizadas en Scilab bajo Linux/Ubuntu de dominio público y gratuito, como aporte al Diseño de Sistemas de Control Asistido por Computadora (DSCAC).
2. Éstas permiten, cargar los datos experimentales obtenidos desde la planta, obtener el modelo utilizando mínimos cuadrados, calcular un controlador deadbeat, y construir una excitación de entrada para verificar los modelos.
3. Las funciones se aplicaron para obtener el modelo discreto de una Planta Piloto Compacta.
4. Las funciones tienen una buena aproximación a la característica de respuesta del sistema real, siendo mínimos la suma del error cuadrático cometido en las medidas, comprobado por el propio algoritmo LS.
5. Se diseñaron controladores deadbeat a cada uno de sus lazos, dando como resultado un buen desempeño, sin error en estado permanente y ninguna componente oscilatoria entre instantes de muestreo.
IV. REFERENCIAS
1. Scilab program (ver. 4.1). INRIA. Institut National de Recherche en Informatique et en Automatique (INRIA), Paris. 2006. Disponible en: http://scilabsoft.inria.fr/ [ Links ]
2. García, A. Desarrollo y construcción de una Planta Piloto manejada por computadora. Trabajo Especial de Grado de Maestría. Caracas, Facultad de Ciencias, UCV, octubre de 2004. 181p. [ Links ]
3. Ortega, M., et al. Modelado y simulación de un planta piloto compacta. Memorias de las XXI Jornadas de Automática. Septiembre de 2000. Disponible en: http://www.cea_ifac.es/actividades/jornadas/xxi/documentos/ja00_108/ [ Links ]
4. Herrera H., et al. Identificación de sistemas: aplicación al diseño de controladores de temperatura. Memorias II Congreso Latinoamericano de Ing. Biomédica, Nº 98. La Habana, mayo de 2001. [ Links ]
5. Arteaga, F. y Contreras, J. Identificación de sistemas y control de matriz dinámica para la optimización de una planta de endulzamiento de gas. Rev. Ingeniería UC. Volumen 10, Nº 2, agosto de 2003, pp. 79-86. [ Links ]
6. Bucher, R. and Balemi, S. Some practical experiences whith Scilab/Sisicos and RTAI-Lab at the SUPSI laboratory. Procceding 2006 International Workshop on Open Source Software Scilab and its Engineering Application (OSSS-EA2006). Hangzhou, China. [online]. september 2006. [citado 17 Abril 2008], pp.31- 47. Available in: http://www.scilab.org/contrib/displayContribution.php?fileID=866 [ Links ]
7. Guevara, J. y Borjas, J. Emulación de procesos industriales mediante la discretización de modelos de plantas en un PLC S7-300 de SIEMENS. Universidad, Ciencia y Tecnología. [online]. julio 2006, vol.10, no.39, pp 184-187 [citado 17 Abril 2008], p.184-187. Disponible en:
http://www2.scielo.org.ve/scielo.php?script=sci_arttext&pid=S131648212006000300021&lng=es&nrm=iso .
8. Ljung, L. System identification.Theory for user. 2da ed. New Jersey. Prentice Hall Englewood Cliffs. 1999, 313 p. [ Links ]
9. Ogata, K. Sistemas de Control en Tiempo Discreto. 2da. ed. México. Prentice Hall Hispanoamérica SA. 1996, 757 p. [ Links ]
10. Alfonsi, A. Control de tiempo real aplicado a la Planta Piloto Compacta-UCV. Trabajo de Grado Maestría. Caracas, Facultad de Ciencias, UCV, mayo de 2008, 304 p. [ Links ]