16
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: Michael Silva Muñoz ROL USM: 2621003-8 Profesor guía: Sr. Alejandro Suárez Sotomayor Fecha: 23/05/2011

Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

  • Upload
    others

  • View
    23

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

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: Michael Silva Muñoz

ROL USM: 2621003-8

Profesor guía: Sr. Alejandro Suárez Sotomayor

Fecha: 23/05/2011

Page 2: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

1

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.

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.

Sistema en

Matlab HMI

Usuario

PC

Page 3: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

2

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

Page 4: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

3

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:

Page 5: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

4

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.

Page 6: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

5

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).

Page 7: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

6

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.

Page 8: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

7

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.

Page 9: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

8

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:

Page 10: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

9

=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:

Page 11: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

10

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.

%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

Page 12: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

11

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.

Page 13: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

12

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-Generador-

Motor-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.

Page 14: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

13

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:

Page 15: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

14

- 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.

Page 16: Plantilla para la confección de informes de laboratorioelo307/informaci%F3n%20general/... · automáticamente un código LabView, lo cual se logra configurando primero el modelo

Proyecto de Titulación

15

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