Ejemplo - Departamento de Electrónica - UTFSM

Anuncio
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE ELECTRÓNICA
Alternativas de Solución de Proyecto de
Titulación
“Simulación y Diagrama 3D de Control y
Supervisión de un Sistema
Diesel-Generador-Motor-Hélice”
Presentado por:
ROL USM:
Profesor guía:
Fecha:
Michael Silva Muñoz
2621003-8
Sr. Alejandro Suárez Sotomayor
23/05/2011
Proyecto de Titulación
INTRODUCCIÓN
En el presente documento se darán a conocer las alternativas de solución consideradas
para llevar a cabo el Proyecto “Simulación y Diagrama 3D de Control y Supervisión de un
Sistema Diesel-Generador-Motor-Hélice”, concentrándose en cómo se logrará supervisar la
simulación del sistema mediante una interfaz hombre máquina (HMI). Dicha simulación se
considerará entonces, como disponible en una aplicación Matlab, radicando el problema en cómo
ingresar/exportar datos a este esquema desde/hacia otra aplicación que implemente la HMI, como
se muestra en el diagrama de la Figura 1.
Sistema en
Matlab
HMI
PC
Usuario
Figura 1.
Diagrama de Flujo de Datos Matlab – HMI - Usuario
ALTERNATIVAS DE SOLUCIÓN
Se revisarán tres aplicaciones que permiten confeccionar una HMI, y que tienen la
propiedad de poder intercambiar datos con Matlab: LabView mediante Simulation Interface
Toolkit, Fix Dmacs mediante conexión DDE y LabView mediante conexión DDE. Como no
existe una fuente de información que compare explícitamente las alternativas, se desarrollará en
la exposición de cada una de ellas, un resumen de las características principales de la aplicación,
el procedimiento base detallado que se necesitaría para poder realizar la conexión entre Matlab y
la HMI (Con el fin de poder analizar con mayor autoridad cada alternativa), y las conclusiones
respecto de las ventajas y desventajas que ofrece cada una de las opciones.
1
Proyecto de Titulación
ALTERNATIVA N°1: LABVIEW MEDIANTE SIMULATION INTERFACE TOOLKIT
LabView es una herramienta diseñada especialmente para monitorizar, controlar,
automatizar y realizar cálculos complejos de señales analógicas y digitales capturadas a través de
tarjetas de adquisición de datos, puertos serie y GPIBs (Buses de Intercambio de Propósito
General).
Es un lenguaje de programación de propósito general, como es el Lenguaje C o Basic,
pero con la característica que es totalmente gráfico, facilitando de esta manera el entendimiento y
manejo de dicho lenguaje para el diseñador y programador de aplicaciones tipo SCADA
(Supervisory Control And Data Adquisition).
Incluye librerías para la adquisición, análisis, presentación y almacenamiento de datos,
GPIB y puertos serie, además de otras prestaciones, como la conectividad con otros programas,
por ejemplo de cálculo, y en especial Matlab, que es la aplicación que se le daría en este
proyecto.
Está basado en la programación modular, lo que permite crear tareas muy complicadas a
partir de módulos o sub-módulos mucho más sencillos. Además estos módulos pueden ser usados
en otras tareas, con lo cual permite una programación más rápida y provechosa [1].
Conexión Simulink a LabView mediante Simulation Interface Toolkit [2]
La herramienta Simulation Interface Toolkit (SIT) de LabView, permite construir una
interfaz de usuario para un modelo realizado en Simulink. Esto lo lleva a cabo al generar
automáticamente un código LabView, lo cual se logra configurando primero el modelo Simulink
para realizar la comunicación, y luego creando en LabView un host VI (Instrumento Virtual) que
automáticamente llama, corre e interactúa con dicho modelo.
Para configurar el modelo en Simulink se deben seguir los siguientes pasos:
1. Guardar los archivos Simulink (.mdl) y LabView (.VI). (Ej. sinewave.mdl y Sine
Wave.VI).
2. Abrir Matlab y verificar que la ventana de comandos muestra el siguiente mensaje:
STARTING THE SIT SERVER ON PORT 6011
SIT SERVER STARTED
2
Proyecto de Titulación
Simulation Interface Toolkit automáticamente instalará el SIT Server, por lo que si
este mensaje no se ve, la Toolkit no ha sido correctamente instalada.
3. Abrir Simulink desde la ventana de comandos de Matlab.
4. Seleccionar File >> Open y abrir el archivo .mdl (Siguiendo el ejemplo, abrir el
archivo sinewave.mdl).
El modelo de la simulación debería parecerse al siguiente diagrama:
Figura 2. Ejemplo de diagrama Simulink para simulación
5. En la figura 2, se ha incorporado un bloque llamado SignalProbe. Este bloque debe ser
puesto en la capa superior del diagrama de simulación, para que pueda ser encontrado
por la librería NI SIT Blocks de LabView.
6. Configurar los parámetros de simulación seleccionando Simulation >> Simulation
Parameters. En la ayuda LabView Simulation Interface Toolkit Help puede
encontrarse la forma de cambiar estos parámetros desde la HMI.
7. Guardar el modelo Simulink.
Al completar los pasos de configuración del modelo Simulink, se está en condiciones de
crear la interface en LabView, manteniendo toda la potencia operacional que otorga Matlab para
la simulación. Para ello se debe seguir el siguiente procedimiento:
3
Proyecto de Titulación
1. Abrir LabView y crear un nuevo VI (Instrumento Virtual).
2. Poner en el Panel Frontal (HMI de LabView) los controles necesarios para la simulación
(En el ejemplo, podría ser dos perillas para establecer la amplitud y frecuencia de una
onda sinusoidal de la simulación).
3. Poner los Waveform Chart (Gráficos en LabView) para observar las señales que se
quieren analizar en la simulación. Para el caso de la onda sinusoidal, el eje Y podría
representar la amplitud de la onda, y X tiempo, con lo que se tendría un Panel Frontal
como el de la Figura 3:
Figura 3.
Ejemplo de HMI en LabView para la simulación de una onda sinusoidal
4. Se pueden crear asignaciones entre el VI y el modelo Simulink,. Para ello, se debe
seleccionar desde el VI, Tools >>SIT Connection Manager.
5. En la categoría Model and Host, seleccionar Simulation Environment bajo Host
Execution. El Host Execution es la máquina en la cual el servidor SIT está corriendo. Para
seleccionar Real Time Target o Driver VI en el Local Host, primero se debe convertir el
modelo Simulink a DLL, antes de crear las asignaciones.
4
Proyecto de Titulación
6. En Current Model, seleccionar Browse y luego el archivo .mdl en el cual está la
simulación. (Ej. sinewave.mdl).
7. En Project Directory, seleccionar Browse u luego la carpeta en la cual se desea contener
el proyecto (VI). Idealmente, esta debería ser la misma carpeta en la cual el modelo está
localizado.
8. En Category List, seleccionar Mappings para mostrar la hoja de asignaciones. La tabla de
asignaciones actuales muestra los controles e indicadores que se han creado antes en el
Panel Frontal. Esta hoja se utilizará para mapear los ítems del Panel Frontal al modelo
Simulink, como se observa en la Figura 4.
Figura 4. Tabla de Asignaciones de ítems de Panel Frontal a modelo Simulink
9. Seleccionar el Control que se desea mapear, desde la tabla Current Mappings, y hacer
click en el botón Change Mappings. Esto abrirá el cuadro de diálogo Specify Parameters,
donde se podrá configurar dicho control (Ej: Abrir el cuadro de diálogo del control de
Frecuencia para la Señal sinusoidal).
10. En el cuadro de diálogo del control, seleccionar el Control a configurar seleccionando
archivo.mdl >> archivo.VI, y presionar OK (Ej. sinewave.mdl >> Sine Wave
>>Frecuency).
5
Proyecto de Titulación
11. Repetir los pasos 9 y 10 para mapear todos los controles e indicadores que se desea
comunicar entre Simulink y LabView.
12. Presionar el botón OK para cerrar el cuadro de diálogo SIT Connection Manager y
generar el código de diagrama de bloques para el VI. Los controles que permiten manejar
la simulación (Model Controls) aparecen automáticamente en el panel frontal como se
observa en la Figura 5.
Figura 5. Panel Frontal de LabView que incorpora controles para simulación en
Simulink
13. Al observar el diagrama de bloques, se observa que el SIT generó un código LabView. En
este código no se debe cambiar ningún elemento que tenga etiqueta verde.
6
Proyecto de Titulación
Al completar la configuración de la HMI en LabView, la simulación se encuentra lista para ser
comandada desde el Panel Frontal. De acuerdo al ejemplo que se ha desarrollado, los controles de
Frecuencia y Amplitud pueden ser usados para cambiar la señal sinusoidal de salida.
El procedimiento aquí descrito no requiere MathWorks Real Time Workshop (RTW). Este VI
usa Simulink para correr la simulación. También podría utilizarse SIT junto con RTW para
construir el modelo en una aplicación dll, donde la simulación corre por si sola. En este caso, se
necesitaría Simulink y RTW para construir el modelo en un archivo dll, y configurar la interfaz
de usuario. Para aplicaciones prototipo, se puede correr el modelo dll in LabView Real Time para
obtener entradas y salidas en tiempo real.
Ventajas y Desventajas de la alternativa
De acuerdo a lo antes expuesto, la alternativa de diseñar la HMI mediante SIT de LabView
presenta las siguientes características:
-
Como LabView y Matlab pueden funcionar en ambiente Windows, el proyecto podría
realizarse en ambiente Windows, el cual es muy amigable al usuario.
-
La configuración de la HMI es simple. No se necesita ser experto en programación, sino
que sólo seguir el procedimiento antes expuesto.
-
Existe bastante información en la WEB respecto de cómo se utiliza SIT para comunicar
LabView con Matlab.
-
Esta alternativa está sujeta a la disponibilidad que se tenga de LabView y en especial de
su aplicación Simulation Interface Toolkit, puesto que ya se dispone de Simulink de
Matlab.
7
Proyecto de Titulación
ALTERNATIVA N°2: FIX DMACS MEDIANTE CONEXIÓN DDE
Proficy HMI/SCADA - Fix es una poderosa solución HMI/SCADA diseñada por
Intellution, basada en una arquitectura Cliente/Servidor, que provee visualización de los
procesos, adquisición de datos y control y supervisión de procesos de manufactura y producción.
Fix ofrece un motor SCADA robusto, con varias opciones de conectividad, arquitectura abierta,
altamente escalable y con modelo de red distribuida. Es usado en una amplia gama de
aplicaciones en diversas industrias, y puede ser utilizado para aplicaciones simples como una
típica HMI que captura y muestra datos, hasta complejas aplicaciones SCADA como el manejo
de lotes de producción, alarmas y control en tiempo real [1].
Conexión DDE entre Matlab y FIX DMACS [3]
La conexión entre Matlab y Fix DMACS aquí expuesta se realiza mediante conexión
DDE. La conexión DDE (Dynamic Data Exchange) es un método de comunicación que usa
memoria compartida para intercambiar datos entre aplicaciones en ambiente Windows, que
permite el intercambio de datos en tiempo real. Los programas que tienen la posibilidad de
trabajar con esta conexión son muy versátiles al momento de necesitar algún componente de otro
software, como lo son Fix y Matlab en el caso de este proyecto, ya que se pueden utilizar la
potencia matemática de Matlab en conjunto con la potencia de interfaz con el usuario de FIX.
La idea es poder manejar la simulación en Matlab desde una HMI FIX, de modo que Fix
envía comandos a Matlab vía DDE, este los procesa y los envía de nuevo a Fix con DDE, para
que este los despliegue en forma amigable al usuario. Este procedimiento se realiza en forma
cíclica y continúa durante todo el proceso de simulación, o al menos hasta que se defina una
interrupción deseada en el algoritmo.
Los programas que soportan el DDE utilizan la sintaxis ATI, que se refiere a Application
Topic Item. El ATI es un formato estándar de identificación de la información DDE y la
descripción de la sintaxis es:
=Application|Topic!Item.
La “Application” es el nombre de la aplicación DDE donde se encuentran los datos, el cual
en muchas aplicaciones corresponde al nombre del programa. “Topic” es el nombre del grupo de
datos a leer, y generalmente corresponde al nombre del archivo. El “Item” representa la
estructura de los datos a transferir, y su nombre depende de la aplicación. En el caso de Matlab el
formato ATI podría ser:
8
Proyecto de Titulación
=MATLAB|ENGINE!Z
En el siguiente ejemplo se muestra la programación realizada para la comunicación DDE
entre FIX y Matlab, con el objetivo de incorporar un Bloque de Control Difuso (Disponible en
Matlab pero no en FIX) para el control de temperatura. La programación en FIX se realiza con el
Lenguaje de Comandos, el cual es una herramienta para automatizar operaciones a través de una
serie de instrucciones, como se muestra en la Figura 6:
Figura 6. Programación en FIX para comunicación DDE con Matlab
El código muestra la declaración de la variable #RETRIEVE como una cadena de caracteres y
#RESULTADO como una variable numérica. La variable #RETRIEVE se utiliza debido a que
FIX recibe los datos en forma de cadena de caracteres. La instrucción GETVAL carga en la
variable #RETRIEVE el dato enviado por Matlab llamado Z. En STRTONUM se convierte la
cadena de caracteres en un valor numérico. Finalmente con SETVAL se coloca el valor numérico
en #RESULTADO en el punto de la base de datos que en el ejemplo está definido con
FIX:DATO_RECIBIDO_DE_MATLAB.F_CV. Con el GOTO se vuelve a ejecutar de nuevo la
petición de datos.
La Figura 7 muestra la programación en Matlab para generar el enlace:
9
Proyecto de Titulación
%Inicialización de Variables
b=0;
%Se cargan todas las variables del Controlador Difuso
a=readfis(‘temperarura’);
while~=100
%Inicializa el canal para la conversación con FIX
chan=ddeinit(‘dmdde’,‘data’);
%Solicita el dato a FIX
data=ddereq(chan,‘fix.DATO_ENVIADO_A-MATLAB.f_cv’);
b=data;
%Retardo para cargar dato en memoria
pause(.1)
%Finaliza conversación
rc=ddeterm(chan);
%Evaluación del Control Difuso
Z=exp(b);
end
Figura 7.
Código Matlab para establecer comunicación DDE con FIX
La programación en Matlab se realiza en este caso en un archivo de instrucciones con
extensión *.m, el cual se encarga de establecer la comunicación DDE y ejecuta la función que
implementa el controlador difuso (Se supone esta función ha sido previamente diseñada). El
código consta de una parte de inicialización de variables, una para cargar las variables de
controlador difuso con la instrucción “readfis”, y luego de un ciclo continuo que realiza la
petición de los datos a FIX. El formato ATI para FIX es: La “Application” es ‘dmdde’, el
“Topic” es ‘data’ y el “Item” es el nombre en la base de datos de FIX.
Una vez realizadas las programaciones en Matlab y FIX, se está en condiciones de ejecutar
la aplicación que implementa el controlador difuso, relacionando en tiempo real las
potencialidades de cada software. En este caso, FIX utiliza las herramientas matemáticas en el
desarrollo de un controlador difuso dado por Fuzzy Logic ToolBox, mientras que Matlab
aprovecha la capacidad de adquisición y manejo de datos que ofrece un programa SCADA.
10
Proyecto de Titulación
Ventajas y Desventajas de la alternativa
De acuerdo a lo antes expuesto, la alternativa de diseñar la HMI mediante Fix Dmacs
presenta las siguientes características:
-
Como Fix Dmacs y Matlab pueden funcionar en ambiente Windows, el proyecto podría
realizarse en este ambiente que es muy amigable al usuario.
-
Los códigos que permiten comunicar la HMI con Matlab requieren de conocimientos de
de ambos lenguajes de programación (Fix y Matlab), lo que podría ralentizar su
implementación.
-
La información que existe en la WEB respecto de cómo realizar una conexión DDE entre
Matlab y Fix es reducida o difícil de encontrar.
-
Esta alternativa está sujeta a la disponibilidad que se tenga de Fix Dmacs, puesto que ya
se dispone de Matlab.
11
Proyecto de Titulación
ALTERNATIVA N°3: LABVIEW MEDIANTE CONEXIÓN DDE
Las características principales del ambiente LabView han sido descritas en la Alternativa
N°: LabView mediante Simulation Interface Toolkit. A continuación se verá cómo se realiza la
conexión entre LabView y Matlab mediante conexión DDE
Conexión Matlab a LabView mediante conexión DDE [4]
En esta aplicación LabView será la interfaz de comunicación con el usuario HMI y capturará
los datos desde Matlab de manera análoga a como lo haría para un sistema real mediante una
tarjeta de adquisición, mientras que Matlab, simulará a la planta (Conexión Diesel-GeneradorMotor-Hélice), junto con su controlador, la instrumentación y la tarjeta de adquisición de datos.
Como se vio en la alternativa anterior, Windows proporciona la herramienta DDE
(Intercambio Dinámico de Datos), el cual se trata de un protocolo de comunicación entre
aplicaciones que permite establecer un diálogo entre ellas, que puede constar de datos o incluso
comandos para su ejecución. Dicho protocolo organiza a las aplicaciones en dos grupos: la
aplicación cliente será la encargada de realizar una determinada petición (la ejecución de algún
comando o el traspaso de algún tipo de datos), mientras que la otra aplicación actuará como
servidor, recibiendo las peticiones del cliente y actuando en consecuencia. Las dos aplicaciones
utilizadas, LabView y Matlab aceptan este protocolo.
Una opción es escoger LabView para actuar como cliente y a Matlab como servidor, con la
consideración de que la función de este último será aceptar las peticiones del usuario a través de
la HMI, para proporcionar los que se obtengan de la simulación. Con esto, según [4], se evita
todo tipo de programación especial en Matlab. En cuanto a la programación en LabView, se
muestra como ejemplo (Ver figura 8) el código empleado para requerir a Matlab la estimación de
un sistema a partir de unos datos previamente grabados en un fichero de disco con formato
ASCII.
12
Proyecto de Titulación
Figura 8. Diagrama LabView para requerir servicios de Matlab
En primer lugar es necesario abrir un canal de comunicaciones para advertir a Windows que
se va a emplear DDE. Para la apertura se indica a Windows el nombre y tópico del servicio que
se va a solicitar (Éstos dependen del programa servidor y se obtienen de los manuales del
software. En este caso son Matlab y Engine). A cambio, Windows proporciona un handle o
número de canal (De forma que varias aplicaciones puedan usar distintos servicios a la vez) que
deberá ser empleado en todas las comunicaciones posteriores.
Una vez abierto el canal ya se pueden enviar comandos para ser ejecutados (función EXEC),
o peticiones de transferencia de datos (función REQST). Ambas funciones aceptan como entrada
un literal que contendrá el comando a ser ejecutado (Tal como lo escribiría un usuario en la
ventana de Matlab) o bien, en el caso de una petición de transferencia de datos, el nombre del
dato que se desea recibir. Un caso especial es el dato matriz EnsgStringResult, de tipo string, que
contiene la salida por pantalla que ha producido el último comando ejecutado vía DDE.
Finalmente, es necesario cerrar el canal para liberar memoria y no dejar saturado el sistema.
Ventajas y Desventajas de la alternativa
De acuerdo a lo antes expuesto, la alternativa de diseñar la HMI mediante LabView con
conexión DDE a Matlab presenta las siguientes características:
13
Proyecto de Titulación
-
Como LabView y Matlab pueden funcionar en ambiente Windows, el proyecto podría
realizarse en este ambiente que es muy amigable al usuario.
-
La configuración de la comunicación se realiza mediante programación gráfica en
LabView, pero además se requiere conocer los comandos para iniciar la conexión DDE,
lo que podría ralentizar si implementación.
-
Existe información suficiente en la WEB respecto de cómo utilizar las módulos DDE de
LabView y de Matlab por separado, pero reducida en cuanto a la conexión específica
entre ambos software.
-
Esta alternativa está sujeta a la disponibilidad que se tenga de LabView, puesto que ya se
dispone de Matlab.
CONCLUSIONES
Se han presentado tres alternativas de solución que permiten establecer una comunicación
entre un sistema modelado en Matlab y una aplicación que implemente una HMI, revisando sus
características principales, sus procedimientos básicos para establecer la conexión, y en base a
ellos determinar las ventajas y desventajas de cada opción. Con la información presentada en este
documento, el paso próximo en el avance de este proyecto, consiste en evaluar cual alternativa es
la que conviene desarrollar, determinando que cualidades o defectos son más o menos relevantes
al momento de tomar la decisión, y que calificación logra cada alternativa en cada uno de dichos
tópicos.
14
Proyecto de Titulación
REFERENCIAS
[1] Henry Mendiburu Díaz, “Sistemas Scada”, enlace http://www.galeon.com/hamd/pdf/scada.pdf
[2] Página Web de National Instruments Developer Zone, enlace
http://zone.ni.com/devzone/cda/tut/p/id/3057
[3] Panayotis S. Tremante M., Mercedes Torres R., José Alonso S., “Conexión DDE entre Matlab
y Fix Dmacs (Software de supervisión, control y adquisición de datos – SCADA) para un
controlador difuso”, Departamento de Electrónica y Control, Escuela de Ingeniería Eléctrica,
Universidad Central de Venezuela.
[4] Antonio Manuel Lázaro, “Contribución a la Caracterización Automática de Funciones de
Transferencia en Presencia de Ruido. Conversión Continua-Continua”, Departament d'Enginyeria
Electrónica, Universitat Politécnica de Catalunya
15
Descargar