scieee AI-readable full text Open interactive document viewer

Control de la planta de los cuatro tanques mediante la realización de una pasarela Matlab-HTTP-OPC

Reyes López, César

Abstract

En este artículo se detalla como puede realizarse el control remoto de un proceso industrial, en este caso la planta de los cuatro tanques, mediante la implementación de un controlador MPC en Matlab y su comunicación vía web mediante una pasarela HTTP-OPC. Para el desarrollo del controlador en Matlab es necesario tener accesibles las variables y datos del sistema mediante un acceso eficiente al servidor OPC conectado a la planta y con el que poder dialogar desde cualquier equipo conectado bien a la red local del proceso industrial a controlar o fuera de esta. Para la lectura de valores desde Matlab se ha utilizado XML y para la escritura el método GET de HTML.

Full text

See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/228855217 CONTROL DE LA PLANTA DE LOS CUATRO TANQUES MEDIANTE LA REALIZACION DE UNA PASARELA MATLAB-HTTP-OPC Article CITATION 1 READS 365 5 authors, including: Some of the authors of this publication are also working on these related projects: Design Thinking View project Energy Management in MicroGrids View project Beatriz Pontes Universidad de Sevilla 25 PUBLICATIONS283 CITATIONS SEE PROFILE Eduardo F. Camacho Universidad de Sevilla 389 PUBLICATIONS12,929 CITATIONS SEE PROFILE All content following this page was uploaded by Eduardo F. Camacho on 23 May 2014. The user has requested enhancement of the downloaded file. CONTROL DE LA PLANTA DE LOS CUATRO TANQUES MEDIANTE LA REALIZACI ´ ON DE UNA PASARELA MATLAB-HTTP-OPC C´esar Reyes Alfonso Cepeda Beatriz Pontes Ignacio Alvarado Eduardo F. Camacho Dto. Ingenier´ıa de Sistemas y Autom´atica, Universidad de Sevilla, (creyes,cepeda,bepontes,alvarado,eduardo)@cartuja.us.es Resumen En este art´ıculo se detalla como puede realizarse el control remoto de un proceso industrial, en este caso la planta de los cuatro tanques, mediante la implementaci´on de un controlador MPC en Matlab y su comunicaci´on v´ıa web mediante una pasarela HTTP-OPC. Para el desarrollo del controlador en Matlab es necesario tener accesibles las variables y datos del sistema mediante un acceso eficiente al servidor OPC conectado a la planta y con el que poder dialogar desde cualquier equipo conectado bien a la red local del proceso industrial a controlar o fuera de esta. Para la lectura de valores desde Matlab se ha utilizado XML y para la escritura el m´etodo GET de HTML. Palabras clave: Matlab, HTTP, OPC, MPC, sistema no lineal, control remoto. 1. INTRODUCCI ´ ON El contenido de este art´ıculo surge como necesidad de solucionar el problema de la aplicaci´on remota de controladores a procesos industriales fuera de su red local de trabajo, expandiendo esta a cualquier dispositivo conectado a Internet. La comunicaci´on externa con un proceso industrial necesita irremediablemente de un equipo intermedio que realice la conexi´on entre la propia red local del proceso y el exterior, dicho equipo presenta una doble funcionalidad cliente-servidor con respecto al manejo de los datos operativos del sistema, es decir, con respecto al dispositivo que posee los datos y variables a controlar, el equipo act´ua como cliente accediendo a los mismos, y act´ua como servidor frente a los equipos externos que necesitan disponer de esos datos. Para que un equipo sea accesible desde el exterior, entendi´endose por exterior aquellas direcciones fuera de la red de ´area local del proceso industrial a controlar y equipo intermedio, ha de disponerse de una direcci´on IP p´ublica. Este equipo intermedio puede no ser f´ısicamente un equipo diferente al que controla el proceso industrial aunque funcionalmente ha de presentar una serie de caracter´ısticas que le permitan la comunicaci´on con el exterior. Figura 1: Esquema general de acceso El art´ıculo se ha estructurado de la siguiente manera: en el apartado 2 se realiza un estudio detallado de las necesidades que han dado lugar al desarrollo del sistema de control remoto v´ıa web as´ı como de las diferentes alternativas para su implementaci´on. En el apartado 3 se describe la estructura del sistema tanto a nivel de hardware como de software, desde el equipo exterior hasta el mismo proceso industrial, pasando por la pasarela Matlab-HTTP-OPC. En el siguiente apartado se detalla el desarrollo del sistema de comunicaci´on y las diferentes relaciones necesarias para establecer una conexi´on Matlab-HTTP-OPC. En los apartados 5 y 6 se muestran respectivamente la implementaci´on del controlador Matlab MPC y las conclusiones referentes al contenido del art´ıculo. 2. NECESIDAD DE CONTROL El sistema de la planta de los cuatro tanques es un banco de ensayo para estrategias de control, descrito en [8]. El sistema est´a constituido por cuatro dep´ositos interconectados diagonalmente como los mostrados en la siguiente figura: Figura 2: Esquema de la planta te´orica Las bombas de caudal controlado A y B extraen agua del dep´osito inferior verti´endola en los tanques 1 y 4, la bomba A, y en los tanques 2 y 3 la bomba B. Todos los tanques se descargan por gravedad, el 3 sobre el 1, el 4 sobre el 2 y el 2 y el 1 sobre el dep´osito inferior. El objetivo de la planta es controlar los niveles de los tanques 1 y 2 (salidas del sistema), actuando sobre los caudales de las bombas (se˜nales de control). Puede observarse como las salidas del sistema est´an fuertemente acopladas ya que si se desea aumentar el nivel del dep´osito 1, al aumentar el caudal de la bomba A, tambi´en aumenta el nivel del dep´osito 4 que al descargarse sobre el 2 aumentar´ıa el nivel del mismo. Por tanto, el sistema resulta interesante como banco de ensayos debido a: 1. Todas las variables de estado son accesibles, puesto que las alturas de los l´ıquidos se pueden medir. 2. Dependiendo de los valores de los caudales de las bombas, el sistema puede poseer un cero de transmisi´on en el semiplano derecho o de fase no m´ınima. 3. El modelo del sistema es no lineal. 4. Las variables a controlar est´an fuertemente acopladas. En la realizaci´on pr´actica del sistema se han introducido algunas variaciones que afectan a la controlabilidad del sistema, se justifican a continuaci´on. En lugar de una bomba de caudal controlado y una v´alvula de tres v´ıas, se han utilizado cuatro v´alvulas neum´aticas, junto a cuatro caudal´ımetros magn´eticos y una bomba de impulsi´on convencional. Con esto se consigue, mediante un lazo de control de caudal, garantizar el caudal que circula por cada rama, y por tanto, la fracci´on de caudal total por cada rama ser´a la consigna de cada lazo. Esta configuraci´on presenta una mayor versatilidad, pudi´endose tener un sistema hasta con cuatro variables de control. Figura 3: Dise˜no real de la planta Puede asegurarse un funcionamiento similar al del dise˜no original sin m´as que forzar que las relaciones entre caudales por las ramas sean las mismas que si se generaran teniendo v´alvulas de tres v´ıas. El sistema est´a controlado por un aut´omata y es en el que se implementan los diferentes controladores, de ah´ı la necesidad de desarrollar un m´etodo que permita variar los par´ametros de control externamente sin necesidad de cargar diferentes programas en el aut´omata cada vez que se quiera modificar el control de la planta. 2.1. Gesti´on del controlador El control del caudal se hace mediante un bucle de control de caudal que se encarga de actuar sobre las v´alvulas para que este alcance el valor adecuado en funci´on del caudal medido por los caudal´ımetros. Existe adem´as un bucle de control superior encargado de decidir cual es el caudal adecuado para que las alturas de los dep´ositos evolucionen de manera determinada. El aut´omata se encuentra conectado a un PC mediante un cable PC/PPI y un protocolo de comunicaci´on libre, basado en RS 232. Una aplicaci´on residente en el PC mantiene una base de datos en tiempo real con los valores adquiridos por el aut´omata de la planta. Esta aplicaci´on es adem´as un servidor OPC [10], servidor que permite la comunicaci´on de las aplicaciones de control de sus clientes con la base de datos. Por tanto, para poder acceder desde Matlab a los valores de la base de datos y a las variables de control es necesaria una comunicaci´on con el servidor OPC, realiz´andose esta ´ultima mediante el uso del protocolo HTTP. El proceso de comunicaci´on de un controlador desarrollado en Matlab con la planta es el siguiente, el usuario final desarrolla un controlador Matlab en un equipo cualquiera conectado a Internet - en un ordenador de la red local a la planta que sea accesible desde el exterior se instala un servidor web que soporte alg´un lenguaje de programaci´on con el que desarrollar un programa que por un lado se comunique con la planta (v´ıa OPC) y por otro pueda recibir los par´ametros de control del usuario final (M´etodo GET de HTML) - y mediante el acceso al sitio web desarrollado puede aplicarse su controlador a la planta de los 4 tanques, siempre y cuando se tenga permiso para ello. 3. ESTRUCTURA DEL SISTEMA El sistema est´a estructurado de la siguiente manera: -Proceso industrial a controlar. Montaje de la planta de los 4 tanques junto con el equipo con el hardware y software necesario para su control y explotaci´on as´ı como la comunicaci´on adecuada para poder exportar sus datos. -Equipo conectado al proceso (servidor OPC). Equipo que se encuentra conectado al equipo del proceso industrial que se quiere supervisar y controlar, situado dentro de su misma red local. El servidor OPC instalado hace de puente entre el proceso industrial y la propia red local si no dispone de una direcci´on IP p´ublica o con el exterior en caso contrario. -Equipo accesible desde el exterior. Equipo en el que se encuentra alojada la aplicaci´on web; se encuentra en la misma red local que el equipo conectado al proceso. Este equipo tiene instalado un servidor de Internet que da soporte a la aplicaci´on y dispone de una direcci´on IP p´ublica para poder acceder a ´el desde el exterior. Este equipo puede no ser f´ısicamente diferente al equipo conectado al proceso. -Cliente OPC. Para acceder a los datos que sirve el equipo conectado al proceso y de los que hace uso la aplicaci´on web ha de disponerse de un cliente OPC, implementado en este caso en forma de un ActiveX. Este control ActiveX ha sido desarrollado con anterioridad a partir de un conjunto de librer´ıas en C++. Lee y escribe valores en el servidor OPC. -Programa en Matlab. Programa que realice las lecturas de los valores del sistema y variables a controlar mediante un fichero XML proporcionado por el sitio web y sea capaz de modificar los mismos mediante el env´ıo de nuevos valores utilizando el m´etodo GET de HTTP hacia el sitio web. Una vez descritos los elementos necesarios para llevar a cabo el control remoto de la planta de los cuatro tanques se proceder´a a especificar la manera en que se ha desarrollado la comunicaci´on entre los diferentes elementos. 4. DESARROLLO En la figura 4 puede observarse el esquema de conexiones que se han utilizado para crear la pasarela Matlab-HTTP-OPC. Figura 4: Esquema de conexi´on El proceso de conexi´on comienza con la petici´on por parte de un usuario a un servidor de p´aginas web mediante una direcci´on de Internet habilitada para ello. En el servidor web se procesa la petici´on y se realiza la conexi´on del cliente OPC (control AcvieX) con el servidor OPC de la planta. Dicho servidor mantiene actualizados los valores que lee de la planta en tiempo real y los sirve al cliente OPC. Es el servidor web quien mediante un fichero XML sirve hacia el exterior los valores de la planta, de esta forma, Matlab mediante la lectura de este fichero puede tomar los valores que necesite para implementar su controlador. Los par´ametros de vuelta ser´an enviados mediante el m´etodo GET de HTTP, en una direcci´on de una p´agina web. 4.1. Servidor Web y XML El protocolo HTTP permite la transferencia de ficheros por lo que es posible volcar el contenido de las variables le´ıdas de la planta en tiempo real a un fichero XML [5]. De esta forma el contenido de este fichero puede ser accedido por cualquier programa, capaz de leer este tipo de documentos, en tiempo real. 4.2. Matlab, XML y GET Matlab utiliza la instrucci´on “xmlread” para leer un fichero XML, esta instrucci´on convierte un fichero XML dado por una direcci´on URL en un ”Document Object Model” que no es m´as que una plataforma-interfaz que permite a los programas y scripts acceder din´amicamente y actualizar el contenido, estructura y estilo de documentos. Estos valores una vez le´ıdos pueden almacenarse en variables internas y por tanto se puede dise˜nar un controlador de forma totalmente independiente de la manera en la que se obtienen los valores de los par´ametros necesarios. El contenido del documento XML a leer desde Matlab es como el mostrado a continuaci´on: <?xml version=1.0" encoding="UTF-8" ?> <tanks> <Variable name="Ctank.PIDs.Ref1">0,5</Variable> <Variable name="Ctank.PIDs.Ref2">0,5</Variable> <Variable name="Ctank.PIDs.Ref3">0,5</Variable> <Variable name="Ctank.PIDs.Ref4">0,5</Variable> <Variable name="Ref.variables.href1">0,5</Variable> <Variable name="Ref.variables.href2">0,5</Variable> <Variable name="Ctank.General.Bomba_1">0</Variable> <Variable name="Ctank.General.Bomba_2">0</Variable> </tanks> Para el env´ıo de valores sobre los par´ametros de la planta se hace el uso desde Matlab del m´etodo GET de HTTP por el que los valores se pasan en la propia direcci´on web que se llama, es decir, en la petici´on al servidor web los valores van expl´ıcitos en la direcci´on. Para ello Matlab utiliza la instrucci´on “web(url, ’-browser’)” donde url es la direcci´on que se le pide al servidor web junto con el nombre de la variable que se desea modificar junto con su nuevo valor. Un ejemplo de direcci´on url a enviar para modificar valores se muestra a continuaci´on: url=’http://nyquist.us.es/4tanks/RealTime4Tanks /XMLMatlab4tanks.aspx?name=Ctank.General.Bomba_1 &value=1’ Con esta direcci´on se intenta escribir en la variable “Ctank.General.Bomba 1” el valor 1, de ello se encargar´a el cliente OPC, que pone en funcionamiento la bomba 1 de la planta. 4.3. Cliente OPC El cliente OPC es un programa que ha de desarrollarse en el equipo accesible desde el exterior. En este caso particular su implementaci´on ha estado ligada a un desarrollo anterior de un control ActiveX. El ´unico requerimiento para desarrollar un cliente OPC de este tipo es utilizar un lenguaje de programaci´on compatible con el uso de controles ActiveX. En su desarrollo es necesario determinar la direcci´on y nombre del servidor al que se pretende conectar y una posterior conexi´on y a˜nadidura de los ´ıtems a los que se quiera acceder con posterioridad. 5. IMPLEMENTACI ´ ON DEL CONTROLADOR MPC El control predictivo basado en modelo es una de las pocas t´ecnicas de control que permite la incorporaci´on de restricciones en su formulaci´on. Adem´as este estrategia de control es v´alida para un amplio abanico de sistemas, tanto lineales como no lineales y ha tenido una importante repercusi´on en la industria. Un aspecto primordial en el dise˜no de un controlador es la garant´ıa de estabilidad del sistema en bucle cerrado. El establecimiento de unas condiciones generales garantiza la estabilidad, estas condiciones parten de una formulaci´on del controlador que incluye tanto el coste como la restricci´on terminal [2]. El desarrollo en Matlab de un controlador de este tipo se ha llevado a cabo bajo Simulink [9]. La planta de los cuatro tanques se ha modelado como un bloque (simulink block.png) en el que se ha implementado un MPC que trabaja con los par´ametros de la planta(“Simulink OPC.png”), dicho bloque contiene dos S-Functions para conectarse v´ıa OPC a la planta, “ReadOPC” y“WriteOPC”, que internamente llaman a dos funciones desarrolladas en Matlab, “xmlfread.m” y“xmlfwrite.m”, que son las encargadas realmente de la comunicaci´on via web con los par´ametros de la planta de los cuatro tanques. Una S-Function no es m´as que una descripci´on en lenguaje m´aquina de un sistema din´amico, pudi´endose escribir tanto en lenguaje Matlab como en lenguaje C. 5.1. xmlfread Esta funci´on desarrolada en Matlab, llama internamente a la funci´on “xmlread.m” [9] (funci´on de librer´ıa) con la direcci´on url que contiene el fichero “*.xml” a leer, o la direcci´on de una p´agina web “*.aspx” que genera un fichero XML, como es el caso desarrollado para el servidor web de la planta de los cuatro tanques, devolviendo un manejador DOM (“Document Object Model”). Con este manejador y utilizando c´odigo java se puede acceder a los diferentes nodos del fichero XML y en consecuencia acceder a los valores de las variables descritos en el mismo. Esta funci´on por tanto toma como par´ametro de entrada la variable de la que se quiere saber su valor y devuelve el valor de dicha variable o NULL en otro caso, teni´endose en cuenta que el valor que lee la funci´on del fichero XML es una cadena de caracteres y por tanto habr´a que convertir en un n´umero dicha cadena, para ello se utiliza la funci´on de librer´ıa “eval”. 5.2. xmlfwrite Esta funci´on desarrolada en Matlab, toma como par´ametros de entrada el valor de la variable a la que se quiere modificar su valor y el nuevo valor. Para ello, internamente existen dos funciones de librer´ıa que pueden realizar este intento de modificaci´on mediante el m´etodo GET de HTML, una de ellas es la funci´on “web” y otra la propia “xmlread”. Para disponer de la direcci´on de la p´agina a la que hay que llamar seguida del nombre de la variable y su valor, se dispone de una direcci´on base gen´erica la cual se modifica en funci´on del nombre y nuevo valor de la variable que se desee modificar, una vez que se tiene la direcci´on correcta se invoca una de las dos funciones nombradas con anterioridad. La funci´on “web”, toma la direcci´on y hace una llamada al navegaor predeterminado en el sistema operativo con el inconveniente de que la ventana del mismo permanece abierta desde su llamada hasta su cierre de manera manual. Con la instrucci´on “xmlread” tambi´en se puede hacer una llamada a la nueva direcci´on ya que en su funcionamiento normal, para obtener un fichero XML, ha de hacer tambi´en una petici´on a una p´agina web, simplemente que dar´a un mensaje de error ya que est´a p´agina llamada no devuelve ning´un fichero sino que solamente lee la direcci´on y de ah´ı saca el valor de la variable a modificar y su nuevo valor. Figura 5: Interconexion Matlab-OPC En la figura 5 se muestra todo lo anteriormente descrito, es decir, la interconexi´on entre Matlab, los bloques Simulink de lectura y escritura para con el OPC y las funciones desarrolladas de lecutra XML y env´ıo GET, con el cliente OPC. 6. CONCLUSIONES A lo largo de este art´ıculo se ha descrito un potente m´etodo para controlar y/o supervisar un proceso industrial, en este caso particularizado para la planta de los cuatro tanques, mediante el uso de una pasarela Matlab-HTTP-OPC. Para llevar a cabo el control o dise˜no de un controlador solo har´ıa falta por parte del usuario final poseer una conexi´on a internet (si se encuentra fuera de la red local en la que se encuentra enclavado el servidor OPC) y disponer de los bloques y funciones de comunicaci´on con el servidor OPC via web desarrolados en Matlab, el resto de procedimientos ser´ıan transparentes. Por tanto mediante la creaci´on de esta pasarela se ha globalizado el control remoto de la planta haciendo su funcionamiento independiente del lugar de trabajo y control. Estos procedimientos y desarrollos se prodr´ıan estandarizar para otros muchos y diferentes procesos industriales. Referencias [1] C.A. Bohus Aktan, B. Distance learning applied to control engineering laboratories. volume 39(3), pages 320–326. IEEE Transactions on Education, 1996. [2] E. F. Camacho and C. Bordons. Model Predictive Control. Springer, 2004. [3] Marcos D. Reguera P. Gonz´alez J.J. Blazquez L.F. Dom´ınguez, M. Connection pilot plant to the internet. IFACT Internet Based Control Education IBCE01, Madrid, Espa˜na., 2001. [4] S. Dormido. Control learning: present and future. 15th IFAC World Congress. Barcelona., 2002. [5] Michael Floyd. Building Web Sites with XML. Prentice Hall, 2000. [6] Daniel Gasa Fonollosa. Laboratorio remoto de autom´atica: plantas de variable discreta. XXIII Jornadas de Autom´atica, Leon. [7] J. Henry. Controls laboratory teaching via the world wide web. In proceedings of the ASEE Annual Conference. Washington, USA, Session 3513. [8] Kart Henrik Johansson. The quadruple-tank process. IEEE Transactions on Control Systems Technology, 34(8), 2000. [9] Pagina Web Oficial Matlab & Simulink. http://www.mathworks.com. [10] Pagina Web Oficial OPC Fundation. http://www.opcfoundation.org. View publication statsView publication stats