Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
II
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
CAMPUS MONTERREY
PROGRAMA DE GRADUADOS EN MECATRÓNICA Y
TECNOLOGÍAS DE INFORMACIÓN
Desarrollo de una interfaz de software para la implementación de
estrategias de control continuo
TESIS
PRESENTADA COMO REQUISITO PARCIAL PARA OBTENER EL GRADO ACADÉMICO DE:
MAESTRO EN CIENCIAS CON ESPECIALIDAD EN AUTOMATIZACIÓN
POR:
Tomás López Lauterio
MONTERREY, N.L. Diciembre, 2007
III
INSTITUTO TECNOLÓGICO DE ESTUDIOS SUPERIORES DE MONTERREY
DIVISIÓN DE MECATRÓNICA Y TECNOLOGÍAS DE INFORMACIÓN
PROGRAMA DE GRADUADOS EN MECATRÓNICA Y TECNOLOGÍAS DE INFORMACIÓN
Los miembros del comité de tesis recomendamos que la presente tesis del Ingeniero Tomás López Lauterio sea aceptada como requisito parcial para obtener el grado académico de Maestro en Ciencias con Especialidad en Automatización.
Comité de tesis:
______________________________ Dr. Rubén Morales Menéndez
Asesor
______________________________ Dr. Ricardo Ramírez Mendoza
Sinodal
______________________________ M.C. Federico Guedea Elizalde
Sinodal
_________________________________________ Dr. Graciano Dieck Assad
Director del Programa de Graduados en Mecatrónica y Tecnologías de Información Diciembre, 2007
IV
Desarrollo de una interfaz de software para la implementación de estrategias de control continuo
POR:
Tomás López Lauterio
TESIS
Presentada al Programa de Graduados en Mecatrónica y Tecnologías de Información
Este trabajo es requisito parcial para obtener el grado de Maestro
en Ciencias con Especialidad en Automatización
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
Diciembre, 2007
V
VI
Dedicatoria
A mis Padres Tomás y Lourdes, por brindarme su apoyo incondicional siempre, por ser
ejemplo de perseverancia y responsabilidad, por enseñarme la importancia que tiene la
familia en la vida de la persona.
A mi familia, en donde encuentro tranquilidad y refugio.
A mi esposa Verónica, por su cariño y apoyo, por que siempre estas ahí, por ser
inspiración.
A Dios… por otorgarme todo lo anterior.
VII
VIII
Reconocimientos
A todas aquellas personas que han sido parte de mi formación profesional y académica,
mi más sincero agradecimiento.
Al Dr. Rubén Morales Menéndez por ser ejemplo de profesionalismo y dedicación.
Gracias por su apoyo durante el desarrollo de este trabajo.
IX
X
ÍNDICE GENERAL INDICE DE CUADROS..................................................................................... XIV
INDICE DE FIGURAS....................................................................................... XVI
1. INTRODUCCIÓN..............................................................................................1
1.1 Motivación de la Investigación ......................................................................................................... 1
1.2 Descripción del problema ................................................................................................................. 2
1.3 Objetivo ............................................................................................................................................ 3
1.4 Trabajos Relacionados ..................................................................................................................... 4
1.5 Contribuciones.................................................................................................................................. 4
1.6 Organización del documento ............................................................................................................ 5
2. MARCO TEÓRICO ...........................................................................................6
2.1 Estado del Arte.................................................................................................................................. 9
2.2 Tecnologías de software disponibles para la comunicación entre sistemas.................................... 13 2.2.1 Evolución de las tecnologías de software para la comunicación entre procesos. .......................... 13 2.2.2 Tecnologías de software usadas en la automatización................................................................. 14 2.2.3 Otras técnicas usadas para el intercambio de datos entre aplicaciones. ........................................ 15
2.3 Software comercial.......................................................................................................................... 15 2.3.1 RSView™ [43].......................................................................................................................... 16 2.3.2 Matlab™ [37]............................................................................................................................ 16 2.3.3 LabWindows/CVI™ [39] .......................................................................................................... 17 2.3.4 LabView™ [38] ........................................................................................................................ 17 2.3.5 SIMATIC WinCC flexible™ [41].............................................................................................. 17 2.3.6 Agilent VEE™ [40]................................................................................................................... 18 2.3.7 Profit Suite 300™ [42] .............................................................................................................. 18
2.4 Comentarios .................................................................................................................................... 19
3. SISTEMA EXPERIMENTAL...........................................................................20
3.1 Instrumentación instalada .............................................................................................................. 22
3.2 Controlador PID ............................................................................................................................. 22
3.3 Proyectos realizados en la estación de monitoreo y control de nivel. ............................................ 23 3.3.1 Control retroalimentado............................................................................................................. 23 3.3.2 Control antealimentado/retroalimentado..................................................................................... 24 3.3.3 Control en cascada..................................................................................................................... 25
XI
4. METODOLOGÍA.............................................................................................26
4.1 Introducción.................................................................................................................................... 26
4.2 Metodología de diseño para una interfaz humano-máquina.......................................................... 26
4.3 Estructura completa de la interfaz. ................................................................................................ 27
4.3.1 Interfaz de comunicación de la HMI con el controlador ............................................................. 29
4.3.2 Diseño de la comunicación de la HMI con Matlab Simulink....................................................... 30
4.3.3 Metodología para el diseño del intérprete para la ejecución de controladores compilados en ANSI C.................................................................................................................................................. 33
5. RESULTADOS ...............................................................................................36
5.2 Interfaz de Monitoreo y Control..................................................................................................... 36
5.1 Diseño de experimentos .................................................................................................................. 37
5.2 Aplicaciones .................................................................................................................................... 38 5.2.1 Proyecto #1: Controlador difuso en tiempo real......................................................................... 38 5.2.2 Proyecto # 2: Estrategias de control en tiempo real.................................................................... 44 5.2.3 Proyecto # 3: Sintonía de Controladores PID en tiempo real ...................................................... 50 5.2.4 Proyecto # 4: Estrategias de control avanzadas.......................................................................... 53
5.3 Experiencias en el uso de la HMI ................................................................................................... 58
5.4 Comentario ..................................................................................................................................... 59
6. CONCLUSIONES ...........................................................................................61
6.1 Trabajos Futuro.............................................................................................................................. 63
BIBLIOGRAFÍA..................................................................................................65
APÉNDICES.......................................................................................................70
APÉNDICE A. IMPLEMENTACIÓN ..................................................................72
A.1 Pseudo código para la configuración y manejo de un puerto RS232 ............................................ 72
A.2 Descripción del Bloque de Transmisión/Recepción desde Matlab................................................ 73
APÉNDICE B. IMPLEMENTACIÓN DE UN CONTROLADOR PID EN ANSI C.............................................................................................................................74
APÉNDICE C. DESCRIPCIÓN DE LA INTERFAZ............................................76
XII
C.1 Pestaña de parámetros de comunicaciones................................................................................... 76
C.2 Pestaña de datos y monitoreo........................................................................................................ 77
C.3 Pestaña scripts compilados ........................................................................................................... 78
C.4 Pestaña conexión con Matlab™.................................................................................................... 79
APÉNDICE D. DISEÑO DEL CONTROLADOR DIFUSO .................................80
D.1 Desarrollo....................................................................................................................................... 80 D.1.1 Dinámica del proceso................................................................................................................ 80 D.1.2 Diseño del controlador.............................................................................................................. 80 D.1.2 Defusificación .......................................................................................................................... 83 D.1.3 Definición de rangos................................................................................................................. 83 D.1.4 Normalización .......................................................................................................................... 83 D.1.5 Implementación del controlador en Simulink™......................................................................... 83
APÉNDICE E. IMPLEMENTACIÓN DE ESTRATEGIAS DE CONTROL .........85
E.1 Resultados de identificación y sintonización.................................................................................. 85
E.2 Cálculo de la ganancia de antealimentación .................................................................................. 86
APÉNDICE F. DIVERSAS SINTONÍAS DE PID................................................87
F.1 Modelo del proceso......................................................................................................................... 87
F.1 Sintonía por especificaciones de robustez ...................................................................................... 87
F.2 Regulador lineal cuadrático (LQR)................................................................................................ 89
F.3 Sintonización vía extremum seeking .............................................................................................. 90
APÉNDICE G. ESTRATEGIAS DE CONTROL AVANZADAS .........................92
G.2 Internal Model Control.................................................................................................................. 92
G.3 Predictor de Smith ......................................................................................................................... 92
APÉNDICE F. MANUAL DE INSTALACIÓN ....................................................94
APÉNDICE H. MANUAL DE USO DE LA INTERFAZ ......................................96
H.1 Monitoreo de la estación de control de nivel ................................................................................ 96
H.2 Ejecución de scripts compilados. .................................................................................................. 97
H.3 Conexión con Matlab™ y Simulink™.......................................................................................... 97
XIII
XIV
Indice de cuadros Tabla 2.1 Tabla comparativa de trabajos de investigación..............................................12 Tabla 2.2 Tabla de características de RSView™............................................................16 Tabla 2.3 Tabla de características de Matlab™..............................................................16 Tabla 2.4 Tabla de características de LabWindows/CVI ................................................17 Tabla 2.5 Tabla de características de LabView™ ..........................................................17 Tabla 2.6 Tabla de características de Simatic WinCC flexible™....................................17 Tabla 2.7 Tabla de características de Agilent VEE™.....................................................18 Tabla 2.8 Tabla de características de Profit Suite 300™ ................................................18 Tabla 5.1 Proyectos realizados en la interfaz .................................................................37 Tabla 5.2 Pruebas realizadas al controlador difuso.........................................................39 Tabla 5.3 Controlador difuso ante cambios de nivel.......................................................41 Tabla 5.4 Controlador difuso ante perturbaciones en la entrada y salida.........................43 Tabla 5.5 Pruebas realizadas para estrategia en cascada y cascada con antealimentación.......................................................................................................................................45 Tabla 5.6 Estrategia en cascada antealimentado ante cambios en referencia. ..................48 Tabla 5.7 Estrategia cascada antealimentado ante perturbaciones en la entrada y salida. 49 Tabla 5.8 Respuesta del controlador PID con diferentes tipos de sintonía. .....................53 Tabla 5.9 Pruebas realizadas a la estrategia IMC y Predictor de Smith...........................56 Tabla 5.10 Resultados de desempeño IMC ....................................................................57 Tabla 5.11 Resultados de desempeño del Predictor de Smith .........................................58 Tabla D.1 Tabla de reglas del controlador difuso ...........................................................80 Tabla D.2 Reglas de salida de la variable Ganancia .......................................................82
XV
XVI
Indice de figuras Figura 2.1 Modelo Educativo del Tecnológico de Monterrey. ..........................................8 Figura 3.1 Estación de monitoreo y control de nivel. .....................................................20 Figura 3.2 Diagrama conceptual de la estación de monitor y control de nivel................21 Figura 3.3 Sistema de control retroalimentado. ..............................................................23 Figura 3.4 Sistema de control antealimentado/retroalimentado. .....................................24 Figura 3.5 Estrategia de control en cascada....................................................................25 Figura 4.1 Diagrama conceptual de la aplicación y sus conexiones. ...............................28 Figura 4.2 Esquema de comunicación entre el UDC 6300 y la HMI...............................29 Figura 4.3 Esquema de la implementación del servidor y cliente TCP/IP.......................31 Figura 4.4 Diagrama de flujo de un ciclo de ejecución de la HMI conectada a Simulink™.......................................................................................................................................32 Figura 4.5 Diagrama de ejecución de un programa compilado en ANSI C. ....................34 Figura 5.1 Pantalla principal de la interfaz. ....................................................................37 Figura 5.2 Lazo de control, y situación del controlador basado en lógica difusa. ............38 Figura 5.3 Diagrama de Bloques del controlador Difuso................................................40 Figura 5.4 Respuesta ante cambio de nivel en el tanque de 30% a 50%..........................41 Figura 5.5 Respuesta ante cambio de nivel en el tanque de 50% a 30%..........................42 Figura 5.6 Respuesta ante una perturbación en el flujo de entrada..................................43 Figura 5.7 Respuesta ante una perturbación el flujo de salida.........................................43 Figura 5.8 Estrategia de control en cascada con antealimentación. .................................45 Figura 5.9 Diagrama de Bloques del controlador cascada con antealimentación.............46 Figura 5.10 Respuesta de la estrategia en cascada para servo control. ............................47 Figura 5.11 Respuesta de la estrategia en cascada con antealimentación para servo control. ..........................................................................................................................48 Figura 5.12 Respuesta de la estrategia cascada ante perturbaciones en la entrada. ..........49 Figura 5.13 Respuesta de la estrategia cascada con antealimentación ante perturbaciones en la salida. ...................................................................................................................50 Figura 5.14 Implementación en Simulink del controlador PID.......................................51 Figura 5.15 Respuesta del PID con sintonización mediante parámetros de robustez. ......52 Figura 5.16 Respuesta del PID como regulador lineal cuadrático. ..................................52 Figura 5.17 Respuesta del PID con sintonización mediante Extremum Seeking. ............53 Figura 5.18 Diagrama de bloques en Simulink de la estrategia IMC. .............................54 Figura 5.19 Diagrama de bloques en Simulink™ del Predictor de Smith. ......................55 Figura 5.20 Respuesta de la estrategia IMC para servo control y control regulatorio. .....56 Figura 5.21 Respuesta del Predictor de Smith para cambios en referencia......................57 Figura A.1 Bloque principal insertado en las simulaciones de Matlab y su correspondencia en el proceso. ......................................................................................73 Figura C.1 Pestaña de parámetros de comunicaciones....................................................76 Figura C.2 Pestaña de datos y monitoreo. ......................................................................77 Figura C.3 Pestaña de ejecución de scripts compilados en ANSI C. ...............................78 Figura C.4 Pestaña de conexión a Matlab. .....................................................................79 Figura D.1 Función de Membresía del Error. .................................................................81 Figura D.2 Función de Membresía del Derivativo del Error...........................................81
Figura D.3 Función de Membresía de la Manipulación. .................................................82 Figura D.4 Función de membresía de la salida Ganancia. ..............................................82 Figura D.5 Diagrama de Bloques del controlador Difuso. ..............................................84 Figura E.1 Diagrama de bloques de la estrategia en cascada en Simulink.......................85 Figura E.2 Diagrama de Bloques del controlador cascada con antealimentación. ...........86 Figura F.1 Diagrama de bloques para el controlador PID basado en especificaciones de robustez.........................................................................................................................87 Figura F.2 Diagrama de Bloques del controlador PID con parámetros de robustez.........88 Figura F.3 Diagrama de Bloques del controlador PID con sintonización LQR o ES.......90 Figura G.1 Estructura del Predictor de Smith.................................................................92 Figura H.1 Ajuste del tiempo de muestreo en el RTBlock..............................................98 Figura H.2 Configuración de los parámetros del solver en Simulink™ ..........................99
XVII
XVIII
1
Capítulo 1
1. Introducción
El crecimiento acelerado de la industria con requerimientos de rápida colocación de
productos en los mercados, aunado a una gran competencia global, demanda una mejor
integración en el diseño y manufactura de productos. La industria moderna debe tener
las herramientas, tecnologías e infraestructura adecuadas que permita la automatización
de sus procesos de diseño y producción de principio a fin, de tal manera que esto se
pueda convertir en una ventaja competitiva.
Corripio [24] menciona que la automatización de procesos:
1. Permite incrementar los niveles de seguridad para los empleados.
2. Protege al medio ambiente.
3. Minimiza el desperdicio.
4. Protege las inversiones en equipos.
5. Mejora la calidad del producto a bajo costo y con el mejor rendimiento.
Las empresas que han implementando sistemas automatizados han logrado minimizar
y maximizar los puntos mencionados, reflejándose en ahorros importantes, que han
permitido a dichas empresas seguir siendo competitivas.
1.1 Motivación de la Investigación
Actualmente los sistemas de control son una combinación de computadoras,
interfaz gráfica, sistemas de adquisición de datos y redes de computadoras que
interactúan con los elementos convencionales de los sistemas de control, sensores y
actuadores. Los estudiantes de licenciatura y postgrado del campo de ingeniería se
enfrentan a esta realidad al momento de su graduación, y muchas de las veces no cuentan
con conocimientos previos o experiencia en dichas áreas.
En la mayoría de los cursos de teoría de control se trata de cubrir una amplia gama
de temas y software de simulación es usado como herramienta para mostrar los aspectos
prácticos de la teoría. Desafortunadamente en muchas de las simulaciones, algunas
situaciones reales como limitaciones físicas de los procesos, saturaciones o tiempos de
2
muestreo no son modeladas adecuadamente o son ignoradas totalmente, considerando
solamente situaciones ideales.
En algunos cursos se ha tratado de incorporar la experiencia real con sistemas de
control instalados en laboratorios experimentales, pero las complicaciones de tal enfoque
limitan el tiempo dedicado a la parte teórica, además de que es un alto costo para las
instituciones de enseñanza.
En diversos foros se ha mencionado que la enseñanza de la teoría de control es una de
las actividades centrales para lograr mayor impacto tecnológico en el futuro [1]. Dentro
de las recomendaciones más recurrentes se puede encontrar que:
1. Los materiales y temas relacionados a la teoría de control deben ser accesibles a
un mayor número de practicantes [1].
2. Herramientas basadas en software deben ser provistas a los estudiantes [2].
3. Proveer experiencia práctica para generar interés en los alumnos [2].
4. Hacer de los proyectos experimentales una parte integral en la enseñanza del
control automático [2].
Por estas razones las universidades y centros de investigación, han dirigido en los
últimos años recursos a la creación de nuevos esquemas de enseñanza-aprendizaje, con
resultados exitosos.
La automatización de procesos es solo una de las áreas de oportunidad para la
optimización del esquema enseñanza-aprendizaje, pero muchas otras disciplinas podrían
verse beneficiadas por este tipo de enfoques.
1.2 Descripción del problema Existe la necesidad de transferir de una manera rápida y eficiente conocimientos
prácticos y teóricos a los estudiantes de ingeniería, sin embargo en algunos de los
enfoques usados del proceso enseñanza-aprendizaje, se invierte una gran cantidad de
tiempo y esfuerzo por el alumno en la construcción de los sistemas con los que se
pretende experimentar, de tal manera que una gran cantidad de detalles de implantación
adquieren relevancia y su resolución generalmente va más allá de los conceptos
tradicionalmente transmitidos en el curso, limitando el tiempo a dedicar a los conceptos
3
centrales de la materia. El resultado para el alumno es un aprendizaje superficial y/o
muy teórico.
En el Tecnológico de Monterrey existen avances significativos de esquemas para la
enseñanza y práctica del control automático, un caso de estudio son las estaciones de
monitoreo y control de nivel [3]. Sin embargo, el constante avance tecnológico y la
incorporación de nuevos temas a los planes de estudio han hecho que el esquema actual
sea insuficiente y/o requiera de una actualización acelerada.
1.3 Objetivo
El objetivo principal de este trabajo es diseñar, implementar y validar una interfaz
humano-máquina que sea capaz de:
1. Minimizar el diseño de cualquier interfaz de hardware ó software por parte
del alumno.
2. Proveer una herramienta al alumno que permita el diseño e implementación
de una forma intuitiva y rápida.
3. Mejorar la didáctica en alcance y tiempo.
4. Transparente y transportable.
Desde el punto de vista técnico la interfaz será capaz de conectarse a los elementos
de la estación de monitoreo y control de nivel con capacidad de transmitir y recibir
información. Dicha interfaz contará a su vez con otra interfaz capaz de recibir y mandar
datos a software comercial de simulación como Matlab™. También se podrá monitorear
y cambiar parámetros en el controlador industrial instalado, almacenamiento de datos del
monitoreo y ejecución de tareas de secuencias compiladas en ANSI C.
Matlab™ es un estándar en ingeniería para la mayoría de las instituciones de
investigación y universidades, además de que la mayoría de los estudiantes están
familiarizados con Matlab™. Matlab™ es un programa de manipulación numérica
computacional, que cuenta con su propio lenguaje de programación, permite la fácil
manipulación de matrices, el graficado de funciones y datos, implementación de
algoritmos y la creación de interfaz de usuario La capacidad de interconectar Matlab™
4
con información del proceso real ofrece grandes oportunidades para la optimización del
proceso enseñanza-aprendizaje
1.4 Trabajos Relacionados
Varios trabajos con el mismo propósito se han desarrollado usando diversas
tecnologías y software. Algunos de ellos son basados en simulaciones y otros
interactúan con procesos reales. Se puede observar que muchos de estos trabajos usan
Matlab™ y Simulink™, algunos de ellos están basados en microcontroladores o
procesadores digitales de señales que se apegan mas a un tiempo real “duro” (Hard-Real-
Time), el término se refiere a los sistemas operativos que se penalizan si el tiempo de
muestreo no se cumple, y otros basados en tiempo real “suave” (Soft-Real-Time), en el
que sistema operativo puede variar el tiempo de muestreo sin penalización alguna. En los
últimos años se ha hecho común el uso de aplicaciones de tiempo real “suave”, ya que
implementar un sistema de tiempo real “duro” generalmente es más costoso, y los
sistemas operativos de tiempo real “suave”, como Windows™ de Microsoft™, se han
hecho más confiables. Esta tendencia también es posible corroborarla en los últimos
trabajos desarrollados en el tema.
Simulink™ es una aplicación que se ejecuta dentro del ambiente de desarrollo de
Matlab™, muy utilizado en la investigación y universidades. Simulink™ es una
herramienta para el modelado, simulación y análisis de sistemas dinámicos, su interfaz de
usuario está completamente basada en el arrastre e interconexión de bloques, así que el
diseño se realiza de una manera completamente grafica.
En el capítulo dos se presenta un estudio detallado de algunos autores que han
desarrollado esquemas de enseñanza-aprendizaje basados en diferentes plataformas y
modelos.
1.5 Contribuciones
El presente trabajo hace más fácil la práctica real de los temas relacionados al
control automático de procesos, permite a los estudiantes aprender en base a la
observación de fenómenos reales de una manera rápida y enfocada, facilita la práctica de
5
conceptos tradicionalmente compartidos de manera teórica, motiva al estudiante a
profundizar, ahorra una gran cantidad de tiempo ya que soslaya el desarrollo de
programas o circuitos, permite la rápida implementación de diversos esquemas de
control como control difuso, control cascada, control antealimentado, etc.
1.6 Organización del documento
En el capítulo dos se hace un breve análisis de trabajos relacionados a la práctica de
la enseñanza experimental del control automático de procesos, además se presenta
información de software comercial usado en la enseñanza de la automatización e
información acerca de las tecnologías de software para el intercambio de datos.
El capítulo tres describe la estación de monitoreo y control de nivel. El controlador
instalado en la estación de monitoreo y control se describe en este capítulo y algunas de
sus capacidades.
En el capítulo cuatro se describe a detalle el diseño de la interfaz de usuario y de las
tecnologías de software utilizadas. La estrategia de comunicaciones con el controlador es
descrita, así como la transferencia de datos entre Matlab™ y la aplicación principal. Se
presenta una técnica para la ejecución de librerías compiladas en ANSI C por otra
aplicación.
En el capítulo cinco se describe y presenta el resultado de esta investigación, además
de la implementación, desarrollo y resultados experimentales de varios proyectos de
control.
En el capitulo seis se presentan las conclusiones de la investigación, también se
proponen algunos desarrollos y mejoras a la interfaz diseñada.
En los apéndices se presentan detalles técnicos de implementación de la interfaz
diseñada, los detalles de implementación de los proyectos experimentales, y los manuales
para el usuario.
6
Capítulo 2
2. Marco Teórico
En el Tecnológico de Monterrey los cursos de ingeniería son guiados mediante
tres ordenanzas: 1) La Misión 2015 del Tecnológico de Monterrey, 2) Los criterios del
Consejo para la Acreditación de programas en Ingeniería y Tecnología (Accreditation
Board of Enginnering and Technology, ABET), y 3) Los criterios de la Asociación de
Escuelas y Colegios del Sur (Southern Association of Colleges and Schools SACS).
La Misión 2015 del Tecnológico de Monterrey, hace énfasis en la creación de
conocimiento, innovación, desarrollo tecnológico y la creación de negocios sustentables.
Educación de alta calidad y estudiantes competitivos a nivel internacional son de vital
importancia. Al mismo tiempo la misión advierte su compromiso con el progreso de
México en diversos aspectos tales como el educativo, el mejoramiento político y social,
además del crecimiento económico.
SACS es una organización regional a cargo de certificar la calidad de los
programas académicos en la parte sur de los Estados Unidos de América y Latino
América [54]. Las universidades y colegios acreditados por SACS tienen recursos de alta
calidad para la educación, estándares educativos, programas y servicios. Los comités de
SACS evalúan de acuerdo a cuatro criterios: principios de acreditación, requerimientos
centrales, estándares generales y requerimientos gubernamentales. Esta investigación
se enfoca principalmente a los “estándares generales” que plantea requerimientos en tres
áreas: (1) Misión institucional, dirección y efectividad, (2) Programas y (3) Recursos,
estos estándares aseguran buenas prácticas educativas y establecen un nivel inicial de
realización. Aunque la acreditación por SACS implica muchos más aspectos del sistema
Tecnológico de Monterrey, a través de esta investigación se harán dos contribuciones a
los “estándares generales”, (1) El Tecnológico de Monterrey hace uso de tecnología que
incrementa la efectividad del aprendizaje de los estudiantes, de tal forma que se cumplen
los objetivos académicos, y además se asegura que los estudiantes tienen el acceso y el
entrenamiento adecuado para el uso de tecnologías. (2) La institución provee
7
instalaciones, servicios y recursos de aprendizaje/información que son apropiados para
mantener la enseñanza, investigación y misión.
ABET es una organización que certifica la calidad de los programas académicos
relacionados a las ciencias computacionales, ingeniería y tecnología [53]. Uno de los
criterios de efectividad de ABET para el periodo comprendido entre los años 2006-2007,
está destinado a asegurar y promover la mejora sistemática en la calidad de la enseñanza
en la ingeniería que satisfaga las necesidades de industrias/universidades en un ambiente
dinámico y competitivo. El Tecnológico de Monterrey es acreditado por ABET desde
1993 y acreditado nuevamente en Octubre del 2007. En esta investigación se cubre el
criterio 3 de ABET, que establece lo que se espera de los estudiantes y de lo que deben
ser capaces al momento de su graduación. En esta investigación se hace énfasis en el
entendimiento de los aspectos prácticos/reales de la ingeniería por parte de los
estudiantes.
Con las ordenanzas descritas se da forma al Modelo Educativo del Tecnológico de
Monterrey [55]. El modelo incluye un conjunto de componentes de aprendizaje en los
cuales la institución cumple sus metas educativas.
En el modelo educativo del Tecnológico de Monterrey los estudiantes comparten
la responsabilidad en la enseñanza-aprendizaje con sus profesores. Los estudiantes son
responsables de la construcción de conocimiento a partir de la experiencia personal, con
la guía de profesores. Durante el proceso los estudiantes aprenden a trabajar de forma
cooperativa en equipos de trabajo, esto permite la retroalimentación y la toma de
decisiones. Al mismo tiempo, los profesores del Tecnológico de Monterrey se basan en
técnicas que enriquecen la educación curricular del estudiante en base a práctica y
profesionalización adquirida a través del trabajo en equipo y participación. La figura 2.1
muestra un esquema del modelo.
Algunas de las técnicas usadas son por el modelo educativo del Tecnológico de
Monterrey: 1) Aprendizaje activo, 2) Aprendizaje cooperativo y 3) El aprendizaje basado
en la resolución de problemas.
En el aprendizaje activo el estudiante es responsable de la construcción del
conocimiento, en este esquema el estudiante es motivado a adquirir y generar el
conocimiento, también es responsable de la forma en cómo la información se estructura.
8
Figura 2.1 Modelo Educativo del Tecnológico de Monterrey.
En el modelo educativo del Tecnológico de Monterrey el estudiante ocupa un papel preponderante en el proceso de enseñanza-aprendizaje.
En el aprendizaje cooperativo el conocimiento es adquirido por interacción social,
los estudiantes son responsables de monitorear y proveer la retroalimentación adecuada a
los otros estudiantes.
En el aprendizaje basado en la resolución de problemas los estudiantes son
confrontados a desafíos intelectuales y ellos son responsables por la adquisición y la
reestructuración del conocimiento.
9
El modelo educativo del Tecnológico de Monterrey también incorpora los últimos
adelantos disponibles en tecnologías de información y comunicaciones, lo anterior
establece una plataforma en la cual todos los recursos del curso están disponibles. Esto
permite al estudiante explorar diferentes opciones de aprendizajes, tales como la asesoría
de otros estudiantes, otros profesores, acceso a bases de datos o fuentes de aprendizaje.
El modelo educativo del Tecnológico de Monterrey obliga la adquisición o
creación de herramientas que permitan a los alumnos poner en práctica de manera rápida
y eficiente todos los aspectos del modelo.
En la siguiente sección se resumen los resultados de algunas investigaciones
usando diferentes esquemas de enseñanza-aprendizaje similares al modelo educativo del
Tecnológico de Monterrey (y algunas de sus tecnologías) en el área de control
automático.
2.1 Estado del Arte
Mansour [6] hace uso intensivo de la simulación en computadora mediante la
emulación de escenarios reales donde la automatización es necesaria, como el control de
tráfico, sistemas de calefacción y ventilación, péndulo invertido, etc. También hace uso
de escenarios reales como el de una celda de manufactura y el de redes de distribución de
energía.
Lim et al. [9] presentan una opción en la cual un microcontrolador se encarga de
hacer el muestreo en tiempo real, dicho microcontrolador tiene implementado un
controlador R-S-T. En este caso el estudiante puede hacer una adquisición de datos con
el propósito de hacer una identificación del sistema, enseguida se calculan los valores de
las matrices R-S-T y se define el tiempo de muestreo, una vez listos estos parámetros son
enviados al microcontrolador a través de una conexión RS-232. También es posible
monitorear el sistema mediante una interfaz de usuario en una computadora.
Etxebarria et al. [8] muestran un sistema que expone a los estudiantes a los
detalles de la implementación de sistemas de control. El sistema está basado en el
“toolbox RealTime Workshop™” de Mathworks™, un procesador digital de señales con
un convertidor análogo-digital y un digital-análogo, recibe el “firmware” generado por
10
Simulink™ y el “RTWorkshop™”. Una vez instalado el “firmware” el sistema funciona
de manera autónoma en tiempo real.
Irawan [27] presenta una página de Internet donde se puede acceder a un sistema
de tanques acoplados. La página de Internet organiza información acerca de
identificación de sistemas, diseño y experimentación de sistemas de control. Ofrece
también las herramientas necesarias para simular sistemas de control de la misma manera
que acceso al sistema de tanques acoplados.
Hough et al. [5] proponen un sitio electrónico, en el cual se provee enseñanza
interactiva para estudiantes de licenciatura. El sitio provee tres formas de enseñanza las
cuales pueden ser tomadas por el estudiante en su tiempo disponible y a su propio ritmo,
el primer módulo se compone de preguntas y respuestas, el segundo abarca temas más
complejos y se explican de forma tutorada, el tercer módulo explica el material de
referencia sobre instrumentación usada en sistemas de control.
Bachnak [10] describe un laboratorio basado en equipo de adquisición de datos de
National Instruments y Matlab. Los sistemas de adquisición de datos son usados con el
“toolbox” de Matlab™ de adquisición de datos para monitorear procesos de nivel flujo y
un sistema de calentamiento de aire.
Saco et al [35] describen un laboratorio que hace uso de las utilerías de
“RTWorkshop™” de Mathworks™, el sistema interactúa con dos tipos de hardware, el
primero es una tarjeta de adquisición de datos de National Instruments™, el segundo es
un procesador digital de señales de Texas Instruments™, ambos estimulan un sistema de
tanques de regulación de nivel. Al estudiante se le provee una librería con bloques para
usarse en Simulink™. Simulink™ genera el código que se usa ya sea en la tarjeta de
adquisición de datos o el procesador digital de señales.
Cooper et al. [7] diseñaron el paquete computacional “Control Station™” donde
se pueden construir y simular sistemas dinámicos, sintonizar controladores, e
implementar estrategias avanzadas de control, etc.
Zhantg et al [31] describen una herramienta llamada Netlab. Netlab es un
laboratorio remoto, el cual interactúa con dispositivos reales como sistemas de corriente
directa, un sistema de péndulo invertido, un sistema de triple tanque, etc. El sistema
puede ejecutar experimentos de control clásico, respuesta a la frecuencia, tanques
11
acoplados, etc. El sistema es capaz de ejecutar algoritmos compilados en ANSI C, en la
forma de DLLs. Otra de las características importantes es que el software proporciona en
todo momento una retroalimentación visual por medio de una cámara monitoreando los
sistemas en tiempo real.
Burchett [25] describe un experimento para alumnos de licenciatura para la
identificación de sistemas. El experimento está basado en un sistema masa-resorte-
amortiguador construido por la compañía Educational Control Products™ [26]. El
experimento refuerza el entendimiento de la respuesta a la frecuencia además de la
identificación de sistemas.
Viedma et al. [28] presentan un sistema basado en TCP/IP. En este sistema, la
computadora de un usuario conectado, puede estar ejecutando cualquier sistema
operativo, y es capaz de conectarse a un servidor que provee herramientas de análisis y
diseño. El servidor tiene conectada una tarjeta de adquisición de datos tipo LabJack™ y
un analizador de señales, que estimulan y obtienen datos de un filtro implementado con
OPAMS, simulando un sistema de segundo orden.
Davari [29] describe un laboratorio basado en hardware y software de la
compañía Educational Control Products™, hace uso de los sistemas de control de torsión
[30] y de control rectilinial [26], controlados por el software de la compañía ECP
Executive Program™, que permite la implementación de controladores PI, PID, etc., de
la misma manera permite la obtención de gráficas y almacenamiento de datos.
Coito et al [32] presentan una implementación en LabView™, es un sistema
remoto que permite a un usuario conectarse a dos experimentos diferentes, un sistema de
control de nivel y sistema de control de temperatura. El sistema puede ser controlado por
un solo usuario a la vez, pero es posible que otros usuarios puedan observar y adquirir
datos en tiempo real. El sistema cuenta con un controlador PID, pero es posible ejecutar
pequeños programas en Matlab™.
Valera et al [33] describen Matlab™ Web Server que puede usarse para
laboratorios remotos, de la misma manera describen WinCon™ [34], que puede ejecutar
código generado por Simulink™ en tiempo real en una computadora remota. Se
describen un laboratorio virtual usando Matlab™ Web Server que interactúa con un
servomotor construido por Feeback Instruments Limited™, el segundo experimento está
12
construido usando WinCon™ e interactúa con una mesa vibratoria construida por
Advantech™.
Selmer et al [36] describen un laboratorio que cuenta con un intercambiador de
calor, la adquisición de datos se realiza a través de una unidad del tipo USB. LabView™
es usado para procesar las señales adquiridas y también para transmitirlas en Internet.
Varios usuarios pueden conectarse al mismo tiempo e interactuar en línea con el tutor o
entre ellos mismos. El usuario puede ajustar parámetros de un controlador PID
implementado en la aplicación. Tabla 2.1 Tabla comparativa de trabajos de investigación
Autor Año de publicación
Monitoreo y control en tiempo
real
Uso de Matlab o
Simulink
Conexión remota
SOFT Real-Time, HARD
Real-Time
Mansour [6] 1989 No No Si SOFT Lim et al. [9] 1991 Si No No HARD
Etxebarria et al. [8] 1998 Si Si No HARD Irawan [27] 2001 Si No Si SOFT
Hough et al. [5] 2002 No No Si SOFT Bachnak [10] 2002 Si Si No SOFT Saco et al [35] 2002 Si Si No HARD
Cooper et al. [7] 2003 No No No SOFT Zhantg et al [31] 2004 Si No Si SOFT
Burchett [25] 2005 Si No No SOFT Viedma et al. [28] 2005 Si No Si SOFT
Davari [29] 2005 Si No No SOFT Coito et al [32] 2005 Si Si Si SOFT Valera et al [33] 2005 Si Si Si SOFT Selmer et al [36] 2005 Si No Si SOFT
Esta investigación [56] 2007 Si Si No SOFT
La tabla 2.1 hace un análisis comparativo de las técnicas usadas por los diferentes
autores mencionados.
Esta investigación presenta una alternativa de muy bajo costo para el uso de
Matlab™ y Simulink™ para aplicaciones de monitoreo y control en tiempo real “suave”,
además de que ofrece la capacidad de usar un mayor número de “toolboxes de
Matlab™”, a un nivel de complejidad mínimo.
13
2.2 Tecnologías de software disponibles para la comunicación entre sistemas.
Debido al gran número de proveedores de software y la necesidad de intercambiar
datos entre aplicaciones, surgió la necesidad de estandarizar las tecnologías para la
interconexión entre procesos de datos. Esto ha hecho posible la aparición de soluciones
computacionales sin precedentes para los diversos campos de la ciencia. Sin embargo, el
vertiginoso ritmo al cual evolucionaron dichas tecnologías en ocasiones genera
confusiones que hacen pensar que existen nuevas y diferentes tecnologías cuando en
realidad son sólo evoluciones.
Dado que la intención es diseñar un sistema que se conecte a un proceso real e
intercambie datos entre diferentes aplicaciones, como Matlab™ y Simulink™, se hace
necesario hacer una investigación sobre técnicas y métodos para el intercambio de datos,
a continuación se hace un ejercicio cronológico de las diferentes tecnologías y su
evolución basadas en las distintas versiones de Microsoft™ Windows™.
2.2.1 Evolución de las tecnologías de software para la comunicación entre procesos.
Uno de los primeros métodos para la comunicación entre aplicaciones/procesos en
Windows fue la tecnología de Intercambio Dinámico de Datos (Dynamic Data Exchange)
mejor conocida como DDE por sus siglas en inglés. Fue lanzada en 1987 en la versión
de Windows™ 2.0 [15]. La tecnología permitía el envió y la recepción en lo que se
puede denominar “conversación” entre las aplicaciones.
La siguiente tecnología lanzada por Microsoft fue OLE™ (Object Linking and
Embedding), que fue introducida en Windows 3.0™ en 1990. La tecnología OLE™ es
una evolución de DDE [12]. La principal diferencia entre DDE y OLE™, es que la
primera sólo permite un intercambio limitado de datos, OLE ya mantiene un vínculo
activo entre las dos aplicaciones, empotrando un documento en el otro.
Posterior al surgimiento de OLE, en 1996 Microsoft™ lanzó al mercado los
componentes ActiveX™. ActiveX™ es una extensión de OLE™ pero con capacidades
de red [14].
14
En 1993 Microsoft™ lanzó al mercado COM™ (Component Object Model), sin
embargo su uso generalizado fue hasta 1997. Se puede decir que COM™ engloba todas
las tecnologías anteriores, de tal forma que encapsula todas sus características. El
objetivo de COM™ es lograr poner en una forma general cualquier objeto de tal manera
que pueda ser utilizado en cualquier ambiente diferente al que fue creado [13]. El uso de
la tecnología se puede ver cuando es posible abrir el mismo contenido de una página
electrónica en sistemas operativos diversos como Windows™, Linux, Mac™ OS, etc.
2.2.2 Tecnologías de software usadas en la automatización.
En la automatización de procesos existen muchas marcas diferentes de
dispositivos, protocolos y estándares de redes industriales. Como resultado cada
proveedor es responsable de la conectividad con aplicaciones con otros proveedores, la
situación se complica dada la constante evolución y aparición de dispositivos, por lo tanto
constantes actualizaciones y mantenimiento de software es requerido.
Para solucionar este problema en 1996 se conjuntaron varias compañías líderes en
la automatización de procesos, con la finalidad de desarrollar una primera especificación
y plan de trabajo, tales fueron: Fisher-Rosemunt, Rockewell Software, Opto 22,
Intellution, and Intuitive Technology. Dado que un gran número de clientes de dichas
compañías usaban los sistemas operativos de Microsoft™, la compañía líder mundial en
sistemas operativos fue incluida. Como resultado se conformó la OPC™ Foundation
[16].
OPC™ (OLE™ for process control) se basó netamente en los objetos tipo
COM™ [13], que es un conjunto de APIs (Application Program Interface) donde para
mover datos de un proceso a otro no es necesario hacer una implementación de cada una
de las funcionalidades de cada producto, específicamente para realizar dicha tarea sólo se
hace uso de las funciones del conjunto estándar. En la implementación final cada
fabricante, participante del consorcio, empotra en sus aplicaciones la interfaz estándar
para la interconexión entre procesos, de tal manera que todos los fabricantes pueden
compartir datos ya que las estructuras y métodos son comunes a todos ellos.
15
2.2.3 Otras técnicas usadas para el intercambio de datos entre aplicaciones.
Una técnica muy comúnmente aplicada para el intercambio de datos entre
aplicaciones por su fácil y flexible implementación, es hacer uso de sockets de
Windows™ (Winsock™).
Winsock™ es una especificación técnica que detalla cómo las aplicaciones
ejecutan los servicios de red, particularmente TCP/IP. La especificación define una
interfaz estándar entre un cliente TCP/IP y un servidor TCP/IP. Se considera uno de los
bloques más importantes de los sistemas operativos Windows™. El nombre de “sockets”
se deriva de la aplicación de UNIX Berkeley Sockets, que constituía también un paquete
para la transmisión de datos, pero en este caso no importaba el protocolo de transmisión.
La version 1.1 de Winsock™, fue lanzada en 1993 [17].
En algunas aplicaciones es posible implementar una conexión del tipo
retroalimentada “loopback”, la dirección “loopback” para cualquier computadora se
define como 127.0.0.1 [18], esto de acuerdo a la Internet Engineering Task Force (IETF)
en su memorando RFC3330. De esta manera una aplicación funge como servidor y otra
como cliente y ambas aplicaciones se comunican entre sí, como si estuvieran escribiendo
a un archivo físico de alta velocidad.
2.3 Software comercial
Existe un gran número de software de origen comercial que permiten la
implementación de sistemas integrados de adquisición, procesamiento y análisis de datos.
Cada uno de ellos se diferencia por las tecnologías utilizadas, las herramientas de análisis
usadas y la facilidad para la construcción de las mismas. A continuación se hace un
análisis comparativo:
16
2.3.1 RSView™ [43] Tabla 2.2 Tabla de características de RSView™
País de Origen/Fabricante Descripción Tipo de Programación Interfases de Adquisición de Datos
Estados Unidos, Rockwell Automation
Software para la creación de HMI (Human Machine Interfases)
Permite la creación de interfases de usuario por medio de arrastre de bloques.
Ofrece conectividad para TCP/IP, RS232, drivers de distintos proveedores y OPC
Tiempo Real Herramientas de Análisis Tipo de Programa Costo
Es capaz de crear programas con aceptable funcionalidad en tiempo real.
Ofrece la ejecución de scripts hechos en Visual Basic, así como la ejecución de recetas.
Un programa de RunTime se requiere para su ejecución. Alto
2.3.2 Matlab™ [37] Tabla 2.3 Tabla de características de Matlab™
País de Origen/Fabricante Descripción Tipo de Programación Interfases de Adquisición de Datos
Estados Unidos, Mathworks
Lenguaje de alto nivel que contiene una interfaz interactiva que permite la ejecución de programas computacionales
Ofrece una interfase grafica llamada Simulink basada en el arrastre de bloques. Ejecución de tipo batch en el cual se puede programar de acuerdo a un lenguaje desarrollado por Mathworks. Además de soporte para la ejecución de archivos escritos en C/C++.
Ofrece librerías para el control de algunas tarjetas de adquisición datos (entradas-salidas analógicas, entradas-salidas discretas) de proveedores como National Instruments, Advantech, Measurement Computing, tarjetas de sonido y puertos paralelos compatibles con Microsoft Windows. Otra librería también ofrece soporte para la adquisición de datos de instrumentación como osciloscopios y generadores de funciones. Es posible también la adquisición de imágenes con soporte a diversas tarjetas de adquisición de imágenes. También es posible conectarse a servidores OPC, para leer y escribir datos a dispositivos que cumplen con el estándar OPC.
Tiempo Real Herramientas de Análisis Tipo de Programa Costo
Ofrece librerías para la ejecución en tiempo real en Simulink a través del modulo Real Time WorkShop.
Masivo cuenta con librerías de Optimización, Matemática Simbólica, Diferenciación Parcial, Algoritmos Genéticos, Estadística, Redes Neuronales, Ajuste de Curvas, Spline, Sistemas de Control, Identificación de Sistemas, Lógica Difusa, Control Robusto, Control Predictivo, Procesamiento de Señales, Comunicaciones, Diseño de Filtros, Radio Frecuencia, Procesamiento de Imágenes, Bioinformática, SimBiology, Análisis Financiero
Algunas librerías pueden generar código fuente que puede ser usado en microcontroladores y procesadores digitales de señales. También puede generar código fuente para ser compilado en paquetes comerciales como visual C++.
Alto. En su funcionalidad básica el costo puede ser aceptable y existen descuentos para uso académico, desafortunadamente las opciones de adquisición de datos se toman como herramientas de uso industrial y su costo es alto.
17
2.3.3 LabWindows/CVI™ [39] Tabla 2.4 Tabla de características de LabWindows/CVI™
País de Origen/Fabricante Descripción Tipo de Programación Interfases de Adquisición de Datos
Estados Unidos, National Instruments
Lenguaje de desarrollo para la creación de pruebas, mediciones y aplicaciones de control.
Interfase de programación basada en ANSI C, generación de interfases de usuario basada en el principio de arrastre de bloques.
Ofrece librerías para el control de todas su gama de tarjetas de adquisición de datos, así como soporte para los estándares VXI, PXI, VISA, GPIB, OPC, FieldPoint, Visión System
Tiempo Real Herramientas de Análisis Tipo de Programa Costo
Es capaz de crear programas con aceptable funcionalidad en tiempo real.
Limitado, cuenta con algunas librerías de manipulaciones matemáticas, generación de señales, probabilidad y estadística.
Programas auto ejecutables. Muy bajo
2.3.4 LabView™ [38] Tabla 2.5 Tabla de características de LabView™
País de Origen/Fabricante Descripción Tipo de Programación Interfases de Adquisición de Datos
Estados Unidos, National Instruments
Lenguaje de desarrollo para la creación de pruebas, mediciones y aplicaciones de control.
Interfase de programación grafica, basada en el arrastre de bloques, generación de interfases de usuario basada también en el principio de arrastre de bloques. Soporte para la ejecución de módulos escritos en C/C++.
Ofrece librerías para el control de todas su gama de tarjetas de adquisición de datos, así como soporte para los estándares VXI, PXI, VISA, OPC, FieldPoint, Visión System
Tiempo Real Herramientas de Análisis Tipo de Programa Costo
Es capaz de crear programas con aceptable funcionalidad en tiempo real, además de módulos para la ejecución de programas totalmente deterministicos.
Limitado, cuenta con algunas librerías de manipulaciones matemáticas, generación de señales, probabilidad y estadística.
Programas auto ejecutables. Bajo
2.3.5 SIMATIC WinCC flexible™ [41] Tabla 2.6 Tabla de características de Simatic WinCC flexible™
País de Origen/Fabricante Descripción Tipo de Programación Interfases de Adquisición de Datos
Alemania, Siemens Software para la creación de HMI (Human Machine Interfases)
Permite la creación de interfases de usuario por medio de arrastre de bloques.
Ofrece conectividad para buses como PPI, MPI, PROFIBUS-DP, TCP/IP, RS232, drivers de distintos proveedores y OPC
Tiempo Real Herramientas de Análisis Tipo de Programa Costo
Es capaz de crear programas con aceptable funcionalidad en tiempo real.
Ofrece la ejecución de scripts hechos en Visual Basic, así como la ejecución de recetas.
Un programa de RunTime se requiere para su ejecución. Alto
18
2.3.6 Agilent VEE™ [40] Tabla 2.7 Tabla de características de Agilent VEE™
País de Origen/Fabricante Descripción Tipo de Programación Interfases de Adquisición de Datos
Estados Unidos, Agilent Technologies Ambiente visual de ingeniería
Permite la creación de programas por medio de bloques, es posible también escribir módulos en Visual Basic, C/C++, Visual C# y LabView
Ofrece librerías para el control de todas su gama de tarjetas de adquisición de datos, tarjetas de National Instruments, así como soporte para los estándares VXI, PXI, VISA y GPIB.
Tiempo Real Herramientas de Análisis Tipo de Programa Costo
Es capaz de crear programas con aceptable funcionalidad en tiempo real.
Limitado, cuenta con un modulo de Matlab implementado, pero solo con funciones básicas, computación numérica, graficas, procesamiento de señales, matemáticas de matrices.
Un programa de RunTime se requiere para su ejecución. Bajo
2.3.7 Profit Suite 300™ [42] Tabla 2.8 Tabla de características de Profit Suite 300™
País de Origen/Fabricante Descripción Tipo de Programación Interfases de Adquisición de Datos
Estados Unidos, Honeywell
Software para la creación de interfases de usuario, así como la implementación de esquemas de control experto y optimización
Permite la creación de interfases de usuario, esquemas de control y optimización por medio de arrastre de bloques.
Ofrece conectividad para TCP/IP, RS232, drivers de distintos proveedores y OPC
Tiempo Real Herramientas de Análisis Tipo de Programa Costo
Es capaz de crear programas con aceptable funcionalidad en tiempo real.
Herramientas para control multivariable, optimización y sistemas expertos.
Un programa de RunTime se requiere para su ejecución. Alto
En el mercado se pueden encontrar una gran cantidad de software para el
desarrollo de aplicaciones de monitoreo y control. El costo de las herramientas
incrementa en la medida que se facilita el desarrollo, la misma tendencia se puede
observar en la medida que el software incorpora herramientas de análisis.
2.4 Comentarios
El capítulo presenta una perspectiva general de algunos trabajos relacionados a la
enseñanza del control automático de procesos. También se presenta un panorama general
de las tecnologías de intercambio de datos entre procesos para facilitar el análisis de las
tecnologías usadas actualmente. Por último se hace una comparación de algunos
programas comerciales para computadoras personales que permiten la creación de una
interfaz de usuario, adquirir datos y transmitir-recibir datos entre aplicaciones más
conocidos y usados en la automatización de procesos industriales.
19
20
Capítulo 3
3. Sistema Experimental
El sistema experimental usado para validar el desarrollo es una estación de
monitoreo y control del nivel en un tanque. Esta estación es un sistema ampliamente
usado, el cual puede representar sistemas con características dinámicas típicas de
procesos industriales [3].
Figura 3.1Estación de monitoreo y control de nivel.
Donde V1 es la válvula manual de alimentación, V2 es la válvula manual de descarga, FV-100 es una válvula de control, FT101 y FT1002 representan los medidores de flujo de entrada y salida, finalmente LT-100 corresponde
al medidor de nivel del tanque.
En este proceso una bomba hace circular agua a través de la tubería, una válvula
controla el flujo de agua de entrada al tanque, es posible simular perturbaciones en los
flujos de entrada y salida a través de válvulas conectadas en la tubería. Existen sensores
para medir el flujo de entrada (FT-101), flujo de salida (FT-102) y nivel del tanque (LT-
100), estos sensores están conectados a un controlador industrial. El controlador
industrial maneja la válvula de alimentación (FV-100). El controlador cuenta con una
21
interfaz de comunicaciones del tipo RS485 que se conecta por medio de un convertidor
RS485/RS232 al puerto serial de una computadora. La figura 3.1 muestra una fotografía
de la estación de monitoreo y control de nivel.
La figura 3.2 muestra un diagrama conceptual de la estación de monitoreo y
control de nivel. Los elementos que forman parte de la estación se describen a
continuación.
Figura 3.2 Diagrama conceptual de la estación de monitor y control de nivel.
El diagrama describe un sistema de nivel-tanque, dos sensores-transmisores de flujo (FT101, FT102), un sensor-transmisor de nivel (LT-100), y una válvula de control (FV100)
• FT-101 Sensor/transmisor de flujo de entrada
• FT-102 Sensor/transmisor de flujo de salida
• LT-100 Sensor/transmisor de Nivel
• FV-100 Válvula de control
• V1 Válvula manual en entrada
• V2 Válvula manual en salida
22
3.1 Instrumentación instalada
• Dos Sensores/Trasmisores de flujo de agua (FT-101, FT-102): Constan de placa de orificio para medir flujos, de 0.308 pulgadas para tubería de ½ pulgada y un transmisor diferencial de presión ST 3000, modelo S900.
• Sensor/Transmisor de Nivel (LT-100). Transmisor diferencial de presión ST 3000, modelo S900.
• Válvula de control de Agua (FV-100). Válvula de globo de un asiento de ½ pulgada hecha de bronce, un actuador neumático LIN-E-AIRE W.E Anderson y electroposicionador, PRECISOR de W.E Anderson
• Transductor Corriente-Presión. Modelo STD 5131, entrada 4-20mA, salida 3-15psig
• Llaves estándar de uso industrial (V1 y V2). Llaves estándar de uso industrial de ½ pulgada.
3.2 Controlador PID
El controlador industrial instalado es un Honeywell UDC 6300, el controlador
está basado en un microprocesador en el cual están configuradas estrategias de control.
Dentro de sus características principales se encuentran:
• Tiene una interfaz de usuario con tres indicadores de barra, donde se
despliegan la referencia (Set Point), la variable del proceso (Process
Variable) y el valor de la salida (OUTPUT), además de los indicadores de
barra cuenta con dos indicadores digitales donde se muestran los valores
numéricos de las entradas, salida, referencia ó variable de proceso.
• Cuatro entradas analógicas están disponibles para la conexión de sensores,
las entradas pueden ser configuradas para aceptar rangos de voltaje de 1 a
5 volts, 4 a 20 mA, o 10 a 50 mA
• Salida de corriente de 4 a 20 mA, a una carga de 0 a 100 ohms.
• Puede configurar dos lazos de control independientes o en cascada.
• Comunicación serial, RS422/485 ó Honeywell DMCS
• Operación manual o automática.
• Cuatro diferentes alarmas pueden ser programadas.
• Tres tipos de ecuaciones de control disponible, ON/OFF, proporcional-
integral-derivativo, proporcional-derivativo.
23
• Técnica de control de selección de ganancias de acuerdo al valor de la
variable de proceso (“Gain Scheduling”).
3.3 Proyectos realizados en la estación de monitoreo y control de nivel. Los estudiantes de los laboratorios de control continuo realizan proyectos de
identificación de parámetros, sintonización de PIDs y diferentes estrategias de control
continuo como retroalimentado, antealimentado/retroalimentado y control en cascada.
3.3.1 Control retroalimentado Para este proyecto el controlador Honeywell UDC 6300 se utiliza como
controlador PID, se monitorea el sensor de nivel (LT-100), y comanda la abertura de la
válvula de control (FV-100). La figura 3.3 muestra el esquema implementado.
Figura 3.3 Sistema de control retroalimentado.
El controlador Honeywell UDC 6300 es usado como controlador PID (LIC-100), V1 y V2 son usadas para inducir perturbaciones al sistema
24
3.3.2 Control antealimentado/retroalimentado Para implementar el sistema antealimentado/retroalimentado, al esquema de la
sección anterior se le agrega el resultado de la modelación de la perturbación del flujo de
salida (válvula manual V2, FY-100), y por pruebas experimentales el bloque de
adelanto/atraso (lead/lag, FY-101) es configurado en el controlador UDC 6300, el
esquema se muestra en la figura 3.4.
Figura 3.4 Sistema de control antealimentado/retroalimentado.
En el controlador Honeywell UDC 6300 se configuran/modelan los bloques FY-100 y FY101
25
3.3.3 Control en cascada Para la estrategia en cascada una variable intermedia indica las perturbaciones en
el flujo de entrada (FT-101) inducida por la válvula manual V1, con esta variable
intermedia se configura el controlador esclavo, el controlador de nivel es el controlador
maestro, para configurar la estrategia en cascada. La figura 3.5 muestra la
implementación de la estrategia.
Figura 3.5 Estrategia de control en cascada.
En el controlador Honeywell UDC 6300 se configuran el controlador esclavo (FIC-101) y el maestro (LIC-100)
26
Capítulo 4
4. Metodología
4.1 Introducción
En los primeros años de la implementación de los sistemas de control de procesos
continuos (basados en el controlador PID), estos eran construidos a partir de elementos
mecánicos o arreglos de amplificadores operacionales. A partir del surgimiento de las
computadoras digitales y su evolución, se ha hecho posible confiar en ellas para la
implementación de control computarizado, ya que su ajuste (sintonización) se realiza de
una manera muy rápida, además de que los costos de implementación se han visto
drásticamente reducidos.
4.2 Metodología de diseño para una interfaz humano-máquina.
Originalmente llamadas interfaz de operador (“OI”, Operator Interface), después
renombradas como interfaz hombre máquina (“MMI”, Man-Machine Interfaces) y
últimamente llamadas interfaz humano máquina (“HMI”, Human Machine Interfaces)
[19], son una parte importante en los sistemas de control y cobran mayor importancia en
los sistemas de control computarizado. Las HMI permiten al usuario visualizar mediante
pantallas con gráficos el comportamiento de las maquinarias, procesos y sistemas que se
deseen monitorear. En un inicio las HMI funcionaban sólo como interfaz remota que
interactuaban con algún controlador análogo; ahora las HMI pueden formar parte de un
complejo sistema de controladores capaces de tomar decisiones en circunstancias
extremas del proceso. El uso de computadoras otorga una gran versatilidad ya que se
puede contar con una gran variedad de opciones en una HMI, como gráficas, históricos
del proceso, algoritmos de control, información para toma de decisiones, etc.
Haley [20], sugiere dos características importantes para la exitosa implementación
de HMIs:
27
1. Creación, definición de estándares. Considerar en todo momento el medio
ambiente del operador. Usar altos contrastes para datos primarios (variables de
proceso). Datos secundarios o de soporte deben ser más pequeños. Las alarmas
deben ser fácilmente reconocibles usando colores brillantes. Ser consistente en el
uso de símbolos y abreviaciones en todo el proceso de diseño.
2. Obtención, revisión de los datos. Las fuentes de datos deben ser una
combinación de pantallas existentes (pantallas de controladores), procedimientos
y entrevistas con los operadores.
De la misma manera, sugiere los siguientes pasos de diseño:
1. Creación de un borrador. El primer borrador pueden ser una compilación de
pantallas existentes en un dibujo tipo CAD o en una hoja de papel.
2. Validación/Aprobación. Verifique que la información está bien posicionada y
entendible para todos los grupos de usuarios.
4.3 Estructura completa de la interfaz.
El propósito general de la interfaz humano-máquina es conectarse a la estación de
monitoreo y control de nivel (descrita en el capítulo 3). La aplicación principal será
programada usando el software LabWindows/CVI™ de National Instruments™.
LabWindows/CVI™ es un lenguaje de programación basado en ANSI C, ofrece un gran
número de librerías para la rápida creación de programas con interfaz de usuario y
adquisición de datos [39], en los últimos años se ha convertido en un estándar en la
construcción de software de uso industrial.
La comunicación hacia el UDC 6300 se realizará a través de un puerto serial tipo
RS232. La HMI tendrá como características principales un plano principal para el acceso
a las variables del proceso, monitoreo y graficación de las variables. A su vez se
incorporarán dos interfaces o conexiones a la HMI para control externo. La primera
interfaz se encargará de transmitir y recibir datos desde y hacia Matlab™ y Simulink™,
la segunda interfaz ejecutará programas compilados en ANSI C. La figura 4.1 muestra
un diagrama conceptual del diseño de la aplicación y sus conexiones.
28
TCP/IP
Modem RS232/RS85
RS232
RS485
Direccionesde memoria
Matlab™
Simulink™
Compilador ANSI CDEVC++
Creación DLLs
INTERFAZ DESARROLLADA(HMI)
Ejecución de scripts compilados en ANSI C Conexión con Matlab™
Administración de la comunicacion con el UDC 6300
Graficar, grabar datos, configurar.
4-20 mA
4-20 mA
Figura 4.1 Diagrama conceptual de la aplicación y sus conexiones.
La aplicación principal se conectara y administrara al UDC 6300, a elección del usuario se podrán ejecutar aplicaciones en Simulink™ o scripts compilados en ANSI C.
29
4.3.1 Interfaz de comunicación de la HMI con el controlador
La comunicación entre la HMI y el controlador se realiza a través de un puerto
serial RS232 en una computadora personal, el controlador Honeywell™ UDC 6300
cuenta con una interfaz RS422/485 que permite la comunicación de hasta quince
controladores conectados a un bus de datos. Para llevar a cabo la comunicación entre la
computadora personal y el UDC 6300 se requiere un convertidor RS232 a RS422/485.
La comunicación entre el UDC 6300 y la computadora es del tipo estímulo-
respuesta, esto es, para cualquier petición de información la HMI tiene que formular la
petición y el UDC 6300 contestará la petición. Para el controlador UDC6300 existen
básicamente dos tipos de acceso a los datos, lectura y escritura. La figura 4.2 muestra el
modelo de comunicaciones entre el UDC y una computadora personal.
Figura 4.2 Esquema de comunicación entre el UDC 6300 y la HMI.
La comunicación con el UDC 6300 siempre es iniciada por la computadora, existen dos tipos de peticiones Lectura y Escritura
La aplicación principal inicializa la comunicación serial a través de uno de los
puertos seriales disponibles en la computadora. Para llevar a cabo esta tarea se hace uso
del conjunto de funciones que ofrece la librería estándar de comunicaciones RS232 de
LabWindows/CVI™.
La función OpenComConfig, configura el puerto de acuerdo a los parámetros
introducidos por el usuario, los parámetros a considerar para esta aplicación son:
BaudRate, Paridad, DataBits y StopBits. Los parámetros anteriores son de suma
30
importancia ya que dicha configuración debe concordar con los valores que el UDC 6300
tiene configurados, si los valores introducidos por el usuario en la aplicación principal y
los configurados en el UDC 6300 no concuerdan, no será posible comunicar ambos
dispositivos.
Una vez que el sistema operativo otorgo el acceso al puerto serial de una
computadora, es necesario configurar una interrupción en la aplicación. Dicha
interrupción se encargará de informar a la aplicación principal que un evento de
recepción de datos por el puerto serial ha ocurrido, una vez notificada la aplicación
principal se procesaran los datos de acuerdo al tipo recibido, para implementar la
interrupción se hace uso de la función InstallComCallback, que también forma parte de la
librería estándar de comunicaciones seriales de LabWindows/CVI™. La función
InstallComCallback configura una interrupción en el puerto serial al que se tiene acceso,
dentro de los parámetros de configuración se encuentran, el tipo de evento por el que se
ejecutará la interrupción, para el caso de la HMI, cada vez que exista un número
determinado de bytes en la fila de recepción del puerto serial la interrupción se disparará.
Otro parámetro importante de InstallComCallback es la función a llamar cada vez que la
interrupción se presente, para el caso de la HMI la función a llamar es la encargada de
leer la pila de entrada y decodificar el contenido del mensaje recibido del UDC 6300.
La transmisión de datos desde la HMI hacia el UDC 6300 se ejecuta
componiendo el mensaje de petición de acuerdo a la especificación de comunicaciones
del UDC 6300 [44], y mandando la cadena usando la función ComWrt de la librería
estándar de comunicaciones RS232 de LabWindows/CVI™.
En el Apéndice A, primera sección, se incluyen pseudo códigos que implementan
estas tareas.
4.3.2 Diseño de la comunicación de la HMI con Matlab Simulink
Una de las características importantes de la HMI es su capacidad de recibir y
transmitir datos desde y hacia el software Matlab™ y en particular hacia Simulink™.
Existen distintas tecnologías para la intercomunicación de datos entre procesos
ejecutándose al mismo tiempo en una computadora personal, sin embargo, cada
implementación acarrea diversos costos como puede ser la compra de la interfaz de
31
aplicación (Application Program Interface, “API”), para el caso de las aplicaciones
compatibles con OPC, y algunas veces es difícil justificar la inversión. Por esta razón se
decidió implementar el sistema usando un “socket” de datos. En este caso la HMI
funcionaría como un servidor TCP/IP con la dirección de “loopback” asignada. En
Simulink™ es posible implementar bloques compilados en C++, en dichos bloques
también es posible implementar un cliente TCP/IP [21], que se conectará al servidor
implementado en la interfaz de usuario, Figura 4.3
Figura 4.3 Esquema de la implementación del servidor y cliente TCP/IP.
En la implementación realizada, la HMI crea un servidor TCP, en Matlab se configura un cliente de TCP, y de esta forma se logra la comunicación entre ambas aplicaciones.
Para una correcta transmisión de datos entre la HMI y Simulink™ se hace
necesaria la creación de un protocolo de comunicación en el cual se encapsulan los datos
en una trama de datos estandarizada, tanto para la recepción de datos en Matlab™, como
en la recepción de datos en la HMI.
Una vez que el servidor de TCP/IP en la interfaz es activado, la aplicación
desarrollada en Simulink™ toma control total de la interfaz, tanto del tiempo de
muestreo, la lectura y transmisión de datos hacia Matlab™. Dado que el controlador
tiene un tiempo de respuesta de un tercio de segundo por cada petición, son requeridos un
mínimo de 1.2 segundos para lograr exitosamente la lectura del nivel del tanque, flujo de
agua de entrada al tanque y flujo de salida de agua del tanque, además de la escritura del
valor de abertura de la válvula de control. Dado que la aplicación se ejecutara en un
tiempo definido es importante señalar que solamente funciones discretas pueden ser
usadas en la aplicación. Por otra parte también es importante señalar que para algunas
aplicaciones el tiempo de muestreo definido puede ser restrictivo, pero no es el caso de la
32
estación de monitoreo y control de nivel. Un ciclo de ejecución se muestra en la figura
4.4
Figura 4.4 Diagrama de flujo de un ciclo de ejecución de la HMI conectada a Simulink™.
El diagrama muestra el flujo completo de la información y cuáles son los momentos de transmisión y recepción.
33
El tiempo de muestreo es controlado por medio de una librería Real Time (RT
Library) [22], en la cual la simulación es paralizada hasta que se cumple el tiempo de
muestreo deseado, dejando los recursos libres del sistema operativo. Una vez que se
cumple el tiempo, se ejecuta el paso de simulación siguiente, dando como resultado la
impresión de que la tarea se está ejecutando en tiempo real. En el apéndice A, segunda
sección, se muestra el bloque para la comunicación con Matlab™.
4.3.3 Metodología para el diseño del intérprete para la ejecución de controladores compilados en ANSI C
Otra de las características importantes de la HMI es la ejecución de programas
compilados en ANSI C. Dicha característica permite la ejecución de algoritmos
matemáticos, abriendo un sin número de posibilidades a probar otras teorías y/o leyes de
control.
La HMI facilita el diseño y la construcción de controladores digitales, ya que
permite al usuario concentrarse en los métodos y algoritmos de control, dejando de lado
todas aquellas tareas que son necesarias para una correcta ejecución que normalmente
salen del campo del conocimiento de la teoría de control, generalmente ligadas a ciencias
computacionales y comunicaciones.
La HMI provee un intérprete que ejecuta controladores o esquemas discretos
compilados en ANSI C. El usuario sólo necesita un compilador de ANSI C en el que
desarrollará el controlador o método discreto, el usuario se encargará de generar una
librería de enlace dinámico (Dynamic Link Library, “DLL”) y a partir de otras librerías
que permiten el acceso a las variables del proceso, se cargará a la HMI y esta ejecutará el
esquema de control.
Una librería de enlace dinámico (DLL) es un módulo que contiene funciones y
datos que pueden ser usados por alguna otra aplicación o DLL [23]. Existen dos tipos de
librerías dinámicas, las que exportan todas sus funciones al momento de ser compiladas,
y las que se les denomina librerías dinámicas de tiempo de ejecución (run-time dynamics
link library). La HMI hace uso de este tipo de librerías para cargar en tiempo de
ejecución los controladores discretos.
34
Se carga la librería dinámica
Se obtienen las direcciones de memoria de las variables de proceso, flujo de entrada y salida
Se registran las funciones de Inicio, Ejecución y Terminación
Se ejecuta la función de Inicio
Se ejecuta la función de Ejecución
Se ejecuta la función de Terminación
Finalizar DLL
Finalizar
NO
SI
Figura 4.5 Diagrama de ejecución de un programa compilado en ANSI C. El diagrama de flujo muestra el orden en que las variables son ligadas y las funciones definidas ejecutadas.
El modelo de implementación de controladores compilados en ANSI C, consiste
en registrar tres funciones externas al programa principal que se encargarán de
implementar el esquema de control. Una vez registradas estas funciones también se
comparten las direcciones de memoria de las variables, donde se almacenan los datos del
nivel del tanque, flujo de entrada al tanque y flujo de salida del tanque, así como también
el valor de abertura de la válvula. Una vez registradas las funciones y conocidas las
direcciones de memoria de las variables, es posible leer y escribir dichas locaciones,
dando la posibilidad que después de los cálculos matemáticos apropiados, derivados éstos
de las lecturas del nivel del tanque, flujo de entrada al tanque y flujo de salida del tanque,
sea posible escribir la variable de abertura de la válvula a partir del resultado de dichos
cálculos.
El esquema de funcionamiento del sistema se muestra en la figura 4.5. El
apéndice B muestra un ejemplo de dicha implementación.
35
36
Capítulo 5
5. Resultados
5.2 Interfaz de Monitoreo y Control
Para lograr el funcionamiento óptimo de la HMI el UDC 6300 será puesto en
operación manual, 1) Los valores de nivel del tanque serán requeridos por la interfaz
desarrollada al UDC 6300, 2) El UDC6300 enviará los valores de nivel del tanque, flujo
de entrada y flujo de salida, 3) La HMI los enviará a Matlab, 4) Matlab los procesará por
medio de Simulik, 5) En Simulink se calculará la abertura de la válvula de acuerdo al tipo
de controlador o estrategia utilizada y enviada por Matlab a la HMI, 6) Por último la HMI
se encargará de mandar el comando adecuado al controlador UDC 6300, para conseguir
la abertura deseada de la válvula.
El la figura 5.1 se muestra la pantalla principal de la interfaz desarrollada en
LabWindows/CVI de National Instruments [39], el panel principal es del tipo tabulador
(2), el costado izquierdo de la pantalla principal se encuentra fijo (1), en el cual se
despliegan diversos indicadores como la variable del proceso, flujo de entrada, flujo de
salida, referencia, etc. En la misma sección se encuentra una ventana donde las variables
anteriormente mencionadas son graficadas. En el costado derecho de la interfaz se
localizan cuatro pestañas de configuración.
• “Communications Parameters”. Permite el ajuste de parámetros de
comunicación entre el UDC 6300 y la interfaz.
• “UDC Data”. Muestra una bitácora de la comunicación entre el UDC
6300 y la interfaz, permite configurar las variables a monitorear, ajustes de
tiempo de muestreo, etc.
• “Load Controller”. Carga y ejecuta una librería dinámica “dll”, también
provee un botón de paro para el controlador, una perilla para el ajuste de
referencias y una bitácora de comunicaciones entre el “dll” y la interfaz.
37
• “Server Data”. Habilita la interfaz para el inicio de comunicaciones entre
la interfaz y Matlab, provee un interruptor para iniciar la comunicación e
indicadores del estatus de la conexión.
Figura 5.1 Pantalla principal de la interfaz.
La pantalla principal ofrece al usuario la posibilidad de configurar y ajustar parámetros sin perder de vista el proceso.
En el apéndice C se detallan las diferentes pantallas de las que se compone la interfaz
de usuario creada para esta investigación.
5.1 Diseño de experimentos
Para validar el desempeño de la HMI se realizaron los proyectos de aplicación de
la tabla 5.1. Tabla 5.1 Proyectos realizados en la interfaz
Proyecto Descripción
1 Implementar un controlador basado en lógica difusa en tiempo real 2 Estrategias de control (cascada y cascada antealimentado) 3 Controladores PID con diferentes técnicas de sintonización. 4 Estrategias de control avanzadas (Internal Mode Control [51] y
Predictor de Smith [51]).
38
5.2 Aplicaciones
5.2.1 Proyecto #1: Controlador difuso en tiempo real
Se usó un controlador basado en lógica difusa para mantener el nivel del tanque
en un valor. El control difuso surge de la necesidad de facilitar la forma de controlar un
proceso a partir de emular el funcionamiento del cerebro humano. El cerebro humano es
capaz de aprender y razonar en ambientes vagos y con incertidumbre, no usa modelos
matemáticos complejos que representan el sistema a controlar. El control difuso es capaz
de operar con no linealidades, incertidumbre en el ambiente, comportamientos temporales
e incertidumbre en mediciones [50].
El objetivo del proyecto es que el usuario introduzca la referencia para el nivel de
agua deseado en el tanque (Set Point) y que el controlador basado en lógica difusa realice
las manipulaciones en la abertura de la válvula para poder llegar al nivel y mantenerse.
También se evaluará el desempeño del controlador ante perturbaciones en el flujo de
entrada, provocadas por la válvula manual V1 y perturbaciones en el flujo de salida,
provocadas por la válvula manual V2. El lazo de control puede observarse en la figura
5.2
Figura 5.2 Lazo de control, y situación del controlador basado en lógica difusa.
La función del controlador UDC 6300 es puesto en modo manual y el control se realiza desde Matlab con un controlador basado en lógica difusa.
Una vez obtenida o definida la dinámica del proceso por el experto, se procedió al
diseño del controlador basado en lógica difusa, el controlador fue implementado en
39
Simulink con el “toolbox de lógica difusa”. El “toolbox” provee una interfaz de usuario
que permite la creación de sistemas clásicos de inferencia difusa. También provee un
bloque que puede ser insertado en aplicaciones de Simulink™ y ejecutar el sistema de
inferencia, todos los detalles de implementación de este proyecto pueden encontrarse en
el Apéndice D. La implementación final se puede observar en la figura 5.3, a
continuación se documentan los puntos señalados:
1. Escritura de valor de manipulación.
2. Lectura de los valores de nivel, flujo de entrada y salida.
3. Referencia del controlador
4. División del error entre 10 para ajustarlos en un rango de -10 a 10.
5. Normalización del derivativo.
6. Obtención del nivel actual para ser comparado con la referencia.
7. Controlador difuso
8. Obtención del derivativo para deducir la razón del cambio del nivel.
9. Multiplicación de las dos salidas del controlador difuso: Manipulación y
Ganancia.
10. Memoria que almacena el valor anterior de la salida que es relativa a la
manipulación anterior.
11. Manipulación con saturación mínima de 10 y máxima de 90.
5.2.1.1 Resultados de la implementación del controlador difuso en tiempo real
Se realizaron las pruebas de la tabla 5.2 para evaluar el desempeño del sistema de
control. Tabla 5.2 Pruebas realizadas al controlador difuso
Prueba Descripción 1 Cambio de nivel del tanque de 30% a 50 % 2 Cambio del nivel del tanque de 50% a 30% 3 Perturbación en el flujo de agua de entrada del tanque (cerrado y apertura de
la válvula manual V1). 4 Perturbación en el flujo de agua de salida del tanque (cerrado y apertura de la
válvula manual V2).
40
Figura 5.3 Diagram
a de Bloques del controlador D
ifuso. L
a implem
entación mostrada realiza todas las adecuaciones necesarias para lograr la im
plementación del
controlador difuso.
41
Desempeño en Servo Control
En las figuras 5.4 y 5.5 se muestran los resultados experimentales utilizando el
controlador difuso para la prueba 1 y 2 respectivamente. En la parte superior de las
gráficas se encuentra graficada la referencia que debe alcanzar el controlador y el valor
real del nivel del tanque. En la parte inferior se presenta el porcentaje de abertura de la
válvula de control del flujo de entrada al tanque.
20 40 60 80 100 120 140 160 18025
30
35
40
45
50
55
Time(=)sec
Per
cent
age(
=)%
20 40 60 80 100 120 140 160 18025
30
35
40
45
Time(=)sec
Per
cent
age(
=)%
Referencia
Nivel delTanque
Abertura dela válvula
Figura 5.4 Respuesta ante cambio de nivel en el tanque de 30% a 50%.
Se puede observar que la referencia deseada fue alcanzada de forma suave, con muy poco sobre impulso, los cambios en la abertura de la válvula también fueron bastante suaves.
Resultados de desempeño Los criterios de evaluación del desempeño del controlador basado en lógica difusa
para cambios en referencia son: porcentaje de sobretiro (Mp) y tiempo de estabilización
(ts). En la tabla 5.3 se muestran los resultados del desempeño del controlador.
Tabla 5.3 Controlador difuso ante cambios de nivel Prueba ts Mp
Prueba 1 50.39 seg 2.5% Prueba 2 30.18 seg 5.0%
42
20 40 60 80 100 120 140 160 180
30
40
50
Time(=)sec
Per
cent
age(
=)%
20 40 60 80 100 120 140 160 18025
30
35
40
45
Time(=)sec
Per
cent
age(
=)%
Referencia
Nivel del Tanque
Abertura dela válvula
Figura 5.5 Respuesta ante cambio de nivel en el tanque de 50% a 30%.
Al igual que el experimento anterior el acercamiento a la referencia fue suave y con poco sobreimpulso, los cambios en la abertura de la válvula son también bastante suaves.
Desempeño en control regulatorio
En las figura 5.6 y 5.7 se muestran los resultados utilizando el contralor basado en
lógica difusa ante perturbaciones. En la parte superior de las gráficas se encuentra la
referencia deseada y el cambio de nivel al momento que se presenta la perturbación. En la
parte inferior se presenta la perturbación, su efecto en la abertura de la válvula y flujos de
entrada y salida.
Resultados de desempeño Los criterios utilizados para la evaluación del desempeño en control regulatorio
del controlador basado en lógica difusa son desviación máxima (DM) y tiempo de
recuperación (tr). En la tabla 5.4 se muestran los resultados del desempeño del
controlador.
43
20 40 60 80 100 120 140 160 18025
30
35
40
45
Time(=)sec
Per
cent
age(
=)%
20 40 60 80 100 120 140 160 1800
10
20
30
40
50
Time(=)sec
Per
cent
age(
=)%
Referencia
Nivel del Tanque
Flujo de Salida
Abertura de la válvula
Flujo de Entrada
Figura 5.6 Respuesta ante una perturbación en el flujo de entrada.
Se observa en la grafica como el nivel del tanque se incrementa cuando el flujo de entrada se incrementa, de la misma forma se puede observar como la abertura de la válvula es disminuida.
Tabla 5.4 Controlador difuso ante perturbaciones en la entrada y salida.
Prueba tr DM Prueba 3 110 seg +10.19% Prueba 4 90 seg +2.7%
0 20 40 60 80 100 120 14028
30
32
34
Time(=)sec
Per
cent
age(
=)%
0 20 40 60 80 100 120 1400
10
20
30
40
Time(=)sec
Per
cent
age(
=)%
Nivel del tanque
Referencia
Flujo de Salida
Abertura de la válvula
Flujo de Entrada
Figura 5.7 Respuesta ante una perturbación el flujo de salida.
Se observa en la grafica como el nivel del tanque se incrementa cuando el flujo de salida se disminuye, de la misma forma se puede observar como la abertura se empieza a incrementar.
44
5.2.2 Proyecto # 2: Estrategias de control en tiempo real
Se usó la estrategia en cascada para controlar la estación de monitoreo y control
de nivel, una vez definida la estrategia en cascada se le colocó un bloque de
antealimentación. En el caso de la estrategia de control en cascada, se trata de localizar
una fuente de perturbaciones en el proceso, se instala un controlador PID, denominado
como “esclavo” y sintonizado para contrarrestar perturbaciones. Sobre el controlador
anterior se instala otro controlador, llamado “maestro”, el cual le define al controlador
“esclavo” la referencia deseada. La estrategia de antealimentación es incorporada cuando
es posible medir el efecto de una perturbación mayor antes de que afecte al proceso. En
una situación ideal, la antealimentación eliminaría el efecto de la perturbación en la salida
del proceso [24]. Cabe señalar que en la mayoría de los controladores PID industriales
solo es posible implementar la ganancia de antealimentación, es decir, no existe el bloque
de adelanto/atraso completo, en algunos sistemas de control distribuido el bloque
completo existe, sin embargo su configuración es bastante compleja, la HMI ofrece una
manera casi natural para la implementación del bloque de adelanto/atraso.
El objetivo del proyecto es implementar una estrategia en cascada y una estrategia
en cascada con antealimentación y observar los efectos de las estrategias ante cambios en
referencia. También se evaluará el desempeño de ambas estrategias ante perturbaciones
en el flujo de entrada, provocadas por la válvula manual V1 y perturbaciones en el flujo
de salida, provocadas por la válvula manual V2. El lazo de control para la estrategia en
cascada puede observarse en la figura 3.5, la estrategia en cascada con antealimentación,
se puede observar en la figura 5.8
Se realizaron identificaciones en base a modelos de primer orden para los dos
lazos de la estrategia en cascada, después se sintonizó al controlador esclavo (FIC-101),
para contrarrestar perturbaciones, y el controlador maestro (LIC-100) fue sintonizado
para servo control. Basados en lo anterior se colocó un bloque de antealimentación, los
detalles de implementación pueden encontrarse en el Apéndice E. Una vez conocidos
todos los parámetros se programó la estrategia de control en Simulink™, haciendo uso
del “toolbox Control Systems”. La estrategia completa en Simulink™ se muestra en la
figura 5.9
45
Figura 5.8 Estrategia de control en cascada con antealimentación. Los controladores LIC-100 y FIC-101, así como los bloques FY-100 y FY-101 se configuraran en Simulink .
5.2.2.1 Resultados de la implementación de estrategias de control en tiempo real
Se realizaron las pruebas de la tabla 5.5 para evaluar el desempeño de las
estrategias de control. Tabla 5.5 Pruebas realizadas para estrategia en cascada y cascada con antealimentación.
Prueba Descripción 1 Controlador cascada ante cambio en referencia de 50% a 30% 2 Controlador cascada con antealimentación ante cambios en referencia de 40%
a 30%. 3 Controlador cascada con antealimentación ante perturbaciones en el flujo de
agua de entrada (cerrado y apertura de la válvula manual V1). 4 Controlador cascada con antealimentación ante perturbaciones en el flujo de
agua en la salida (cerrado y apertura de la válvula manual V2).
46
Figura 5.9 Diagram
a de Bloques del controlador cascada con antealim
entación. L
os bloques aquí mostrados fueron im
plementados solam
ente con elementos del “toolbox C
ontrol Systems” .
47
Estrategia de control en cascada y cascada con antealimentación para servo control
En la figura 5.10 se muestra la respuesta de la estrategia en cascada ante cambios
en referencia. La figura 5.11 muestra el controlador cascada con un bloque de
antealimentación también ante cambios en referencia.
440 460 480 500 520 540 560 580 60020
30
40
50
Tiempo(=)seg
Por
cent
aje(
=)%
440 460 480 500 520 540 560 580 600
0
20
40
60
Tiempo(=)seg
Por
cent
aje(
=)%
Referencia
Nivel del Tanque
Abertura de la válvula
Referencia para el esclavo
Figura 5.10 Respuesta de la estrategia en cascada para servo control.
Se puede corroborar que la estrategia en cascada está funcionando apropiadamente, y el controlador maestro ajusta la referencia al esclavo.
En la parte superior de las gráficas se encuentra la referencia que debe alcanzar el
controlador y el valor real del nivel del tanque. En la parte interior se presenta el
porcentaje de abertura de la válvula del flujo de entrada al tanque.
Resultados de desempeño Los criterios utilizados para la evaluación del desempeño de la estrategia de
control en cascada y cascada con antealimentación para servo control son porcentaje de
sobretiro (Mp) y tiempo de estabilización.(ts). En la tabla 5.6 se muestran los resultados
del desempeño de la estrategia.
48
450 500 550 600 650 70025
30
35
40
45
Tiempo(=)seg
Por
cent
aje(
=)%
450 500 550 600 650 70020
30
40
50
Tiempo(=)seg
Por
cent
aje(
=)%
Referencia
Nivel del Tanque
Abertura de la válvula
Figura 5.11 Respuesta de la estrategia en cascada con antealimentación para servo control.
El bloque de antealimentación no tuvo ningún impacto ante cambios en referencia como era de esperarse.
Tabla 5.6 Estrategia en cascada antealimentado ante cambios en referencia. Prueba ts Mp Error
Prueba 1 120 seg 12.0% 1.03% Prueba 2 150 seg 5.0% 0.9%
Estrategia de control cascada y cascada con antealimentación para Control Regulatorio
En la figura 5.12 se muestra la respuesta de la estrategia en cascada ante
perturbaciones en el flujo de entrada. La figura 5.13 muestra la misma estrategia pero
con antealimentación ante perturbaciones en el flujo de salida.
En la parte superior de las gráficas se encuentra trazada la referencia deseada y el
cambio de nivel al momento que se presenta la perturbación. En la parte inferior se
presenta la perturbación, su efecto en la manipulación y flujos de entrada y salida.
49
280 300 320 340 360 380 400 42040
45
50
55
60
65
Tiempo(=)seg
Por
cent
aje(
=)%
280 300 320 340 360 380 400 4200
50
100
Tiempo(=)seg
Por
cent
aje(
=)%
ReferenciaNivel del Tanque
Abertura de la válvula
Flujo de Entrada
Figura 5.12 Respuesta de la estrategia cascada ante perturbaciones en la entrada.
En la figura se puede observar como la estrategia en cascada reacciona ante cambios en el flujo de entrada.
Resultados de desempeño Los criterios utilizados para la evaluación del desempeño en Control Regulatorio
de la estrategia de control en cascada y cascada con antealimentación son desviación
máxima (DM) y tiempo de recuperación (tr). En la tabla 5.7 se muestran los resultados del
desempeño del controlador.
Tabla 5.7 Estrategia cascada antealimentado ante perturbaciones en la entrada y salida. Prueba ts DM
Prueba 3 80 seg -6.0% Prueba 4 240 seg +5.0%
50
1000 1050 1100 1150 1200 1250 130025
30
35
Tiempo(=)seg
Por
cent
aje(
=)%
1000 1050 1100 1150 1200 1250 13000
10
20
30
40
50
Tiempo(=)seg
Por
cent
aje(
=)%
Nivel del Tanque
Referencia
Flujo de Salida
Abertura de la valvula
Figura 5.13 Respuesta de la estrategia cascada con antealimentación ante perturbaciones en la salida.
En la figura se puede observar la variación en el flujo de salida y como es compensado por el controlador esclavo en la abertura de la válvula.
5.2.3 Proyecto # 3: Sintonía de Controladores PID en tiempo real
Se usó la HMI para implementar un controlador PID, usando diversas técnicas de
sintonización. Actualmente existen métodos de sintonía que se basan en la reducción del
error o en la respuesta a la frecuencia, etc. El desarrollo de nuevas técnicas ha seguido a
través de los años, la razón principal se debe a que los controladores PID son
ampliamente usados por su simplicidad y la robustez para modelar el error. Existen
diversas formas ampliamente usadas y comprobada su utilidad para la sintonización de
controladores PID, tales como Ziegler-Nichols, Cohen-Coon, Internal Model Control,
Error Integral Absoluto, etc. A través de este proyecto además de validar la interfaz HMI
se probaron diferentes estructuras de controladores y varias técnicas de sintonización, la
primera basada en especificaciones de robustez [45], la segunda en un regulador lineal
cuadrático [46] (LQR por sus siglas en inglés) y un tercero en Extremum Seeking [47].
51
El lazo de control para el proyecto puede observarse en la figura 3.3, en este
proyecto el controlador PID (LIC-100) será implementado en Simulink™, donde los
parámetros de sintonización variarán de acuerdo a los diferentes métodos de
sintonización a probarse, figura 5.14.
El desarrollo completo de las diferentes técnicas de sintonización se puede
consultar en el apéndice F.
Figura 5.14 Implementación en Simulink del controlador PID.
El usuario ajusta los valores de Kp, Ki, Kd, los otros dos bloques implementan los términos integral y derivativo en forma discreta.
5.2.3.1 Resultados en tiempo real
La figura 5.15 muestra los resultados de un PID sintonizado por especificaciones
de robustez [45], la figura 5.16 como regulador lineal cuadrático [46] y la figura 5.17 vía
Extremum Seeking [47]. A todos los controladores se les realizaron las siguientes
pruebas.
1. Desempeño ante cambios de referencia
2. Desempeño ante perturbaciones en el flujo de entrada al tanque.
3. Desempeño ante perturbaciones en el flujo de salida del tanque.
Resultados de desempeño En la tabla 5.8 se muestran los resultados del desempeño del controlador con las
distintas técnicas de sintonización.
52
0 100 200 300 400 500 600 700 8000
20
40
60
Tiempo(=)seg
Por
cent
aje(
=)%
0 100 200 300 400 500 600 700 800-50
0
50
100
Tiempo(=)seg
Por
cent
aje(
=)%
Referencia
Nivel del Tanque
Perturbación de Flujo de Entrada
Perturbación Flujo de Salida
Flujo de Salida Abertura de la válvula
Flujo de Entrada
Figura 5.15 Respuesta del PID con sintonización mediante parámetros de robustez.
En la figura se puede observar que para cambios en referencia el controlador responde lo suficientemente rápido, el desempeño ante perturbaciones es aceptable considerando que la sintonización fue hecha para servo
control.
0 100 200 300 400 500 600 700 800 900 10000
20
40
60
80
Tiempo(=)seg
Por
cent
aje(
=)%
0 100 200 300 400 500 600 700 800 900 10000
50
100
Tiempo(=)seg
Por
cent
aje(
=)%
Referencia
Nivel del Tanque
Flujo de Salida
Flujo de Entrada
Perturbación Flujo de Salida
Figura 5.16 Respuesta del PID como regulador lineal cuadrático.
En la figura se puede observar una aceptable respuesta para servo control, y la respuesta ante perturbaciones es buena.
53
0 100 200 300 400 500 600 700 800 900 10000
20
40
60
Tiempo(=)seg
Por
cent
aje(
=)%
0 100 200 300 400 500 600 700 800 9000
50
100
Tiempo(=)seg
Por
cent
aje(
=)%
Referencia
Nivel del Tanque
Flujo de Entrada
Abertura de la válvula
Flujo de Salida
Perturbación Flujo de Entrada
Perturbación Flujo de Salida
Figura 5.17 Respuesta del PID con sintonización mediante Extremum Seeking.
Se pueden observar en la figura respuestas aceptables para cambios en referencia y perturbaciones.
Tabla 5.8 Respuesta del controlador PID con diferentes tipos de sintonía. Método de Sintonía Parámetro de Sintonía LQR ES Robustez
%Mp 5% 0 0 ts 120 seg 160 seg 110 seg
Oscilación de la Válvula
Si No No
5.2.4 Proyecto # 4: Estrategias de control avanzadas Se usaron estrategias de control avanzadas para controlar la estación de
monitoreo y control de nivel. Se implementaron las estrategias de Internal Model Control
(IMC) [52], y Predictor de Smith [51]. Un importante problema que se tiene al utilizar
estructuras de control clásicas (PID), es su pobre desempeño ante procesos con tiempo
muerto o retraso grandes. El problema es comúnmente solucionado con la técnica de
control del Predictor de Smith [51]. La idea principal es obtener un desempeño de la
planta como si no existiera tiempo muerto, a pesar de que físicamente este presente.
Dado que el tiempo muerto es posible modelarlo, es posible predecir el comportamiento
54
y ejercer control. Los controladores basados en Predictor de Smith [51] se utilizan
principalmente para aplicaciones de servo control minimizando el tiempo de
establecimiento y evitando el sobretiro. Un factor fundamental en el Predictor de Smith
es la necesidad de una identificación y modelación exacta del proceso a controlar.
Otra técnica para minimizar el efecto del tiempo muerto es Internal Model
Control (IMC) [52], basado en los principios del Predictor de Smith, ofrece mejor
desempeño que las técnicas clásicas en servo control y control regulatorio, y es muy
usado donde pueden existir variaciones en los procesos a controlar.
El objetivo del proyecto es implementar la estrategia de Predictor de Smith e
IMC y evaluar su desempeño ante cambios en referencia. También se evaluará el
desempeño ante perturbaciones en el flujo de entrada, provocadas por la válvula manual
V1 y perturbaciones en el flujo de salida, provocadas por la válvula manual V2. El lazo
de control para la estrategia en cascada puede observarse en la figura 3.5.
Se realizaron identificaciones para modelos de primer orden para ambas
estrategias y se ajustaron los parámetros del PID. Los detalles de implementación pueden
encontrarse en el Apéndice G. Una vez conocidos todos los parámetros se programaron
las estrategias en Simulink™, haciendo uso del “toolbox Control Systems”. Las
implementaciones para IMC y Predictor de Smith en Simulink™, se muestran en las
figura 5.18 y 5.19 respectivamente.
Figura 5.18 Diagrama de bloques en Simulink de la estrategia IMC.
Los bloques aquí mostrados fueron implementados solamente con elementos del “toolbox Control Systems”.
55
Figura 5.19 D
iagrama de bloques en Sim
ulink™ del Predictor de Sm
ith. L
os bloques aquí mostrados fueron im
plementados solam
ente con elementos del “toolbox C
ontrol Systems”.
56
5.2.4.1 Resultados de la implementación de estrategias avanzadas de control en tiempo real.
Se realizaron las pruebas de la tabla 5.9 para evaluar el desempeño de las
estrategias de control. Tabla 5.9 Pruebas realizadas a la estrategia IMC y Predictor de Smith
Prueba Descripción 1 IMC ante cambios en referencia 2 IMC ante perturbaciones en el flujo de salida (cerrado y apertura de la
válvula manual V2). 3 Predictor de Smith ante cambios en referencia de 50% a 65% 4 Predictor de Smith ante cambios en referencia de 65% a 45%
Estrategia de control IMC en servo control y control regulatorio En la figura 5.20 se muestra la respuesta de la estrategia IMC para servo control y
control regulatorio. En la parte superior de la figura se encuentra el desempeño ante
cambios en referencia, la parte inferior muestra el desempeño ante una perturbación en el
flujo de salida.
0 50 100 150 200 250 30040
50
60
70
Time(=)sec
Per
cent
age(
=)%
200 250 300 350 400 450
30
40
50
60
Time(=)sec
Per
cent
age(
=)%
Referencia
Nivel del Tanque
Referencia
Nivel del Tanque
Figura 5.20 Respuesta de la estrategia IMC para servo control y control regulatorio.
En la parte superior de la grafica se puede observar la respuesta ante cambios en referencia y en la inferior para control regulatorio.
57
Resultados de desempeño En la tabla 5.10 se muestran los resultados del desempeño de la estrategia IMC.
Tabla 5.10 Resultados de desempeño IMC Prueba ts Mp DM
Prueba 1 24.7 seg 1.07% No aplica Prueba 2 124.8 seg No aplica +23.8%
Estrategia de control Predictor de Smith en servo control En la figura 5.21 se muestra la respuesta de la estrategia Predictor de Smith para
servo control. En la parte superior de la figura se encuentra el desempeño ante cambios
en referencia positivos, la parte inferior muestra el desempeño ante cambios en referencia
negativos.
0 20 40 60 80 100 120 140 160 18045
50
55
60
65
70
Tiempo(=)seg
Por
cent
aje(
=)%
0 20 40 60 80 100 120 140 160
40
50
60
70
Tiempo(=)seg
Per
cent
aje(
=)%
Referencia
Nivel del Tanque
Referencia
Nivel del Tanque
Figura 5.21 Respuesta del Predictor de Smith para cambios en referencia.
En la parte superior se muestra para un cambio positivo en la referencia y en la inferior para un cambio negativo.
58
Resultados de desempeño En la tabla 5.11 se muestran los resultados del desempeño del Predictor de Smith.
Tabla 5.11 Resultados de desempeño del Predictor de Smith Prueba ts Mp
Prueba 3 19.5 seg 8.67% Prueba 4 41.60 seg 6.40%
5.3 Experiencias en el uso de la HMI
El desempeño mostrado por la HMI y su interfaz con Matlab™ y Simulink™ fue
satisfactorio, los estudiantes pudieron observar que fue posible controlar el nivel en el
tanque usando diferentes esquemas de control. Se pudo observar que los alumnos una
vez familiarizados con la interfaz y la instrumentación a controlar, fueron capaces de
enfocarse únicamente a la implementación de los esquemas de control, dejando a un
segundo término el esfuerzo en los detalles de implementación.
La mayoría de los estudiantes mostró un poco de confusión al empezar el uso de
la HMI por primera vez. La solución a la problemática se vio resuelta con un rediseño a
de la HMI.
Todos los estudiantes se vieron en la necesidad de lidiar con los aspectos
relacionados a un proyecto de la vida real con sus limitaciones físicas, situaciones como
saturación de los actuadores, limitaciones físicas del proceso, tiempos de muestreo, etc,
fueron parte de la cotidianidad. Estos aspectos prácticos que emergieron de manera
natural en la implementación práctica son los que en un curso teórico son difíciles de
identificar pero sobre todo de apreciar por parte del alumno. No cabe duda que la
experiencia vivencial y práctica es de alta relevancia, este proyecto pretendió efectuarla
de una manera efectiva y eficaz.
En encuestas aplicadas a los alumnos expresaron que los conceptos aplicados les
habían quedado claros, además de satisfacción personal por verlos en funcionamiento.
La mayoría expreso que había sido sencilla la implementación en Simulink™ y que
usaría nuevamente la interfaz para proyectos escolares. Todos se sintieron motivados a
seguir profundizando en temas relacionados al control automático de procesos y
59
estuvieron de acuerdo en que otras materias se verían beneficiadas con herramientas de
enseñanza-aprendizaje de este tipo.
A continuación se detallaran algunas experiencias particulares:
Experiencias del proyecto #1 El uso de memorias durante la ejecución de este proyecto fue vital, una vez
entendido el concepto los estudiantes pudieron fácilmente agregar el porcentaje calculado
por el controlador difuso al valor previo de abertura de la válvula.
Experiencias del proyecto #2
Para este proyecto uno de los mayores retos para los estudiantes fue identificar el
periodo de muestreo adecuado, también fue necesario realizar adecuaciones al bloque de
antealimentación de tal manera de que fuera modelado correctamente en tiempo discreto.
Experiencias del proyecto #3 Al igual que el proyecto dos, el mayor reto fue identificar el tiempo de muestreo
apropiado para la aplicación en Simulink™.
Experiencias del proyecto #4 Al igual que los proyectos anteriores, el mayor reto fue identificar el tiempo de
muestreo apropiado para la aplicación en Simulink™, también algunos problemas al
momento de discretizar funciones de transferencia fueron reportados.
5.4 Comentario
Los resultados de este experimento exponen de sobremanera las ventajas que
ofrece la HMI, los alumnos fueron capaces de implementar el proyecto en el tiempo
asignado a una clase sin carga académica para desarrollo experimental. Las
implementaciones se limitaron al trabajo hecho en Simulink™ (lo cual es un estándar
durante la clase de teórica) sólo arrastrando bloques y conectándolos. Lo anterior
permitió que se dedicara más tiempo a entender los conceptos transmitidos en clase a
profundidad, fueron expuestos a detalles de modelación-implementación que
generalmente en simulación no son explorados, además todos se mostraron bastante
satisfechos del conocimiento adquirido durante el curso, valorando el conocimiento
teórico adquirido en el curso.
60
61
Capítulo 6
6. Conclusiones
Es muy común el uso de software de simulación en la enseñanza de la ingeniería
de control con el objetivo de acercar la enseñanza teórica a la práctica. La simulación es
preferida debido a las limitantes de tiempo (el tiempo disponible en un semestre para el
diseño, construcción y validación de interfaces de software y hardware es insuficiente).
Además, cada día la teoría de control atrae usuarios con antecedentes teóricos
diferentes, ya que ingenieros y científicos de otras áreas del conocimiento con
conocimientos básicos en electrónica o ciencias computacionales han encontrado
herramientas valiosas de modelación en los cursos de teoría de control.
Durante la experimentación de esta investigación se pudieron poner en práctica
aspectos fundamentales del modelo educativo del Tecnológico de Monterrey. Los
estudiantes involucrados participaron activamente construyendo conocimiento al
momento de verse obligados a investigar, gestionar y capacitarse para llevar a cabo el
proyecto, al mismo tiempo aprendieron a interactuar en equipos de trabajo donde a cada
miembro se le asigno una responsabilidad y se tomaron decisiones colegiadas. Por otra
parte se proveyó una herramienta que mejora las técnicas de aprendizaje y ayuda a los
estudiantes a poner en práctica conocimientos teóricos de una forma rápida y eficaz.
La interfaz ayuda a los estudiantes a desarrollar y operar sistemas de control
reales. Lo anterior facilita la enseñanza/aprendizaje de ingeniería de control a los
estudiantes (especialmente aquellos con conocimientos básicos de electrónica y
computación). Algunas de las características importantes de la interfaz son:
• Es fácil de usar.
• Las estrategias no convencionales pueden ser fácilmente implementadas,
lo anterior representa una gran oportunidad.
• La comunicación con Matlab™, Simulink™ y scripts de ANSI C, dan
oportunidad a una gran cantidad de aplicaciones potenciales.
62
Los aportes de esta investigación se pueden sintetizar a continuación:
• Se provee una interfaz entre un controlador industrial UDC 6300 de Honeywell™
y una computadora personal que puede ser utilizada en las estaciones de
monitoreo y control de nivel en un tanque construidas por el Tecnológico de
Monterrey, campus Monterrey.
• Se provee un método para obtener y transmitir datos desde y hacia Matlab™,
Simulink™ y sus “toolboxes” a tiempo real.
• Se provee una técnica para ejecutar código externo compilado en ANSI C dentro
de la HMI. Esto permite el desarrollo de controladores digitales basados en
diferentes teorías.
• Se provee una herramienta computacional para facilitar la didáctica de la
ingeniería de control para alumnos con perfil académico muy básico en sistemas
computacionales (lenguajes de programación, sistemas operativos, etc.), o bien
cuando el interés de la enseñanza es en las estrategias de control y no en los
detalles de la implementación.
• Se provee una herramienta computacional que ofrece rapidez para la
implementación de diversas estrategias.
• Se provee una herramienta computacional que permite usar Simulink™ para que
de una manera transparente se ejecute en forma de simulación y/o control real de
un proceso.
• Se incorpora al modelo educativo del Tecnológico de Monterrey una nueva
herramienta de enseñanza-aprendizaje.
• Se provee una solución alternativa de bajo costo para la comunicación entre
Matlab™, Simulink™ y aplicaciones, para propósitos didácticos y de
investigación, que no pretende reemplazar aplicaciones o estrategias
industriales/comerciales.
Por otra parte algunas limitaciones fueron encontradas:
63
• El tiempo de muestreo mínimo es alto, debido a limitaciones en el
controlador UDC 6300.
• Es necesario ejecutar las aplicaciones desarrolladas usando un “solver”
discreto para Simulink™.
• El sistema de comunicación solo aplica para el controlador Honeywell UDC
6300.
Es necesario que instituciones académicas apoyen y promuevan la creación de
tecnología para la enseñanza de las diversas ramas de la ingeniería, alumnos formados
bajo esquemas de este tipo la mayoría de las veces encuentran a las ciencias gratificantes
y estimulantes. Por otra parte pueden existir beneficios económicos altamente redituables
por la creación de herramientas para la enseñanza, cabe recordar que mucho del software
utilizado en la educación e investigación actual, fue en su inicio un auxiliar creado para la
enseñanza.
6.1 Trabajos Futuro
Dentro del proceso de mejora continua, a la HMI podría agregársele una interfaz
OPC, esto es, incorporar la interfaz de aplicación (Application Program Interface “API”)
OPC, lo anterior ampliaría la gama de dispositivos a la cual la aplicación se podría
conectar, además de que facilitaría y se harían más confiables las conexiones con
dispositivos. Otro proyecto importante podría ser la remoción del UDC 6300 y realizar la
adquisición/estimulación de sensores/actuadores directamente con tarjetas de adquisición
de datos de National Instruments™, lo anterior eliminaría la limitante del tiempo de
muestreo que impone el controlador UDC 6300 al momento de recibir datos por
comunicaciones RS232.
En lo referente a las aplicaciones a desarrollar en la HMI; en la opinión del autor
de esta investigación las aplicaciones pueden llegar a ser infinitas ya que muy diversos
esquemas de control podrían ser implementados además de los usados en esta
investigación.
64
65
Bibliografía [1] Murria, R.; Åström, K.;Boyd, S.; Brocket, R.; Stein,G.; “Future Directions in
Control in an Information-Rich World”, Control Systems Magazine, IEEE, 23(2), Abril 2003 pp:20 - 33
[2] Antsaklis, P.; Basar, T.; DeCarlo, R.; McClamroch, N.H.; Spong, M.; Yurkovich,
S.; “Report on the NSF/CSS Workshop on New Directions in Control Engineering Education”, Control Systems Magazine, IEEE, 19(5), Oct. 1999 pp:53 - 58
[3] Morales-Menéndez, R.; Limón-Robles, J.; Ramírez-Mendoza, R. A. “Educational
Technology at Monterrey Tech” Computers and Advanced Technology for Education 2005.pp: 221-226, Oranjestad, Aruba, Agust 2005.
[5] Hough, M, Word, E.; Yip, S.; Marlin, T.; “A Web Site to Support Active Student
Learning in Process Control”. American Society for Engineering Education. Proceedings of the 2002 American Society for Engineering Education Annual Conference & Exposition
[6] Mansour, M.; Schaufelberger, W.; “Software and Laboratory Experiments Using
Computers in Control Education”, Control Systems Magazine, IEEE, 9(3), Abril 1989 pp:19 - 24
[7] Cooper, D.; Dougherty, D.; Rice, R.; “Building Multivariable Process Control
Intuition Using Control Station”, Chemical Engineering Education, 37, 100 (2003)
[8] Etxebarria, V.; Lizarraga, I.; Alcalde, J.; “An Integrated Environment for Practical
Control Engineering Coursed”. International Journal of Electrical Engineering Education; Jan 1998; 35, 1; ProQuest Education Journals pp:3-13
[9] Lim, K.W.; Ong, C.T.; Sivagnanam, E.; “Development of a Low Cost Control
Workstation”, Industrial Electronics, Control and Instrumentation, 1991. Proceedings. IECON '91., 1991 International Conference on 28 Oct.-1 Nov. 1991 pp:1375 - 1379
[10] Bachnak, R.;Steidley Carl; An Interdisciplinary Laboratory for Computer Science
and Engineering Technology Journal of Computing Sciences in Colleges, Volumen 17 , Issue 5 (Abril 2002), pp: 186 - 192
[12] Ballou , M.;, Vizard, M.; “Microsoft OLE pushes on”. Computerworld.
Framingham: Dec 6, 1993. 27(49); pp: 6 [13] Computerworld.; “COMmon interes”. Computerworld. Framingham: Dec 6,
1993. 27(49); pp. 6
66
[14] Flynn, J.;Clarke, B.;. Datamation, B.; “ActiveX unmasked” Jan 1997. 43(1); pp:134-140
[15] Guterman, J.; “Taking DDE and OLE to the Network: Windows Cross-
Application Communication Protocols Are Readied for Use on LANs”, InfoWorld. San Mateo: Jul 20, 1992. 14(29); pp:53-55
[16] OPC Foundation; “What is the OPC Foundation?, OPC Foundation, 2007
[Online] http://www.opcfoundation .org [17] Sparling, C.; “Plugging into TCP/IP with Windows Sockets”, Data
Communications. New York: Oct 1993. 22(14); pp:117-120 [18] Internet Engineering Task Force; “RFC333”, Internet Engineering Task Force:
Septiembre 2002, [Online], www.ietf.org [19] Inverso, D.; Sokoll, R.; “Optimum human-machine interface design”, Control
Engineering. Barrington: Sep 1997. 44(12); pp:93-96 [20] Haley, R.; Kuehl, S.; “Four steps to HMI screen design”, Control Engineering.
Barrington: Nov 2005. 52(11); pp: 110 [21] Daga, L.; “RS232+LANBlockSet”, Matlab Central, Marzo 2003, [Online]
www.mathworks.com/matlabcentral, [22] Daga, L.; “Real-Time Blockset 7.1 for Simulink”, Matlab Central, Marzo 2003,
[Online] www.mathworks.com/matlabcentral [23] Microsoft Developer Network.; “Dynamic-Link Libraries”; Microsoft
Corporation, Febrero 2007, [Online] www.msdn.com [24] Corripio, A.; Smith, C.; “Principles and Practice of Automatic Process Control”,
Segunda Edición, Wiley, New York 1997. [25] Burchett, B.T.; Layton, R.A., "An undergraduate system identification
experiment," American Control Conference, 2005. Proceedings of the 2005 , vol., no., pp. 5145-5149, 7(8-10), June 2005
[26] Ecpsystems.; “Manual for Model 210/210a Rectilinear Control System”,
Educational Control Products, Bell Canyon, CA, 1999. [Online] http://www.ecpsystems.com
[27] Irawan, R.; Ooi, M.; Yeung, G.; Weyer, E.; Nesic, D.; Mareels, I., "A virtual
laboratory experience based on a double tank apparatus ," Decision and Control, 2001. Proceedings of the 40th IEEE Conference , 3(3), pp.2815-2820, 2001
67
[28] Viedma, G.; Dancy, I.J.; Lundberg, K.H., "A Web-based linear-systems iLab" American Control Conference, 2005. Proceedings of the 2005, 7(8-10), pp. 5139-5144, Junio 2005
[29] Davari, A.;Chandrasekara, C.; "Control experimentation for undergraduate
studen," American Control Conference, 2005. Proceedings of the 2005, 7(8-10), pp. 5156-5161, June 2005
[30] Ecpsystems.; “Manual for Model 205 Torsional Control System”, Educational
Control Products, Bell Canyon, CA, 1999. [Online] http://www.ecpsystems.com [31] Zhang, S.; Wu, H.; Lin,Q.; Zhu, S.;"Netlab-based control experiments for control
engineering education" Control, Automation, Robotics and Vision Conference, 2004. ICARCV 2004, 3(6-9), pp:2188-2193 Dic. 2004
[32] Coito, F.; Almeida, P.; Palma, L.B., "SMCRVI - a Labview/Matlab based tool for
remote monitoring and control" Emerging Technologies and Factory Automation, 2005. ETFA 2005. 10th IEEE Conference, 2(6) pp:19-22 Sept. 2005
[33] Valera, A.; Diez, J.L.; Valles, M.; Albertos, P., "Virtual and remote control
laboratory development" Control Systems Magazine, IEEE , 25(1), pp:35-39, Feb. 2005
[34] Quanser Consulting, “WinCon 4.1 User’s Guide: Hard Real-time Performance at
your Fingertips”, 2003 [Online]. Available: http://www.quanser.com [35] Saco, R.; Pires, E.; Godfrid, C., "Real time controlled laboratory plant for control
education" Frontiers in Education, 2002. FIE 2002. 32nd Annual , 1, pp:12-16, 2002
[36] Selmer, A.; Goodson, M.; Kraft, M.; Sen, S.; McNeill, V. F.; Johnston, B.; Colton
C., “Performing process control experiments across the Atlantic” Chemical Engineering Education, Summer 2005, pp:232-237.
[37] MathWorks.; “Mathworks Product Overview”, 2007 [Online], Available:
http://www.mathworks.com/products [38] National Instruments.; “What Is LabVIEW”, 2007 [Online], Available:
http://www.ni.com/labview/ [39] National Instruments.; “What Is LabWindows/CVI”, 2007 [Online], Available:
http://www.ni.com/lwcvi/ [40] Agilent Technologies.; “Agilent VEE Pro 8.0 and Agilent VEE Express 8.0 Data
Sheet”, 2007 [Online], Available: www.home.agilent.com
68
[41] Siemens.; “Simatic WinCC Flexible April 2007”, 2007 [Online], Available: http://www.automation.siemens.com
[42] Honeywell.; “Profit Suite R300 Release Highlights”, 2007 [Online], Available:
www.honeywell.com/ps [43] Rockwell Automation.; “RSView Producto Profile”, 2005 [Online], Available:
www.rockwellautomation.com [44] Honeywell.; “Honeywell UDC6300 RS422-485 ASCII Communications Option”,
1999[Online], Available:www.honeywell.com/ps [45] Xu, J.; Shao, H.; “Advanced PID tuning for integrating processes with a new
robustness specification”, American Control Conference, 2003. Proceedings of the 2003 , 5(4-6), pp: 3961-3966, June 2003
[46] Argelaguet, R.; Pons, M.; Aguilar, J.; Quevedo, J.; "A New Tuning of PID
Controllers Based on LQR Optimization". IFAC Workshop on Digital Control. Past, present and future of PID control. 2000
[47] Killingsworth, N.J.; Krstic, M., "PID tuning using extremum seeking: online,
model-free performance optimization" Control Systems Magazine, IEEE , 26(1), pp. 70-79, Feb. 2006
[48] Jacob, E. F.;Chidambaram, M.; “Design of controllers for unstable first order
plus time delay Systems”. Comput. Chem. Eng. 1996, 20, 579-584. [49] Park, J.H.; Sung, S.W.;Lee, I.B.; “An enhanced PID control strategy for unstable
process”, Automatica, 1998, 34, 751-756. [50] Driankov, R.; “An Introduction to Fuzzy Control”. Ed: Springer-Verlag, 1992. [51] Abe N.; Yamanaka K.; “Smith Predictor Control and Internal Model Control, A
Tutorial”. SICE Annual Conference in Fukui, Fukui University, Japan, 2003.
[52] Ming, T.; “Internal Model Control” Introduction to Robust Control. University of Newcastle, Chemical and Process Engineering, 2007 [Online], Available: http://lorien.ncl.ac.uk/ming/robust/imc.pdf
[53] ABET.; “Criteria for accrediting engineering programs effective for evaluations during the 2006-2007 accreditation cycle”, Technical Report. Accreditation Board of Engineering and Technology, 2005.
[54] Commission on Colleges Southern Association of Colleges and Schools. “Principles of accreditation: Foundations for quality enhancement”. Technical Report, Accreditation Board of Engineering and Technology, 2004.
[55] Martin, M.; “El modelo educativo del Tecnológico de Monterrey”. México, Tecnológico de Monterrey, 2002
[56] López, T,; Morales-Menendez R.; “A Human Machine Interface for the Teaching Continuos Control Systems”, A aparecer en Modeling, Identification and Control, Innsbruck Austria, Febrero, 2008
69
70
Apéndices
APÉNDICE A. IMPLEMENTACIÓN ..................................................................72
A.1 Pseudo código para la configuración y manejo de un puerto RS232 ............................................ 72
A.2 Descripción del Bloque de Transmisión/Recepción desde Matlab................................................ 73
APÉNDICE B. IMPLEMENTACIÓN DE UN CONTROLADOR PID EN ANSI C.............................................................................................................................74
APÉNDICE C. DESCRIPCIÓN DE LA INTERFAZ............................................76
C.1 Pestaña de parámetros de comunicaciones................................................................................... 76
C.2 Pestaña de datos y monitoreo........................................................................................................ 77
C.3 Pestaña scripts compilados ........................................................................................................... 78
C.4 Pestaña conexión con Matlab™.................................................................................................... 79
APÉNDICE D. DISEÑO DEL CONTROLADOR DIFUSO .................................80
D.1 Desarrollo....................................................................................................................................... 80 D.1.1 Dinámica del proceso................................................................................................................ 80 D.1.2 Diseño del controlador.............................................................................................................. 80 D.1.2 Defusificación .......................................................................................................................... 83 D.1.3 Definición de rangos................................................................................................................. 83 D.1.4 Normalización .......................................................................................................................... 83 D.1.5 Implementación del controlador en Simulink™......................................................................... 83
APÉNDICE E. IMPLEMENTACIÓN DE ESTRATEGIAS DE CONTROL .........85
E.1 Resultados de identificación y sintonización.................................................................................. 85
E.2 Cálculo de la ganancia de antealimentación .................................................................................. 86
APÉNDICE F. DIVERSAS SINTONÍAS DE PID................................................87
F.1 Modelo del proceso......................................................................................................................... 87
F.1 Sintonía por especificaciones de robustez ...................................................................................... 87
F.2 Regulador lineal cuadrático (LQR)................................................................................................ 89
F.3 Sintonización vía extremum seeking .............................................................................................. 90
APÉNDICE G. ESTRATEGIAS DE CONTROL AVANZADAS .........................92
G.2 Internal Model Control.................................................................................................................. 92
G.3 Predictor de Smith......................................................................................................................... 92
APÉNDICE F. MANUAL DE INSTALACIÓN ....................................................94
APÉNDICE H. MANUAL DE USO DE LA INTERFAZ ......................................96
H.1 Monitoreo de la estación de control de nivel ................................................................................ 96
H.2 Ejecución de scripts compilados. .................................................................................................. 97
H.3 Conexión con Matlab™ y Simulink™.......................................................................................... 97
71
72
Apéndice A. Implementación
A.1 Pseudo código para la configuración y manejo de un puerto RS232
A continuación se muestran las principales funciones utilizadas y los parámetros
utilizados.
Configuración del puerto RS232 OpenComConfig (NumeroDePuerto, “COM 1", Baudrate, Parity, Databits, Stopbits, TamañoFilaEntrada, TamañoFilaSalida) Donde:
• NumeroDePuerto es el valor numérico del puerto al que se desea acceder.
• Baudrate es la velocidad de operación en la línea de comunicación serial.
• Parity es el valor del bit con el que cada transmisión empezará.
• Databits es el tamaño en bits de cada transmisión.
• Stopbits es el valor con el que se finaliza cada transmisión.
• TamañoFilaEntrada es el valor de la fila de entrada.
• TamañoFilaSalida es el valor de la fila de salida.
Configuración de la interrupción de recepción. InstallComCallback (NumeroDePuerto, TipoDeEvento, NumeroDeBytes, NombreDeLaFuncion); Donde:
• NumeroDePuerto es el valor numérico del puerto en el que se desea instalar la
interrupción.
• TipoDeEvento define el evento por el cual la interrupción se disparará.
• NumeroDeBytes define la cantidad de bytes en la cual la interrupción se
disparará.
• NombreDeLaFuncion define el nombre de la función que se ejecutara una vez que
la interrupción ocurra.
73
Transmisión de datos desde la HMI al UDC 6300
• ComWrt (NumeroDePuerto, Mensaje, NumeroDeBytes)
Donde:
• NumeroDePuerto es el valor numérico del puerto al que se desea escribir.
• Mensajes es el tipo de petición que se le está haciendo al UDC 6300.
• NumeroDeBytes es la cantidad de bytes que componen el mensaje a enviar.
A.2 Descripción del Bloque de Transmisión/Recepción desde Matlab
La figura A.1 muestra el bloque de transmisión y recepción en las adquisiciones de datos
en tiempo real hechas en Matlab.
Figura A.1 Bloque principal insertado en las simulaciones de Matlab y su correspondencia en el proceso.
1. Bloque se ajuste del tiempo de muestreo, default 5 Segundos, rango de 1ms a 10
minutos.
2. Escritura hacia la válvula de control del flujo de alimentación, default 0, rango de
0% a 100%.
3. Lectura del nivel del agua en el tanque, default 0, rango de 0 a 100%.
4. Lectura del flujo de agua de entrada al tanque, default 0, rango de 0 a 100%.
5. Lectura del flujo de agua de salida del tanque, default 0, rango de 0 a 100%.
74
Apéndice B. Implementación de un controlador PID en ANSI C. A continuación se muestra un controlador digital PID implementado en ANSI C
en el lenguaje de programación DEV-C.
#include "controlador.h" #include <windows.h> #include <stdio.h> #include <stdlib.h> #include "comandos.h" struct MODELVAR *INPUT_1 = NULL; struct MODELVAR *INPUT_2 = NULL; struct MODELVAR *INPUT_3 = NULL; struct MODELVAR *SETPOINT = NULL; double e[10]; double u[10]; double y[10]; double proceso_actual; double manipulacion_actual; double setpoint_actual; double SAMPLE_TIME = 1000; double Kc = .001; double Ti = 10.0; double Td = 0.11; DLLIMPORT void RegisterCommandsProcedure (CONTROLLERCOMMANDSPROC ProcedureCommands, struct DATA_NODE *ModelVarsNodePtr, unsigned char *StopScriptFlagPtr) {
RegisterScriptCommandsProcedure (ProcedureCommands, ModelVarsNodePtr, StopScriptFlagPtr);
RegisterVar (&INPUT_1, "INPUT_1"); RegisterVar (&INPUT_2, "INPUT_2"); RegisterVar (&INPUT_3, "INPUT_3"); RegisterVar (&SETPOINT, "SETPOINT"); } DLLIMPORT void InicializarControl (void) { DisplayText("INICIALIZANDO"); } DLLIMPORT void EjecutarControl (void) { while(1) { SAMPLE_TIME = 1000; (1) setpoint_actual = Read(SETPOINT,1); (2) proceso_actual = Read(INPUT_1,1); (3) y[0] = proceso_actual; e[0] = setpoint_actual - y[0];
75
u[0]= u[1] + Kc*( e[0]-e[1] + (4)
(SAMPLE_TIME/Ti)*(e[0]+e[1])/2 + (Td*(e[0]-2*e[1]+e[2])/SAMPLE_TIME));
if (u[0]>100) u[0]=99; (5) if (u[0]<0) u[0]=1; manipulacion_actual = u[0]; WriteValve(manipulacion_actual, 1); (6) e[9]=e[8]; e[8]=e[7]; e[7]=e[6]; e[6]=e[5]; e[5]=e[4]; (7) e[4]=e[3]; e[3]=e[2]; e[2]=e[1]; e[1]=e[0]; u[9]=u[8]; u[8]=u[7]; u[7]=u[6]; u[6]=u[5]; u[5]=e[4]; u[4]=u[3]; u[3]=u[2]; u[2]=u[1]; u[1]=u[0]; y[9]=y[8]; y[8]=y[7]; y[7]=y[6]; y[6]=y[5]; y[5]=y[4]; y[4]=y[3]; y[3]=y[2]; y[2]=y[1]; y[1]=y[0]; Sleep(SAMPLE_TIME); (8) } } DLLIMPORT void TerminarControl (void) { DisplayText("TERMINANDO"); }
Un ciclo infinito es declarado de tal manera que la ejecución sea infinita a menos
que el usuario la detenga, en (1) se define el tiempo de muestreo deseado, (2) y (3)
realizan la lectura del estado de las variables INPUT_1 y SETPOINT, aquí mismo se
almacenan en variables locales. En (4) se hace el cálculo del valor de manipulación a
partir de los datos obtenidos, en (5) se incluyen dos líneas que saturan la manipulación,
en (6) se escribe el valor de la manipulación deseada y se manda hacia la interfaz que se
encarga de hacer la escritura al controlador UDC 6300 en la estación de monitoreo y
control de nivel, en (7) se hacen los corrimientos de los arreglos que corresponden a la
ecuación de diferencias, por último en (8) se detiene la ejecución de acuerdo al tiempo de
muestreo deseado.
76
Apéndice C. Descripción de la interfaz
C.1 Pestaña de parámetros de comunicaciones
Figura C.1 Pestaña de parámetros de comunicaciones.
En esta pestaña se ajustan los parámetros de comunicaciones entre el UDC 6300 y la interfaz, es necesario tener perfecta concordancia para una comunicación exitosa.
1. Botón de Conexión. Una vez seleccionados los parámetros de comunicación
estos botones sirven para activar y desactivar la conexión al UDC6300. 2. Selector de Puerto. Este selector sirve para definir el puerto serial a utilizar en la
conexión, por default el puerto serial a usar es el COM 1. 3. Selector de Número de Bits. Parámetro necesario para definir el tamaño de la
trama de datos usada en la comunicación, por default la trama usada es 7 bits. 4. Selector de Velocidad. Parámetro necesario para definir la velocidad de
transmisión usada en la comunicación, por default la usada es 19200. 5. Selector de Paridad. Parámetro necesario para definir el tipo de paridad usada
en la comunicación con el UDC6300, por default la usada es EVEN. 6. Selector de Bits de Relleno. Parámetro necesario para definir el tipo de relleno
de bits usados en cada trama, por default 1 es usado. 7. Barra de Estado del Mensaje. En esta parte se reporta si el envío del mensaje
fue exitoso o invalido, por default es exitoso.
77
8. Barra de Estado del UDC. En esta parte se reporta el estado del controlador. 9. Barra de Estado del Modo de Operación. Aquí se reporta el modo de
operación del controlador, automático, manual o monitoreo, por default manual. 10. Visualizador Grafico. Este elemento muestra el comportamiento de las señales a
monitorear. 11. Estado de Conexión. Aquí se muestra el estado de conexión del sistema, por
default es desconectado. 12. Pestañas de Acceso. La interfaz cuenta con una serie de pestañas que permiten
el acceso a las diferentes opciones disponibles. 13. Botón de Salida. Botón para salir de la aplicación.
C.2 Pestaña de datos y monitoreo
Figura C.2 Pestaña de datos y monitoreo. En esta pestaña se seleccionan las variables a monitorear y se ajusta el tiempo de muestreo, también una
bitácora de comunicaciones es proveída para la detección de errores de comunicación.
1. Indicadores Tipo Barra. Indicadores gráficos donde se muestran los parámetros monitoreados.
2. Referencia e Indicadores Numéricos. Muestran el nombre de la señal graficada y su valor numérico, por default 0.
3. Visualizador Grafico. Este elemento muestra el comportamiento de las señales monitoreadas, por default el valor mostrado es 0.
78
4. Barra de Señal de Manipulación. Este elemento comanda la abertura deseada de la válvula, por default se envía 0.
5. Bitácora de Comunicaciones. En esta ventana se muestra el estado de la comunicación entre el UDC y la interfaz.
6. Selector de Señales a monitorear. En esta ventana se seleccionan las señales que se desea monitorear, por default 0.
7. Selección de Tiempo de Muestreo. En esta ventana se define el tiempo de muestreo con el que se realizarán las peticiones al controlador, por default el tiempo de muestreo es 1 segundo.
8. Habilitador de Monitoreo. Una vez seleccionadas las señales a monitorear este botón habilita la tarea, por default deshabilitado.
9. Selector de Señales a almacenar. De ser necesario aquí se seleccionan las señales que serán almacenadas en un archivo, por default deshabilitado.
10. Botón de Salvar Archivo. Este botón permite la definición de un nombre para el archivo donde se almacenarán los datos.
11. Habilitar Tarea de Almacenar. Este botón habilita la tarea de almacenar los datos en archivo.
C.3 Pestaña scripts compilados
Figura C.3 Pestaña de ejecución de scripts compilados en ANSI C. En esta pestaña se cargan y ejecutan los scripts compilados en ANSI C, al momento de cargar el controlador
empieza su ejecución hasta que el botón de para es presionado o la aplicación terminada.
79
1. Botón para cargar scripts. Con este botón es posible seleccionar el archivo tipo dll en el cual está implementado el controlados.
2. Botón para detener ejecución. Presionando este botón se detiene la ejecución del archivo dll.
3. Bitácora de Ejecución. En esta ventana se despliega información relacionada a la ejecución del script compilado.
4. Perilla de Setpoint. Con este control es posible introducir al script un valor numérico, comúnmente usado como referencia.
C.4 Pestaña conexión con Matlab™
Figura C.4 Pestaña de conexión a Matlab. En esta pestaña dos indicadores muestran el estatus de conexión con Matlab, además se provee un interruptor
para iniciar comunicaciones, así como una bitácora de conexión.
1. Bitácora de Recepción de datos. En esta ventana se muestran los valores recibidos de abertura de la válvula y el estatus de la conexión.
2. Habilitación de Conexión. Este control habilita el servidor implementado en la interfaz.
3. Indicadores de Estado. Los indicadores muestra el estado del servidor y si el cliente de Matlab está activo.
80
Apéndice D. Diseño del Controlador Difuso
D.1 Desarrollo
D.1.1 Dinámica del proceso
La dinámica del proceso descrita por el experto es la siguiente:
“Cuando el nivel del tanque actual se encuentre muy por debajo del nivel deseado,
la válvula tendrá que abrirse mucho para dejar entrar mucha agua. Conforme vaya
subiendo el nivel y se vaya acercando al valor deseado, esa abertura de válvula
tendrá que ir disminuyendo hasta llegar a una manipulación actual y mantenerla
cuando el valor deseado haya sido alcanzado.
En el caso contrario, cuando el nivel actual se encuentre por arriba del nivel
deseado, la válvula tendrá que cerrarse mucho al principio pero cada vez
abriéndose poco a poco hasta llegar al nivel deseado y mantener la manipulación”.
D.1.2 Diseño del controlador Como entradas al controlador se tomaron el error actual y su razón de cambio. El
error se calculó restando el valor actual del nivel del valor de referencia (referencia). El
derivativo del error, permite saber si el nivel en el tanque crece o decrece y en su
proporción. De esta manera, con las dos entradas, se puede saber que tanto se desvía el
nivel actual del nivel deseado y si se aproxima o se aleja.
La salida del controlador es la manipulación de la válvula de alimentación del
sistema. Al tomar en cuenta diferentes condiciones y reglas, se toma una decisión sobre
como manipular la válvula.
La tabla de reglas se define en la tabla D.1.
Tabla D.1 Tabla de reglas del controlador difuso CONDICIONES ACCIONES
1 Error Grande y Positivo Abrir Mucho 2 Error Positivo y Derivativo No Positivo Abrir Poco 3 Error Positivo y Derivativo Positivo No Manipular 4 Error Pequeño y Derivativo Negativo Abrir Poco 5 Error Pequeño y Derivativo Pequeño No Manipular 6 Error Pequeño y Derivativo Positivo Cerrar Poco 7 Error Negativo y Derivativo Negativo No Manipular
81
8 Error Negativo y Derivativo No Negativo Cerrar Poco 9 Error Grande y Negativo Cerrar Mucho
Posteriormente se calcularon los rangos para determinar la magnitud de cada una
de las acciones y poder programar las funciones de membresía. Estas se muestran a
continuación.
El error puede caer en un valor como máximo de -10 a 10. Indicando este la
diferencia entre el nivel deseado y el nivel actual. Para programar la función de
membresía se dividió entre 10 para poder hacer ajustes más finos en los rangos.
Figura D.1 Función de Membresía del Error.
Esta función de membresía permitirá hacer ajustes en la abertura de la válvula dependiendo del nivel en el tanque.
El termino derivativo o razón de cambio se normalizó y se puso en un rango de -1
a 1. Los valores pequeños, obtenidos del derivativo, son considerados como todos
aquellos que están muy cerca de cero.
Figura D.2 Función de Membresía del Derivativo del Error.
Esta función de membresía ayudara a tomar decisiones del hecho de conocer la tendencia del error.
La manipulación de salida tiene 5 posibilidades, las cuales se muestran en la
Tabla D.1. El rango incluye valores de -1 a 1. Equivalentes a incrementos relativos a la
manipulación actual existente en la válvula.
82
Figura D.3 Función de Membresía de la Manipulación.
Una vez que se conoce el error en el tanque y su tendencia esta función de membresía nos ayuda a decidir que porcentaje se abre la válvula.
Adicionalmente, para poder tener un ajuste más fino, se definió una segunda
función de membresía de salida que controla la ganancia a la salida de la manipulación.
De esta manera, entre más pequeño sea el error, la ganancia disminuye, haciendo los
incrementos más pequeños logrando un mejor control.
Como entradas se utilizó la magnitud del Error. Se agrego otro rango llamado CP
(Casi Pequeño) debido a que se necesitaba que la ganancia disminuyera antes que el
rango definido como P (Pequeño).
Para esto se agregaron las reglas de la Tabla D.2 y la función de membresía de la figura D.4.
Tabla D.2 Reglas de salida de la variable Ganancia 10 Error Grande y Positivo Ganancia Grande 11 Error Grande y Negativo Ganancia Grande 12 Error Positivo Ganancia Mediana 13 Error Negativo Ganancia Mediana 14 Error Casi Pequeño Ganancia Pequeña
La función de membresía de la ganancia se programó con tres rangos: Ganancia
Grande (8), Mediana (5) y Pequeña (2). De esta manera, dependiendo del tamaño del
error, la manipulación se multiplica por una ganancia diferente.
Figura D.4 Función de membresía de la salida Ganancia.
Esta función de membresía provee al controlador la posibilidad de escoger una ganancia de acuerdo a la magnitud del error.
83
D.1.2 Defusificación
El proceso de defusificación es convertir los conjuntos difusos de valores
obtenidos a partir de las operaciones de lógica difusa en un valor conciso que pueda
usarse para manipular la planta en cuestión. Los procesos de defusificación calculan un
valor en base a las áreas de las funciones de membresía de las salidas.
Para este caso se utilizó el método de centro de gravedad que consiste en
determinar el centro del área bajo las funciones de membresía combinadas.
D.1.3 Definición de rangos Los rangos para las funciones de membresía fueron definidos en base a
experimentación con la estación de monitoreo y control de nivel. Para lograr que la
manipulación de la válvula fuera “frenándose” se definió como rangos de error pequeño
lo que se considero que fuera necesario para que el nivel no tuviera un sobretiro, es decir,
que el controlador se diera cuenta, con suficiente anticipación, que el nivel se acercaba a
la referencia deseada. En cuanto a los rangos de la abertura de la válvula, también se
hicieron por medio de la experimentación, manipulándolos para que cuando el nivel se
aproximara a la referencia, la válvula se cerrara o abriera lo suficiente como para que no
hubiera sobretiros.
D.1.4 Normalización La normalización se hizo para hacer que el derivativo del nivel, cayera siempre
dentro de un rango de -1 a 1. Se hicieron pruebas extremas de cambio de nivel para
observar la razón de cambio máxima a la que el tanque se comportaba. De esta manera,
dividiendo entre este valor máximo, los valores de las derivadas menores siempre
cayeran dentro del rango y se distribuyeran entre todos los valores dentro del rango.
D.1.5 Implementación del controlador en Simulink™.
El controlador toma los valores de la lectura del nivel del tanque con la finalidad
de determinar su tamaño y su razón de cambio. Con estos datos se obtienen las dos
84
entradas para las funciones de membresía y establecer una salida adecuada según las
reglas de la Tabla D.1. Esta salida es multiplicada por una ganancia que disminuye o
aumenta según el tamaño del error. La manipulación de salida se le suma a la
manipulación anterior para obtener una nueva salida aumentada o disminuida.
La implementación y descripción en Matlab se puede observar en la figura D.5.
Figura D.5 Diagrama de Bloques del controlador Difuso.
Una vez entendida la dinámica del proceso solo hizo falta arrastrar los bloques, al ambiente de trabajo de Simulink.
1. Escritura de valor de manipulación.
2. Lectura de los valores de nivel, flujo de entrada y salida.
3. Referencia del controlador
4. División del error entre 10 para ajustarlos en un rango de -10 a 10.
5. Normalización del derivativo.
6. Obtención del nivel actual para ser comparado con la referencia.
7. Controlador difuso
8. Obtención del derivativo para deducir la razón del cambio del nivel.
9. Multiplicación de las dos salidas del controlador difuso: Manipulación y
Ganancia.
10. Memoria que almacena el valor anterior de la salida que es relativa a la
manipulación anterior.
11. Manipulación con saturación mínima de 10 y máxima de 90.
85
Apéndice E. Implementación de estrategias de control
E.1 Resultados de identificación y sintonización Se realizó la identificación del lazo esclavo y se obtuvieron los siguientes
parámetros.
15.4452.3)(
26.25
+=
−
sesGp
)1(
El controlador “esclavo” se sintonizó por el método de ganancia última y se
obtuvieron los siguientes valores, Kc = 0.6 y Ti = 0.1
Para el controlador “maestro” la identificación del lazo arrojó el siguiente modelo
11237.3)(
5
+=
−
sesGp
)2(
Los parámetros de sintonización del controlador “maestro” con criterio ITAE para
servo control son los siguientes: Kc = 2.97 y Ti = 70.39
La implementación y descripción de la cascada en Matlab Simulink se puede
observar en la figura E.1.
Figura E.1 Diagrama de bloques de la estrategia en cascada en Simulink.
Una vez conocidos los diferentes parámetros, su implementación consistió en el arrastre de bloques.
1. Controlador PID maestro
2. Controlador PID esclavo
3.
86
E.2 Cálculo de la ganancia de antealimentación
Para la estrategia en cascada con antealimentación fue necesario calcular la
ganancia de antealimentación, para calcularla se realizó un experimento en el cual el
proceso funcionó sin ningún lazo de control. Se realizó el siguiente experimento: 1) Se
aplicó una entrada escalón en la válvula de paso, 2) Una vez estabilizado, se aplicó una
perturbación en el flujo de salida del tanque.
Con el experimento anterior se calculó la ganancia de ambos procesos y se estimó
la ganancia de antealimentación Kf f =DU/DD = 0.5714
Las ganancias de adelanto y atraso no fueron usadas en el experimento. La
implementación y descripción de la cascada en Matlab Simulink se puede observar en la
figura E.2
Figura E.2 Diagrama de Bloques del controlador cascada con antealimentación.
Una vez conocido el parámetro de antealimentación basta con arrastrar y conectar los bloques.
4. Controlador PID maestro
5. Bloque acondicionador de señal antealimentada.
6. Controlador PID esclavo
7. Bloque de antealimentación
8. Tiempo de muestreo
87
Apéndice F. Diversas sintonías de PID
F.1 Modelo del proceso
El modelo del proceso obtenido de la identificación es el siguiente:
157.3497.1)(
21.5
+=
−
sesGp (3)
F.1 Sintonía por especificaciones de robustez
El método de sintonización de un PID basado en especificaciones de robustez
[45], esta diseñado para mantener la simplicidad de aplicación de un controlador PID
añadiéndole los parámetros necesarios para diseñar un controlador más robusto. Para
diseñar controladores de procesos estables y/ó procesos inestables, primero es necesario
obtener un modelo de la planta. Los modelos de las plantas obtenidos comúnmente son
imprecisos y los parámetros se encuentran variando a través del tiempo por condiciones
de trabajo o algún otro factor intrínseco o extrínseco. La robustez es una característica
que es muy importante para ser considerada cuando se analizan y diseñan sistemas de
control.
El método usado para el diseño de este controlador está basado en el diseño
basado en especificaciones de robustez descrito por Jianghua Xu [45]. El esquema de
control esencialmente es un lazo cerrado para retroalimentación en la estructura de un
PID, que adopta una estrategia con un lazo interno de retroalimentación propuesto por
Jacob y Chidambaram [48] y desarrollado por Park [49]. La estructura de lazo cerrado
con el que trabaja el controlador diseñado es la siguiente:
Figura F.1 Diagrama de bloques para el controlador PID basado en especificaciones de robustez
Aplicando la técnica a un proceso de primer orden:
88
1)(
+=
−
TsKesG
sL
p
)4(
La ecuación en lazo cerrado podría aproximarse de la siguiente forma:
1)(5.0)()( 22
'1 −+−+
=≅−
ttt
sL
p KKsLKKTSLKKKesGsG
)5(
De la cual se deducen los siguientes parámetros necesarios para el diseño del
control propuesto:
( )TLTKL
K p −=5.0
)6(
⎟⎟⎠
⎞⎜⎜⎝
⎛−= 15.0
LT
KLK i
)7(
( )KLK
K d25.0
= )8( ⎟⎟⎠
⎞⎜⎜⎝
⎛=
LT
KK t
1
)9(
Basado en el método propuesto por Jianghua y Huihe [45], con el modelo de la
planta definido en la ecuación (4) de este apéndice, y teniendo como única condición para
la aplicación del método la desigualdad de T/L > 1; lo cual se cumple en el proceso. Los
valores para el diseño del PID y la ganancia de lazo interno quedan de la siguiente forma
Kp = 1.03 ; Ki = 0.07; Kd = 1.70; Kt = 1.30.
La implementación y descripción en Matlab se puede observar en la figura F.1
1 2
Figura F.2 Diagrama de Bloques del controlador PID con parámetros de robustez.
Se puede observar la similitud que existe entre el esquema conceptual y la aplicación desarrollada en Simulink
89
1. Controlador PID
2. Ganancia Kt
F.2 Regulador lineal cuadrático (LQR) La sintonía vía un Regulador Lineal Cuadrático [46] (LQR, por sus siglas en inglés),
minimiza el error integral cuadrático ISE del proceso controlado para un cambio brusco
en la referencia. La diferencia con otras técnicas de sintonía reside en el hecho de que la
solución puede ser obtenida inmediatamente si el retraso se modela a un primer orden por
aproximación de Padé. Generalmente esta aproximación es aceptable cuando la constante
de tiempo es mucho más grande que el tiempo muerto y los resultados pueden ser
extrapolados al proceso real [46].
Las características que debe tener el sistema para implementar esta técnica son: el
proceso debe ser un Primer Orden con Tiempo Muerto (FOPDT) y la estructura del
controlador debe ser ideal, el cual está expresado matemáticamente por la ecuación:
⎟⎟⎠
⎞⎜⎜⎝
⎛++= S
SKG d
ic τ
τ11
)10(
La ganancia proporcional kp, la constante integral iτ y la constante derivativa dτ , se obtienen de la siguiente manera:
TT
Kk p 2
21 += τ
)11( 2T
i += ττ
)12( T
Td +=
τττ
2 )13(
De acuerdo al modelo del proceso definido en la ecuación (4) de este apéndice, se obtiene los valores para kp = 3.6622, iτ = 37.17 y dτ = 2.4225. La implementación y descripción en Matlab se puede observar en la figura F.2
90
Figura F.3 Diagrama de Bloques del controlador PID con sintonización LQR o ES.
La implementación en Simulink es bastante sencilla, basta arrastrar los bloques del “toolbox control systems” y ajustar los parámetros de sintonización.
F.3 Sintonización vía extremum seeking
La sintonía de un controlador vía Extremum Seeking [47] (ES) no requiere que el
lazo este abierto ya que usa la sintonía iterativa retroalimentada (Iterative Feedback
Tuning, IFT, por sus siglas en inglés). IFT optimiza de forma iterativa los parámetros del
controlador con una función de costo derivada de la señal de salida del lazo cerrado del
sistema. Este método esta basado en el desempeño del lazo cerrado del sistema durante
un cambio escalón.
Esta técnica optimiza la respuesta al escalón del sistema a lazo cerrado,
consistente de un controlador PID y una planta desconocida. ES minimiza el costo de la
función, la cual cuantifica el desempeño del controlador PID. Es un método basado en un
modelo desconocido que de forma iterativa modifica los argumentos de la función de
costo (para este caso los parámetros del controlador) de tal manera que la salida alcanza
un valor local máximo o mínimo.
El esquema de implementación que debe de seguir el método de ES consiste en
una planta desconocida de Primer Orden Con Tiempo Muerto, un PID ideal, el cual se
expresa matemáticamente en la ecuación 10. Y un seguidor, el cual se expresa
matemáticamente de la siguiente manera:
⎟⎠⎞
⎜⎝⎛
+=
11)(
sKsC r
)14(
La ganancia proporcional kp, la constante integral iτ y la constante derivativa dτ ,
se obtienen de la siguiente manera:
( )( )( )LTK
LTkfp
p ++
=2
2
)15(
2LTi +=τ
)16( ( )
( )LTTL
d +=
2τ
)17(
Donde K es la ganancia del sistema, T es la constante de tiempo del sistema, L es
el tiempo de retraso y Tf es el parámetro de diseño que afecta la compensación entre la
robustez y el desempeño. Los valores obtenidos son los siguientes kp = 1.3280, iτ =
37.17 y dτ = 2.4225. La implementación y descripción en Matlab se puede observar en
la figura F.3
91
92
Apéndice G. Estrategias de control avanzadas
G.2 Internal Model Control El modelo del proceso obtenido de la identificación es el siguiente:
119.8127.3)(
55.2
+=
−
sesGp (18)
De acuerdo a Ming [52] las constantes del controlador PID con estrategia IMC se
calculan con las siguientes ecuaciones.
)( θλτ+
=K
Kc (19) ττ =i (20)
2θτ =D (21) ( )θλ
λθτ+
=2f (22)
Donde λ es una constante de ajuste, definida como 15 para este caso en particular.
Obteniendo los siguientes valores de kp = 1.4147, iτ = 0.0226 y dτ = 0.2004. La
implementación y descripción en Matlab™ se puede observar en la figura 5.19.
G.3 Predictor de Smith Se propone la siguiente estructura propuesta por Abe [51]:
Figura G.1 Estructura del Predictor de Smith
Donde Gc corresponde a un controlador PID, Gp(s) es el modelo del proceso y G(s) es el modelo del proceso sin tiempo muerto.
El modelo del proceso obtenido de la identificación es el siguiente:
132.5148.3)(
65.1
+=
−
sesGp (23)
A partir de la ecuación (23), se obtiene la función de transferencia pulso
21
1
975.0102322.006383.0)( −
−
−
−+
= zz
zzHGp (24)
La implementación y descripción en Simulink™ se puede observar en la figura
5.20.
93
94
Apéndice F. Manual de instalación
1. Situarse en el folder donde los archivos de instalación se encuentran almacenados.
2. Presionar dos veces sobre el icono con el nombre de “setup.exe”
3. Aparecerá la ventana de que la instalación del software ha empezado, seguir
instrucciones.
4. Seleccionar el folder donde desea sea instalado el software, como se muestra a
continuación.
5. Siga las instrucciones hasta finalizar la instalación.
95
96
Apéndice H. Manual de uso de la interfaz
H.1 Monitoreo de la estación de control de nivel Esta opción permite al usuario monitorear las variables de proceso, referencia,
salida de control, valor de las entradas en el controlador UDC 6300. Para una conexión
exitosa con el controlador UDC 6300 se debe asegurar que los siguientes parámetros
estén configurados en el controlador UDC 6300.
• 422 ASCII
• Address 1
• Address 2
• Default Framming
• None XMT Delay
• Eng Unit Units
• 255 SHED Time
• To Manual SHED Mode
• To CSP SHED SP
• 1,00 CSP Ratio
• 0,0 CSP Bias
• Disable TEST COM
1. Una vez configurados los parámetros en el controlador UDC 6300, ajustar los
parámetros en la HMI en la pestaña “Communications Parameters”, y presionar el
botón de “CONNECT”, figura C.2
2. Una vez conectado activar la pestaña “UDC Data”, seleccionar las variables a
monitorear en la ventana “Monitor”, ajusté el tiempo de muestreo deseado en
“Request Interval”, y habilitar con el interruptor “Enable”, ver figura C.2.
3. Al momento de habilitar la comunicación con el interruptor de “Enable”, se
empezará a observar el flujo de mensajes de comunicación con el controlador
UDC 6300 en la ventana “Communications Log”, de la misma manera se
habilitaran los indicadores de nivel y la gráfica de datos, ver figura C.2.
97
4. De ser necesario, es posible almacenar los valores obtenidos por la HMI, para
hacerlo solamente es necesario seleccionar en la ventana “Log List” las variables
a almacenar y habilitar la captura con el interruptor “Enable Capture”, una vez
terminada la captura se pueden grabar a archivos “*.csv” presionando el botón
“Save Logs”, ver figura C.2
H.2 Ejecución de scripts compilados.
1. Para hacer uso de esta característica, las otras opciones de la HMI deben estar
deshabilitadas, y la interfaz conectada al controlador UDC 6300.
2. Cargar el archivo “*.dll” presionando el botón “Load Controller”, al momento se
empezará la ejecución del controlador, ver figura C.3
3. En la ventana “Session Log” aparecerán los valores de las variables de la interfaz
usadas por el script, ver figura C.3.
4. Una perilla permite el ajuste de la referencia desde la interfaz.
5. El controlador se ejecutará hasta que el usuario presione el botón “Stop
Controller”, ver figura C.3.
H.3 Conexión con Matlab™ y Simulink™.
1. Para hacer uso de esta característica, las otras opciones de la HMI deben estar
deshabilitadas, y la interfaz conectada al controlador UDC 6300.
2. Asegurarse que los siguientes archivos estén presentes en el folder donde se
encuentra el modelo de Simulink™
• LANRead.dll
• LANSetup.dll
• LANWrite.dll
• RTBlock.dll
• STR 2Str.dll
• STR 2WS.dll
• winmm.lib
• RT.lib
98
• RT.mdl
3. Habilitar la conexión con Matlab™ habilitando el interruptor “Enable Server
Data”, en la pestaña “Server Data”, ver figura C.4
4. El indicador “ONLINE” se encenderá, ver figura C.4
5. En Simulink™, es necesario ajustar el tiempo de muestreo y “solver” a utilizarse.
6. Para ajustar el tiempo de muestreo, en el bloque insertado del proceso presionar
dos veces “RTBlock”, ver figura A.1. La ventana de la figura H.1 aparecerá en la
pantalla. Ajustar el tiempo de muestreo “Timestep” en milisegundos.
Figura H.1 Ajuste del tiempo de muestreo en el RTBlock.
99
7. Para continuar con el ajuste del tiempo de muestreo en el menú de Simulink™,
buscar “Simulation Configuration Parameters”.
8. La ventana mostrada en H.2 aparecerá, ajuste los parámetros de “Solver options”,
“Type Fixed-step”, “Solver discrete (no continuos states)”, “Periodic
sample time constraint Unconstrained”, “Tasking mode for periodic sample
times Auto”. El parámetro “Fixed-step size” debe ser ajustado de acuerdo al
tiempo de muestreo deseado y configurado en el paso 6 de esta sección, pero a
diferencia de la definición anterior que fue en milisegundos en este campo debe
ser en segundos.
Figura H.2 Configuración de los parámetros del solver en Simulink™
9. Terminar configuración, y determinar el tiempo máximo que durara la simulación.
10. Al momento de activar la aplicación en Simulink™, si la conexión fue exitosa, el
indicador “MATLAB ON”, cambiara de color, y aparecerá el flujo de datos en la
ventatana “Incoming Matlab Req”.
100
Publications
Accepted paper to appear at
The 27th IASTED International Conference on Modelling, Identification, and Control
~MIC 2008~
Innsbruck, Austria February 11 – 13, 2008