Control en tiempo real.

Share Embed


Descripción

1-8-2015

Control en tiempo real Control sobre redes

Asesor: Dr. Héctor Benítez Pérez

Medina Mariscal Pedro M. Rodríguez Robledo Carlos E. INSTITUTO DE INVESTIGACIONES EN MATEMÁTICAS APLICADAS Y EN SISTEMAS

Índice Planteamiento del problema..................................................................................................... 4 Objetivo general ....................................................................................................................... 4 Objetivos específicos ................................................................................................................ 4 Planteamiento de la propuesta ................................................................................................. 4 Justificación.............................................................................................................................. 5 Estudio de factibilidad .............................................................................................................. 5 Factibilidad técnica ................................................................................................................... 5 Factibilidad económica ............................................................................................................. 5 Factibilidad operacional ............................................................................................................ 5 Alcances ................................................................................................................................... 5 Limitaciones: ............................................................................................................................ 6 Marco teórico ........................................................................................................................... 6 Sistemas síncronos................................................................................................................ 6 Sistemas asíncronos .............................................................................................................. 6 Sistemas en tiempo real ........................................................................................................ 7 Características ................................................................................................................... 8 Ventajas y Desventajas ..................................................................................................... 9 Sistemas distribuidos ............................................................................................................ 9 Características ................................................................................................................... 9 Desafíos .......................................................................................................................... 10 Ventajas.......................................................................................................................... 10 Desventajas .................................................................................................................... 11 Modelo Cliente – Servidor ............................................................................................... 11 Proxys ............................................................................................................................. 11 Cachés ............................................................................................................................ 11 Comunicación entre procesos .......................................................................................... 12 Tipos de controladores........................................................................................................ 13 Control proporcional – integral (PI) .................................................................................. 14 Control proporcional – integral –derivativo (PID) ............................................................. 15 Control Regulador Cuadrático Lineal (LQR) ....................................................................... 16 Control con Lógica Difusa ................................................................................................ 17 Levitación magnética .......................................................................................................... 18 1

Practica de sistemas distribuidos ............................................................................................ 18 Equipo utilizado .................................................................................................................. 18 Descripción ......................................................................................................................... 18 Códigos usados ................................................................................................................... 19 Resultados .......................................................................................................................... 22 Lenguaje de programación de cálculo numérico Matlab........................................................... 22 Lectura de datos y graficación ............................................................................................. 22 Escritura de datos ............................................................................................................... 22 Funciones ........................................................................................................................... 22 Código completo ................................................................................................................. 23 Hardware y Software utilizado ................................................................................................ 23 El levitador magnético de Quanser ...................................................................................... 23 Tarjetas de adquisición de datos Q2 USB ............................................................................. 29 Tarjetas de adquisición de datos Q8 USB ............................................................................. 31 PC’s .................................................................................................................................... 35 Switch ................................................................................................................................ 35 Módulo de Alimentación Universal (UPM) ........................................................................... 36 Software ............................................................................................................................. 37 Descripción de bloques de Simulink para el control del levitador magnético en forma local ...... 39 Desarrollo del proyecto .......................................................................................................... 43 Envío de señales a través de la red con Simulink y Quarc en dos PC’s.................................... 43 Envío de señales a través de la red con Simulink y Quarc en tres PC’s ................................... 45 Procedimiento para la distribución del sistema en red ......................................................... 49 Pasos necesarios para poner en funcionamiento el sistema ................................................. 52 Descripción de bloques de Simulink para el control del levitador magnético en forma distribuida .......................................................................................................................... 53 Desafíos y su solución ......................................................................................................... 55 Enviar y recibir datos de manera local .............................................................................. 55 Establecer conexión local y configuración de bloques ....................................................... 55 Establecer conexión vía Ethernet ..................................................................................... 55 Retardo al enviar y recibir datos ...................................................................................... 55 Ajustar las ganancias del controlador ............................................................................... 56 Resultados ............................................................................................................................. 56

2

Conclusiones .......................................................................................................................... 60 Bibliografía ............................................................................................................................. 61

3

Control en tiempo real. Planteamiento del problema Desde hace siglos la humanidad se ha encontrado en una encrucijada por mejorar su Modus vivendi. Para lograr dicho cometido el hombre a empleado las herramientas que se encuentran a su alcance para lograr los avances tecnológicos, los cuales van desde el descubrimiento del fuego y la agricultura hasta llegar a las supercomputadoras de hoy en día e inclusive los microprocesadores, que cada vez entregan más rendimiento en un espacio reducido. En las últimas décadas con el desarrollo de la teoría de control ha sido posible obtener sistemas automatizados que vienen a facilitar en gran parte la vida diaria, ejemplos de ellos van desde un sistema tan simple como el tanque del váter del baño o sistemas tan complejos como la navegación automática de un avión o un brazo robótico de 6GDL. Pero no todo es miel sobre hojuelas, los sistemas de control más avanzados que existen requieren el consumo de muchos recursos para un funcionamiento correcto, aunque gracias a la invención del computadora digital ha sido posible ahorrar en recursos pero no se resuelve el problema de la velocidad de procesamiento el cual afecta directamente en la respuesta del sistema y por lo tanto en su estabilidad. El control de los dispositivos funciona de forma local, teniendo los tres componentes (sensor, controlador y actuador) de estos dispositivos en una sola tarjeta de adquisición de datos que se conecta a una PC, debido a la complejidad que presenta este sistema de control desde diferentes puntos del área de trabajo, surge la necesidad de implementar una estrategia que permita el control de dispositivos de forma remota.

Objetivo general Estudiar y desarrollar una estrategia de control sobre redes de cómputo para dispositivos en tiempo real.

Objetivos específicos Obtener el conocimiento necesario del software, Matlab, Simulink y Quarc que permita implementar una estrategia de control sobre un sistema distribuido de comunicación. Hacer uso de Matlab para crear una estrategia que permita manipular un levitador magnético empotrado cuyo control está distribuido en red.

Planteamiento de la propuesta Con ayuda de redes de cómputo Ethernet y varias tarjetas de adquisición de datos conectadas a PC’s se pretende distribuir los tres componentes de control (sensor, controlador y actuador) y poder darle un comportamiento de tiempo real a los dispositivos. 4

Justificación Con base a los estudios realizados en las áreas de tiempo real y diagnóstico de fallas, control en tiempo real, modelado de sistemas de retardos en redes de cómputo, se plantea el siguiente proyecto de investigación “CONTROL EN TIEMPO REAL”. En esta propuesta se explora el estudio del control sobre redes de cómputo para sistemas en tiempo real, se planea implementar una herramienta de software que permita el estudio de controladores sobre redes de cómputo. El impacto potencial de esta propuesta está encaminado hacia el estudio de comunicación distribuida en red.

Estudio de factibilidad El proyecto es viable ya que se cuenta con lo necesario para la experimentación.

Factibilidad técnica Computadoras personales Tarjetas de adquisición de datos Red de comunicaciones de datos Software de control y comunicaciones Dispositivos de experimentación

Factibilidad económica Los equipos se encuentran en el laboratorio de Cómputo móvil, no es necesario invertir en la experimentación.

Factibilidad operacional Sólo se necesita una persona para operar los equipos

Alcances El proceso de control del levitador magnético se pretende hacer mediante el uso de Matlab, Simulink y Quarc, herramientas con las cuales se desarrollara una estrategia que permita el control del levitador magnético mediante una red Ethernet. Este proceso se pretende hacer de forma distribuida y en tiempo real.

5

Limitaciones: Debido a la complejidad que presentan algunos dispositivos (Helicopter 2dof, LVDT, Levitador Magnético), el control se hará únicamente para un solo dispositivo (levitador magnético), el cual consiste principalmente de los siguientes componentes: La planta, sensor, controlador y actuador.

Marco teórico Sistemas síncronos En los sistemas de comunicación síncronos, la transmisión de datos debe coordinarse con el receptor para un correcto envío de estos. Es común que dicha sincronización se maneje forzando al hardware transmisor a enviar un pulso regular cuando no existan datos disponibles. Esto hace que el receptor identifique el momento donde reciba los pulsos para determinar el comienzo y el fin de los bits. Dicho esto se puede afirmar que un sistema síncrono de transmisión de datos depende de un proceso externo que los dispare. El término de sincronía es un término muy general y tiene uso en muchos ámbitos, ejemplo de esto es que se puede afirmar que existe sincronía entre personas, maquinas, células, ondas y en general cualquier sistema que siga un patrón y no sea caótico. La importancia de la sincronía en los sistemas de comunicación y transmisión de datos recae en la necesidad de enviar enormes cadenas de bytes de manera óptima, es por eso que los procesos deben estar sincronizados, para ello se han desarrollado protocolos de comunicación para la identificación y transmisión de datos. Dichos protocolos suelen ser usados para el envío remoto de información mediante la utilización de ondas, pero también se utilizan entre periféricos de una computadora como el teclado y el ratón.

Sistemas asíncronos Los sistemas asíncronos son aquellos en los cuales no existe un intervalo de tiempo constante entre los eventos generados (Transmisión y recepción de datos). En los sistemas de comunicación asíncronos destaca la característica de que el transmisor tiene la capacidad de enviar datos sin previo aviso. Para que se cumpla dicha característica es necesario que el receptor esté preparado para aceptar datos en cualquier momento. Este modo de comunicación es una de las nuevas tecnologías que prometen ser el futuro de las telecomunicaciones las cuales pueden involucrar información de diferentes tipos como audio o video y ser la base del B-ISDN, mejor conocido como Broadband-Integrated Services Digital Network. En una red ATM (Asynchronous Transfer Mode) las celdas de información son transmitidas solamente cuando el usuario se encuentra manipulando información, contrario a lo que sucede en una red síncrona de transmisión de datos, la cual transmite la información todo el tiempo. Una gran ventaja de las redes ATM es que sus celdas pueden contener todo tipo de información.

6

Estos sistemas nacieron dada la necesidad de obtener una red capaz de brindar el ancho de banda suficiente, además de que el costo de estos será compartido entre transmisor y receptor. También ha existido la necesidad para estructurar una red que responda más rápido, ya que la fluctuación de cantidad y tipos de información puede variar mucho en una red, y haciendo un uso más eficiente crea una red mejor diseñada y que trabaja mejor. Todos los tipos de redes de comunicación de antaño han involucrado la orientación a circuitos; Es decir, una conexión física y única se establecía entre usuarios. Cuando surgieron los módems en los 80`s, se había formado, en efecto, la primera red integrada; ya obteniendo la conexión en el circuito, se podía usar para transmitir datos o voz. Los sistemas asíncronos actúan inmediatamente al aplicarles la señal al dispositivo. En los sistemas síncronos, la señal, va siempre sincronizada con una señal de reloj, Hasta que el reloj no genere un flanco de subida el dispositivo no hará caso a la señal de entrada.

Sistemas en tiempo real Un sistema en tiempo real puede definirse como cualquier sistema en el cual el tiempo en el que se produce la salida es significativo. Esto generalmente es porque la entrada corresponde a alguna perturbación del mundo físico, y la salida está relacionada con dicha perturbación. Para que se considere como un STR el intervalo de tiempo entre la entrada y salida debe ser lo suficientemente pequeño para tener una temporalidad aceptable. Otra manera de definir a los STR es que son aquellos sistemas que deben producir respuestas correctas dentro de un intervalo de tiempo definido. Si el tiempo de respuesta excede dicho intervalo, se produce una degradación de la respuesta o una respuesta errónea que puede derivar en un funcionamiento inestable. Los STR se pueden clasificar según sus requisitos temporales de la siguiente manera:  



Tiempo real estricto.- Es cuando se vuelve absolutamente necesario que la respuesta se produzca dentro del límite de tiempo establecido. Tiempo real no estricto.- En estos sistemas se permite que ocasionalmente se pierdan especificaciones temporales, aunque estas se deben cumplir normalmente. Un ejemplo de estos son los sistemas de adquisición de datos. Tiempo real firme.- Para dicho caso se permite la perdida ocasional de especificaciones temporales, pero dicha perdida no implica ningún beneficio dado que la respuesta retrasada es descartada. El ejemplo más común de estos casos son los sistemas multimedia.

También existe una clasificación según la aplicación que se le da a los sistemas en tiempo real, la cual se describe de la siguiente manera: 



Control de procesos industriales: Dichos sistemas son los que requieren una respuesta en tiempo finito y predecible, y dependen de que se dé la respuesta a tiempo. La computadora es el encargado de generar las señales que permiten conseguir el objetivo, a partir de la medida de la variable a controlar, del valor especificado para esta y de un determinado algoritmo de control. Sistemas de control de manufactura: Estos actúan directamente sobre el control de los procesos de fabricación, con el objetivo de reducir costes y el aseguramiento de la calidad 7



del producto final. Los componentes utilizados son el controlador, dispositivos como manipuladores, cintas transportadoras, etc. Sistemas de comunicación de mando y control: Estos sistemas están construidos por una red la cual se encarga de la toma de decisiones. Para lograr esto se requiere la recopilación y mantenimiento de información, como ejemplo de este sistema están las reservas de billetes, la monitorización de pacientes y el control de tráfico aéreo.

Dentro de los sistemas de control en tiempo real existen los sistemas empotrados en los cuales la computadora forma parte del núcleo del sistema y este se encarga de la recopilación de información, procesamiento y de la generación de señales de salida. Actualmente existen diversos sistemas empotrados los cuales se pueden encontrar en dispositivos que tienen el controlador integrado dentro de ellos.

Características  Concurrencia.- Esta característica le da la posibilidad a los STR de realizar diversas actividades en paralelo; se dice que el mundo real es concurrente, por lo tanto los STR deben de actuar de la misma manera.  Dependencia del tiempo.- Estos sistemas dependen de intervalos de tiempo para actuar, por lo cual son capaces de actuar de manera periódica o de ejecutar tareas en respuesta a señales externas.  Fiabilidad y tolerancia a fallos.- Los STR deberán ser capaces de funcionar aun con la presencia de fallos o averías parciales, ya que es prácticamente imposible predecir el comportamiento del mundo real.  Interacción con el Hardware.- Es necesaria la interacción con el hardware para comunicarse con el exterior, existen dos tipos de interacciones o Activas.- En estas el sistema decide cuando accede al exterior o cuando el exterior puede devolver información, esto se logra mediante interfaces de entrada y salida. o Pasivas.- El sistema se interrumpe en el instante que el exterior tenga una señal que transmitir, dichas interrupciones pueden ser simples o múltiples.  Manipulación de números reales.- Estos datos son adquiridos del exterior mediante interfaces.  Eficiencia.- En estos sistemas es deseable una implementación eficiente, esto quiere decir que se utilice la menor cantidad de recursos, esto es de vital importancia sobre todo en los sistemas empotrados donde el espacio es limitado.  Complejidad.- Este tipo de sistemas son complejos y por lo tanto se deben utilizar sistemas modulares, además la complejidad del sistema hace que se entre en conflicto con la eficiencia.  Involucración de todos los aspectos de la ingeniería informática.- Estos sistemas contemplan la utilización de hardware y software. A continuación se muestra una tabla con las áreas de ingeniería informática utilizadas en los STR.

8

Requisitos generales de Hardware.

Requisitos generales de Software

Interfaces de E/S

Acceso a E/S

Controladores de interrupciones.

Capacidad de interruptores

Proceso en coma flotante

Mecanismos para la portabilidad

Relojes de tiempo real y temporizadores

Mecanismos de temporización

Protección de memoria para concurrencia

Concurrencia

Tolerancia a fallos

Planificación de tareas para tiempo real Tolerancia a fallos

Tabla 1.1 Requisitos generales de Hardware y Software

Ventajas y Desventajas Ventajas Reducción en el tiempo de desarrollo.

Desventajas Desarrollar software para un STR requiere de experiencia y planeamiento cuidadoso Requiere más memoria RAM que un sistema sin tiempo real. [4]

Refuerza conceptos de modularización  Provee de métodos seguros de comunicación entre tareas.  Asegura la independencia entre tareas. Facilita la extensibilidad y verificación del diseño. Tabla 1.2 Ventajas y desventajas de sistemas en tiempo real

Sistemas distribuidos El concepto de sistemas distribuidos se ha popularizado en los últimos años dado que este tiene como ámbito el estudio de las redes como internet, redes de teléfonos móviles, redes de empresas, redes corporativas, etc. Por definición estos sistemas son aquellos cuyos componentes (Hardware/Software) están en computadoras conectadas en red, estas computadoras se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo, para el establecimiento de la comunicación es necesaria la utilización de un protocolo preestablecido. Características Los sistemas distribuidos se distinguen por poder trabajar de manera simultánea mediante la utilización de una red de computadoras, dichos sistemas tienen tres características en particular. A continuación se describen las características de este tipo de sistemas:

9







Concurrencia.- Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red. Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización general, está más bien distribuida en los componentes. Fallos independientes de los componentes.- Cada componente del sistema pudiera fallar de manera independiente, y los demás continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en conjunto continua trabajando como uno solo.

Desafíos Existen diversos desafíos en la utilización de los sistemas distribuidos, tales tienen que ver con la seguridad de estos y con su extensibilidad mayormente. Cabe mencionar que la resolución de estos desafíos hace de los sistemas distribuidos una opción más que viable para aplicar en los sistemas de control en tiempo real. A continuación se enlistan y se describen algunos de estos:

 Heterogeneidad de los componentes.- La interconexión, sobre todo cuando se usa Internet, se da sobre una gran variedad de elementos hardware y software, por lo cual necesitan de ciertos estándares que permitan esta comunicación. Los Middleware, son elementos software que permiten una abstracción de la programación y el enmascaramiento de la heterogeneidad subyacente sobre las redes. También el middleware proporciona un modelo computacional uniforme.  Extensibilidad.- Determina si el sistema puede extenderse y re implementado en diversos aspectos (añadir y quitar componentes). La integración de componentes escritos por diferentes programadores es un auténtico reto.  Seguridad.- Reviste gran importancia por el valor intrínseco para los usuarios. Tiene tres componentes: o Confidencialidad.- Protección contra individuos no autorizados. o Integridad.- Protección contra la alteración o corrupción. o Disponibilidad.- Protección contra la interferencia con los procedimientos de acceso a los recursos.  Escalabilidad.- El sistema es escalable si conserva su efectividad al ocurrir un incremento considerable en el número de recursos y en el número de usuarios.  Tratamiento de Fallos.- La posibilidad que tiene el sistema para seguir funcionando ante fallos de algún componente en forma independiente, pero para esto se tiene que tener alguna alternativa de solución. Técnicas para tratar fallos: o Detección de fallos. Algunos fallos son detectables, con comprobaciones por ejemplo. o Enmascaramiento de fallos. Algunos fallos detectados pueden ocultarse o atenuarse.

Ventajas Debido a las enormes ventajas que este tipo de sistemas ofrece con respecto a otros se ha dado un enorme desarrollo en las últimas décadas. Entre las ventajas más características de los sistemas distribuidos podemos encontrar que son económicos con respecto a los sistemas centralizados, ya 10

que es mucho más barato añadir servidores y clientes cuando se requiere aumentar la potencia de procesamiento. También estos sistemas trabajan en conjunto, un ejemplo de ello es una planta de ensamblaje donde los robots tienen un CPU independiente en el que cada uno se correlaciona y se comunica para lograr trabajar como un todo. Estos sistemas además son más confiables porque independientemente de que alguna máquina llegue a fallar, al estar distribuido el trabajo, el sistema en conjunto puede seguir trabajando. Además si se requiere, se puede aumentar la velocidad de procesamiento al añadir procesadores al sistema. Con respecto a los PC independientes presenta la ventaja de que en los sistemas distribuidos existe la posibilidad de compartir recursos, como programas y periféricos (Ejemplo. Impresoras, dispositivos de almacenamiento, etc.). Además de que se tiene mayor flexibilidad al distribuir la carga de trabajo en diferentes computadoras. Desventajas En los sistemas distribuidos existen solamente pocas desventajas pero de igual manera deben de ser tomadas en cuenta. Algunas son la utilización, desarrollo e implantación de software distribuido, pues este presenta diversos inconvenientes. Además en este tipo de sistemas se presenta una desventaja que tiene que ver con las redes de comunicación, un ejemplo de ello es la perdida de mensajes o la saturación en el tráfico. Un problema no menos importante es la seguridad de la información que es compartida. Aunque se considera que las ventajas superan a las desventajas, claro está, si se trabajan de manera que puedan ser disminuidas para aprovechar de manera óptima este tipo de sistemas. Modelo Cliente – Servidor El modelo con la arquitectura cliente-servidor es aquel en el cual las tareas se reparten entre los proveedores de recursos o servicios los cuales se llaman servidores y los demandantes conocidos como clientes. El cliente se encarga de realizar peticiones a otro programa, el servidor por su parte es el encargado de dar respuesta a dichas peticiones. El concepto de cliente-servidor se puede aplicar a programas que se ejecutan a una sola computadora, aunque la aplicación es más ventajosa en una red de distintas computadoras. Proxys En una red informática se conoce a un Proxy como un servidor que sirve de intermediario en las peticiones de recursos que un cliente realiza a otro servidor. Una de las ventajas de estos es que puede aprovechar para soportar una serie de funcionalidades tales como control de acceso, registro de tráfico, prohibir tráfico, mejorar rendimiento etc. Además se puede utilizar para proporcionar cache web y así mejorar la experiencia del usuario en su navegación. Cachés Se conoce como cache a la memoria de acceso rápido de una computadora la cual se encarga de guardar temporalmente los datos que son procesados. La memoria caché es un búfer especial de memoria que poseen las computadoras, que funciona de manera similar a la memoria principal, pero es de menor tamaño y de acceso más rápido. Es usada 11

por el microprocesador para reducir el tiempo de acceso a datos ubicados en la memoria principal que se utilizan con más frecuencia. La caché es una memoria que se sitúa entre la unidad central de procesamiento (CPU) y la memoria de acceso aleatorio (RAM) para acelerar el intercambio de datos. Comunicación entre procesos La comunicación entre procesos es una función básica de los sistemas operativos que provee un mecanismo el cual permite a los procesos poder sincronizarse. Las técnicas de IPC están divididas dentro de métodos para: paso de mensajes, sincronización, memoria compartida y llamadas de procedimientos remotos (RPC). En un sistema, los procesos pueden ejecutarse independientemente o cooperando entre sí. Los intérpretes de comandos son ejemplos típicos de procesos que no precisan la cooperación de otros para realizar sus funciones. En cambio, los procesos que sí cooperan necesitan comunicarse entre sí para poder completar sus tareas. La comunicación entre procesos puede estar motivada por la competencia o el uso de recursos compartidos o porque varios procesos deban ejecutarse de forma sincrona para completar una tarea. La comunicación puede ser:   

     

Síncrona: Quien envía permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otro ejercicio. Asíncrona: Quien envía continúa con su ejecución inmediatamente después de enviar el mensaje al receptor. Persistente: El receptor no tiene que estar operativo al mismo tiempo que se realiza la comunicación, el mensaje se almacena tanto tiempo como sea necesario para poder ser entregado (por ejemplo, un e-mail). Momentánea: El mensaje se descarta si el receptor no está operativo al tiempo que se realiza la comunicación. Por lo tanto no será entregado. Directa: Los primitivos “enviar” y “recibir” especifican el nombre del proceso con el que se comunican. Indirecta: Es aquella donde la comunicación está basada en una herramienta o instrumento ya que el emisor y el perceptor están a distancia. Simétrica: Todos los procesos pueden enviar o recibir. También llamada bidireccional para el caso de dos procesos. Asimétrica: Un proceso puede enviar, los demás procesos sólo reciben. También llamada unidireccional. Suele usarse para hospedar servidores en Internet. Uso de búfer automático: El transmisor se bloquea hasta que el receptor recibe el mensaje (capacidad cero).

Sockets Se conoce como socket al método para establecer la comunicación entre un programa de cliente y uno de servidor en una red de computadoras. Se define socket como el punto final de una conexión. Estos se crean y se utilizan con un sistema de peticiones o llamadas de función a través de las 12

llamadas interfaces de aplicación de sockets. También se denomina socket a una conexión de internet combinando una dirección IP (la dirección numérica única de cuatro partes que identifica a un ordenador particular en Internet) y un número de puerto (el número que identifica una aplicación de Internet particular, como FTP, Gopher, o WWW). RPC’s La llamada de procedimiento remoto (Remote Procedure Call) es una tecnología para la creación de sistemas que funcionen con la arquitectura cliente-servidor. El protocolo es un gran avance sobre los sockets usados hasta el momento. De esta manera el programador no tendrá que estar pendiente de las comunicaciones, estando éstas encapsuladas dentro de las RPC. Las RPC son muy utilizadas dentro de la comunicación cliente-servidor. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o función y enviando éste de vuelta el resultado de dicha operación al cliente. Hay distintos tipos de RPC, muchos de ellos estandarizados como pueden ser el RPC de Sun denominado ONC RPC (RFC 1057), el RPC de OSF denominado DCE/RPC y el Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM, aunque ninguno de estos es compatible entre sí. La mayoría de ellos utilizan un lenguaje de descripción de interfaz (IDL) que define los métodos exportados por el servidor. Hoy en día se está utilizando el XML como lenguaje para definir el IDL y el HTTP como protocolo de red, dando lugar a lo que se conoce como servicios web. Ejemplos de éstos pueden ser SOAP o XMLRPC.

Tipos de controladores En la época previa al auge y desarrollo de la automatización industrial, en el campo de la regulación y control eran los operarios los que, manualmente, realizaban las modificaciones que su experiencia y buen criterio aconsejaban, para mantener la variable de salida controlada, para alcanzar los resultados finales deseados. Hoy en día, en las aplicaciones industriales, se utilizan los ordenadores como elemento de control. El regulador o controlador constituye el elemento básico de un sistema de control, ya que determina su comportamiento, condicionando la acción de los actuadores en función de la señal de error obtenida. En un sistema con un sistema de control, según sea la forma en que conteste el actuador, se distinguen distintos tipos de acciones de control, algunas de ellas solamente utilizarán acciones llamadas básicas, aunque lo más común es que respondan mediante una combinación de estas acciones básicas.

13

Figura 1.1 Tipos de control y combinaciones.

Control proporcional – integral (PI) En realidad no existen controladores que actúen únicamente con acción integral, siempre actúan en combinación con reguladores de una acción proporcional, complementándose los dos tipos de reguladores, primero entra en acción el regulador proporcional (instantáneamente) mientras que el integral actúa durante un intervalo de tiempo.

Función de transferencia del bloque de control PI.

(Ti): Constante de tiempo integral (Kp): Ganancia proporcional Estos son parámetros que se pueden modificar según las necesidades del sistema. En el siguiente diagrama se puede observar una comparación entre el control proporcional solo y en combinación con el integral.

14

Figura 1.2 Acción de control Proporcional Integral.

Por lo tanto la respuesta de un regulador PI será la suma de las respuestas debidas a un control proporcional P, que será instantánea a detección de la señal de error, y con un cierto retardo entrará en acción el control integral I, que será el encargado de anular totalmente la señal de error. Control proporcional – integral –derivativo (PID) Es un sistema de regulación que trata de aprovechar las ventajas de cada uno de los controladores de acciones básicas, de manera, que si la señal de error varía lentamente en el tiempo, predomina la acción proporcional e integral y, mientras que si la señal de error varía rápidamente, predomina la acción derivativa. Tiene la ventaja de ofrecer una respuesta muy rápida y una compensación de la señal de error inmediata en el caso de perturbaciones. Presenta el inconveniente de que este sistema es muy propenso a oscilar y los ajustes de los parámetros son mucho más difíciles de realizar. La salida del regulador viene dada por la siguiente ecuación:

Que en el dominio de Laplace, será:

Y por tanto la función de transferencia del bloque de control PID será:

(Ti): Constante de tiempo integral 15

(Td): Constante de tiempo derivativo (Kp): Ganancia proporcional Donde Kp, Ti y Td son parámetros ajustables del sistema

Figura 1.3 Diagrama de bloques de un controlador PID. Un controlador proporcional (Kp) tendrá el efecto de reducir el tiempo de elevación y reducirá, sin jamás eliminar, el error de estado estacionario. Un control integral (Ti) tendrá el efecto de eliminar el error de estado estacionario, pero puede empeorar la respuesta transitoria. Un control derivativo (Td) tendrá el efecto de incrementar la estabilidad del sistema, reduciendo el sobrepico, y mejorando la respuesta transitoria.

Control Regulador Cuadrático Lineal (LQR) El controlador LQR (linear quadratic regulador) cumple la función de encontrar de forma automática una adecuada realimentación de estado del controlador y así minimizar la función de coste. De esta manera el controlador LQR busca minimizar las energías presentes en el sistema, orientándose al control óptimo de señales de control para nuestro sistema. Este controlador no es adecuado para condiciones en las que no se conocen o no se tiene acceso a todos los estados del sistema, lo cual nos entregaría inestabilidad en nuestro sistema de control,

16

además, que este tipo de controlador no considera los ruidos en las lecturas (ruido blanco o gaussiano). Control con Lógica Difusa La lógica difusa se basa en lo relativo de lo observado como posición diferencial. Este tipo de lógica toma dos valores aleatorios, pero contextualizados y referidos entre sí. En la teoría de conjuntos difusos se definen también las operaciones de unión, intersección, diferencia, negación o complemento, y otras operaciones sobre conjuntos (ver también subconjunto difuso), en los que se basa esta lógica. Para cada conjunto difuso, existe asociada una función de pertenencia para sus elementos, que indica en qué medida el elemento forma parte de ese conjunto difuso. Las formas de las funciones de pertenencia más típicas son trapezoidal, lineal y curva. Se basa en reglas heurísticas de la forma SI (antecedente) ENTONCES (consecuente), donde el antecedente y el consecuente son también conjuntos difusos, ya sea puros o resultado de operar con ellos. A continuación se muestra un lazo de control difuso.

Figura 1.4 Diagrama de bloques de un controlador difuso. La lógica difusa se utiliza cuando la complejidad del proceso en cuestión es muy alta y no existen modelos matemáticos precisos, para procesos altamente no lineales y cuando se envuelven definiciones y conocimiento no estrictamente definido (impreciso o subjetivo). En cambio, no es una buena idea usarla cuando algún modelo matemático ya soluciona eficientemente el problema, cuando los problemas son lineales o cuando no tienen solución. Esta técnica se ha empleado con bastante éxito en la industria, principalmente en Japón, extendiéndose sus aplicaciones a multitud de campos. La primera vez que se usó de forma importante fue en el metro japonés, con excelentes resultados.

17

Levitación magnética La levitación magnética es el efecto hacer flotar un elemento por medio de un fenómeno que se fundamenta en el principio de repulsión que tienen dos polos de igual carga magnética, que con el debido control provoca que un cuerpo se mantenga suspendido en el aire. También este principio se aplica a lo que se denomina efecto Meissner-Ochsenfeld, una propiedad inherente de los superconductores. La superconductividad es una característica de algunos compuestos, los cuales, por debajo de una cierta temperatura crítica, no oponen resistencia al paso de la corriente, son materiales que pueden alcanzar una resistencia nula. Esta tecnología ha sido empleada en diferentes elementos donde objetos muy pesados se hacen deslizables, sin embargo, donde se destaca es en la construcción de trenes de alta velocidad, los que se deslizan sobre superconductores y supone un mayor rendimiento al necesitar solo de un impulso inicial y circular sin fricción con la superficie. Con tecnología alemana, japonesa y francesa estos trenes pueden alcanzan la espectacular velocidad 650 km/h como máximo. Los sistemas de levitación magnética son un tipo de experimentos electromecánicos clásicos con una dinámica no lineal y muchos desafíos en el área de control. La tecnología de levitación magnética es usada en sistemas como los trenes Maglev y las grúas electromagnéticas, además existen campos de investigación para utilizar la tecnología de control de posicionamiento sin contacto de alta precisión en las obleas en fotolitografía.

Practica de sistemas distribuidos Equipo utilizado El equipo que se utilizó para las prácticas correspondientes se enlista a continuación:     

Laptop Lenovo Laptop Sony Laptop HP Switch Claves UTP ponchados

Descripción Practica Chat Para el desarrollo de esta práctica es necesario poder realizar una conexión que sea capaz de enviar y recibir datos para lograr una ventana de chat mediante lenguaje de programación Python, para lograr dicho cometido es necesario que el programa mediante una conexión Ethernet sea capaz de localizar al otro programa, además ambos deben de poseer la capacidad de intercambiar cualesquier secuencia de datos relevantes. Para esto es necesario el cumplimiento de los tres recursos que caracterizan a un “Socket” los cuales dictan que es necesario un protocolo de 18

comunicación para poder lograr el intercambio de datos, además se necesita una dirección del protocolo de red el cual en este caso será una dirección IP al ser utilizado el protocolo TCP/IP el cual servirá para la identificación de las computadoras, por último será necesario asignar un número de puerto para lograr la identificación del programa dentro de la computadora. La utilización del socket permitirá implementar la arquitectura cliente-servidor necesaria para el desarrollo de la práctica. El inicio de la comunicación depende de uno de los programas el cual esta titulado como cliente, cuando este programa inicia la comunicación ya existe otro el cual está esperando una señal para poder iniciar, a este programa se le denomina servidor. Practica RPC La siguiente práctica realizada de sistemas distribuidos mediante Python consiste en crear un cliente y un servidor de manera local, en dicho programa se agregan las direcciones IP de las otras 3 computadoras que conforman la red, y en el programa del servidor se le asigna una operación matemática que consta de 2 variables, esto con el objetivo de que los programas cliente de los equipos que conforman la red tengan la capacidad de realizar operaciones matemáticas (Suma, resta, multiplicación, división) y cada uno de los servidores que conforman la red se encargarán de resolverlas enviando el resultado a través de la red hacía el equipo que solicitó la operación.

Códigos usados Practica Chat En la siguiente figura se observa el código utilizado para realizar el programa denominado servidor el cual se encarga de esperar a que el cliente comience la comunicación.

Figura 2.1(a).- Código utilizado en práctica chat.

19

El código mostrado en la siguiente figura muestra el programa el cual representa el cliente en la red de comunicación, dicho programa se encarga de enviar datos al servidor y así iniciar la comunicación entre las dos computadoras.

Figura 2.1 (b).-Código utilizado en práctica chat (Cliente).

Practica RPC A continuación se muestran los códigos utilizados para establecer los 4 servidores, cada uno de ellos es capaz de resolver una operación matemática y enviar su resultado al cliente que lo solicite.

Figura 2.2 (a).- Código utilizado en práctica RPC (Servidor 1). 20

Figura 2.2 (b).- Código utilizado en práctica RPC (Servidor 2).

Figura 2.2 (c).- Código utilizado en práctica RPC (Servidor 3). El siguiente código muestra el programa del cliente, el cual se encarga de establecer la comunicación con los servidores y además solicita el resultado de una operación matemática a estos.

Figura 2.2 (d).- Código utilizado en práctica RPC (Cliente). 21

Resultados Estas dos prácticas entregaron resultados satisfactorios al lograrse los objetivos descritos previamente, en la primera práctica se logró establecer una comunicación mediante la arquitectura cliente-servidor y con esto fue posible el envío de datos a través de una red TCP/IP, el código utilizado fue una modificación de un programa facilitado en el instituto, a dicho programa se le agrego una condición a cada uno de los programas para poder enviar y recibir datos. La segunda práctica sirvió para conocer cómo funciona un sistema cuando se distribuyen las tareas a través de una red, el programa cliente contenía las direcciones IP de cada uno de los servidores los cuales eran los encargados de resolver las operaciones matemáticas que cada uno de los clientes de la red solicitasen, cabe mencionar que establecer la comunicación fue un reto para los realizadores de la práctica pero al final se obtuvieron resultados satisfactorios y se lograron los objetivos planteados en tiempo y forma.

Lenguaje de programación de cálculo numérico Matlab Lectura de datos y graficación Una de las virtudes de Matlab es la de poder extraer datos para su tratamiento, en el ejemplo dado por el apartado de código completo se muestra un programa el cual es capaz de leer un archivo de audio y posteriormente se utilizan los valores obtenidos en forma de vector para poder graficarlos en función de la frecuencia. Los comandos utilizados son los siguientes.

 

[s Fs]=wavread('Audio.wav'); plot(canal_R(1:N1)); grid

Escritura de datos La escritura de datos mediante Matlab es un proceso sencillo en el cual se utiliza un comando (en este caso wavread) y se nombra el archivo que será generado con el fin de obtener un archivo en base a los datos obtenidos en algún vector o matriz generada mediante Matlab.

Funciones Para el programa compilado en Matlab se creó un archivo .wav a partir de un archivo de audio wma. Posteriormente como se muestra el código se utilizó la función wavread para que el programa fuese capaz de leer el archivo. Cuando dicho programa se ejecuta aparece un menú preguntando si se desea reproducir el audio, en caso de que la opción sea un si el audio empieza a reproducirse mediante la función wavplay. Una vez terminada la reproducción se le pregunta al usuario que canal desea escuchar (debido a que el audio viene en dos canales, cada una con un vector de valores de amplitud), una vez seleccionado dicho canal el usuario tendrá que introducir manualmente el número de muestras que se deseen y una vez seleccionadas aparecerá una gráfica con los valores que corresponden a dicho muestreo. 22

Código completo A continuación se anexa el código utilizado para la realización de la lectura y graficación de un archivo de sonido. [s Fs]=wavread('Audio.wav'); numgraf=menu('Reproducir Audio','Si','No'); switch numgraf case {1} for compara = 1:1:1 wavplay(s,Fs) end case {2} for compara = 1:1:2 end end canal_R=s(:,1); canal_L=s(:,2); numgraf=menu('¿Que canal desea graficar?','Right','Left'); switch numgraf case {1} for compara = 1:1:1 N1=input('Número de valores deseados>>'); plot(canal_R(1:N1)); grid end case {2} for compara = 1:1:2 N2=input('Número de valores deseados>>'); plot(canal_L(1:N2)) grid end end

Hardware y Software utilizado El levitador magnético de Quanser El dispositivo de levitación magnética Quanser es un sistema electromagnético de un grado de libertad que permite a los usuarios levitar una esfera verticalmente hacia arriba y hacia abajo. El electroimán superior genera una fuerza de atracción sobre la esfera de metal que se encuentra inicialmente asentada sobre un poste. La separación total o la distancia de viaje entre la esfera y el imán es de 14mm. Para la medición de la posición de la esfera se utiliza un sensor fotosensible adaptado en la parte interna del poste. Este sistema también cuenta con un medidor de corriente el cual mide la corriente interna de la bobina electromagnética.

23

El levitador puede ser descrito por tres secciones las cuales se encuentran dentro de una carcasa. La primera es la sección superior la cual contiene el electroimán, hecho con una bobina solenoide y un núcleo de acero. La segunda sección se encuentra en la parte media y consta de una cámara interna donde la levitación magnética toma lugar. Una de las caras del electroimán esta paralela a la punta de un poste negro donde la esfera de metal de una pulgada descansa. Para la medición de la elevación que toma la esfera se utiliza un sensor foto sensible incrustado al poste, dicho poste está diseñado de manera que cuando la esfera se encuentra en reposo, la separación entre la cara del electroimán y la esfera sea de 14mm. Finalmente, la sección inferior del levitador alberga la circuitería de acondicionamiento del sistema, por ejemplo la circuitería del sensor de luz y los ajustes de desfase y ganancia. Además, la bobina incluye un sensor de corriente con el objetivo de medir la corriente que atraviesa la bobina en caso de ser necesario. La siguiente figura muestra el levitador magnético Quanser.

Figura 4.1 Levitador magnético Quanser. El principal objetivo del levitador magnético Quanser es diseñar un sistema de control el cual sea capaz de elevar la esfera de metal en el aire usando un electroimán. El controlador debe de ser capaz de trazar trayectorias para que la esfera pueda seguirlas. De fábrica este sistema cuenta con un controlador retroalimentado y sintonizado a través del lugar geométrico de los polos, pero el sistema es abierto para que el usuario pueda utilizar la técnica de control que más le convenga y el 24

diseño del controlador que más se ajuste a las necesidades de diseño. La gran ventaja que se ofrece es que el modelo matemático de la planta es otorgado al usuario así como los parámetros del sistema para que se pueda implementar cualesquier teoría de control que se requiera.

Nomenclatura de los componentes El sistema cuenta con distintos componentes los cuales se encargan del correcto funcionamiento de la planta, en la siguiente tabla se enlistan dichos componentes, además se muestra una figura en la cual describe la localización de estos. ID 1 2 3 4 5 6

Componente Caja del Levitador Bobina Solenoide Núcleo de Acero de la Bobina

ID 7 8 9

Componente Potenciómetro de desfase del sensor Potenciómetro de ganancia del sensor Conector de cables de 4 pines DIN de la bobina Pedestal y sensor de posición 10 Conector de cables de 6 pines DIN del sensor de posición Esfera solida de acero inoxidable 11 Conector de cables de 6 pines DIN del sensor de corriente Luces interiores 12 Cámara interna Tabla 4.1 Componentes del levitador.

A continuación se muestran las figuras las cuales describen la localización de los componentes.

Figura 4.2 Componentes enumerados del levitador. 25

Descripción de componentes. 

Caja del levitador.- La caja en la cual se encuentra el levitador está hecha de aluminio. Sus dimensiones se muestran en la siguiente tabla. Descripción

Valor

Unidad

Altura

0.277

m

Anchura

0.153

m

Profundidad

0.153

m

Tabla 4.2 Caracterizas físicas del levitador. 



Electroimán.- El electroimán consiste de una bobina solenoide hecha de cable magnético 20 AWG la cual consta de 2450 vueltas. Por seguridad la corriente que pasa por la bobina no deberá exceder los 3A. Sensor de luz.- El sensor sensible a la luz que mide la posición vertical de la esfera de acero consiste de un foto transistor NPN de silicio tipo Foto Darlington. Dicho sensor se encuentra incrustado dentro del pedestal de la esfera y otorga la posición lineal durante el viaje de esta. La salida del sensor se mide mediante un acondicionador de señal y sus valores se encuentran en el rango de 0 a 5Vdc.

Esquema de cableado del levitador A continuación se muestra una figura la cual describe el esquema de conexión que conforma el levitador, dicho diagrama ayuda a tener una mejor comprensión del funcionamiento de este.

Figura 4.3 Esquema de cableado del levitador. 26

El esquema mostrado anteriormente describe las conexiones internas de alimentación y las entradas y salidas de la planta, como por ejemplo el foto transistor, la bobina y el sensor de corriente. Así también se muestran las alimentaciones para los potenciómetros reguladores y la luz interna del sistema. Este cableado tiene un código de colores, el cual servirá al usuario para poder conectar de manera correcta el levitador a la alimentación y a la tarjeta de adquisición de datos (DAQ). Parámetros del modelo del levitador La siguiente tabla enlista y caracteriza los parámetros principales del sistema. Esto se hace con el objetivo de facilitar el modelado matemático del sistema para poder obtener su función de transferencia y aplicar el controlador que más se ajuste a las necesidades de diseño. Símbolo 𝒄𝒎𝒂𝒙 𝑳𝒄 𝑹𝒄 𝑵𝒄 𝒍𝒄 𝒓𝒄

Descripción Máxima corriente continua de la bobina Inductancia de la bobina Resistencia de la bobina Numero de vueltas del cable de la bobina Longitud de la bobina Radio del núcleo de la bobina

Valor 3.0 412.5 10 2450 0.0825 0.008

𝑲𝒎

Constante de fuerza electromagnética

6.5308x10-5

𝑹𝒔 𝒓𝒃 𝑴𝒃 𝑻𝒃

Resistencia del sensor de corriente Radio de esfera de acero Masa de esfera de acero Longitud de trayectoria de esfera

1 1.27x10-2 0.068 0.014

𝒈

Constante gravitacional de la tierra

9.81

𝝁𝟎

Constante de permeabilidad magnética

4πx10-7

Sensibilidad del sensor de posición de la esfera (Asumiendo que se midan valores 2.83x10-3 𝑲𝑩 con rango de 0-5V) Tabla 4.3 Diagrama de bloques de un controlador PID.

Unidad ±𝐴 𝑚𝐻 Ω 𝑚 𝑚 𝑁𝑚2 𝐴2 Ω 𝑚 𝑘𝑔 𝑚 𝑚 𝑠2 𝐻 𝑚 𝑚 𝑉

Conexión entre la planta MAGLEN, el adquisidor de datos y el amplificador El sistema MAGLEV contiene 2 sensores de retroalimentación. Uno es un pequeño sensor de corriente conectado en serie con la bobina. El otro es un photodarlington colocado dentro del pedestal y esta envía la señal de posición de la esfera metálica. La posición de la esfera es medida utilizando la entrada analógica #0 a través del canal analógico S1 del amplificador y el sensor de corriente de la bobina es medido utilizando la entrada #1 a través de la entrada S3 del amplificador. En la siguiente figura se muestra el diagrama de conexión entre los tres dispositivos, el dispositivo de adquisición de datos, el amplificador y la planta Maglev. 27

Figura 4.4 Conexión entre la planta, el adquisidor de datos y el amplificador. A continuacion se muestra una tabla donde se indican las conexiones enumeradas en la figura anterior, indicando desde donde y hasta donde se estableseran conexiones asi como el tipo de señal que se estara transmitiendo a travez de ellas. Cable Desde 1 Dispositivo de adquisición de datos: Salida analógica #0 2 Amplificador: Al conector Load 3 Amplificador: Al conector ADC

4

5

Hasta Conector amplificador

Conector de la bobina MAGLEV Dispositivo de adquisición de datos:  S1 Entrada analógica #0 (Amarillo)  S3 Entrada analógica #1 (Rojo) sensor Conector del amplificador “S1 y S2”

Señal Control de señal amplificador

del

Energía para la bobina

Señales de posición y corriente de retroalimentación al dispositivo de adquisición de datos, a través de un amplificador. Conector del Posición de MAGLEV retroalimentación al amplificador. Conector de corriente Conector del amplificador Corriente de MAGLEV “S3” retroalimentación al amplificador. Tabla 4.4 Especificaciones de las partes anteriormente enumeradas. 28

Tarjetas de adquisición de datos Q2 USB Quanser Q2-USB provee una solución económica a la adquisición de datos portables para aplicaciones de control. Este dispositivo tiene las siguientes características. • • • • • •

Funciona con Quarc, LabVIEW o códigos modificados Rápida conexión con la terminal y cableado proporcionado Dispositivo robusto Temporizador de Perro Guardián para máxima seguridad Compatibilidad con: Windows XP, Windows Vista, Windows 7 500 mA auto fusible reajustable

Descripción del dispositivo En la siguiente figura se muestra el Quanser Q2 USB. Cada componente enumerado en el dispositivo se describe en la tabla junto a esta.

ID 1

Descripción Conector mini USB

2

Conector: Entrada del codificador Conector: Salida analógica Conector: Entrada analógica Alimentación Perro Guardián LED Conectores Digitales I/O Terminal de tierra

3 4 5 6 7

Figura 4.5 Tarjeta de adquisición de datos Quanser Q2.

Tabla 4.5 Partes de la tarjeta Q2.

Salida analógica Q2-USB tiene dos salidas analógicas con conectores RCA. La salida analógica de 12 bits y una sola terminal tienen un rango de ±10 volts. El pin central de la conexión RCA es la señal y la parte lateral es la tierra.

29

Especificaciones de las salidas analógicas Número de canales Resolución Rango de entrada

Valor 2 12 bits ±10 Volts Velocidad de subida 3.5 V/ms No linealidad ±1 LSB Escala máxima de rango de error ±12 LBS Conversión de tiempo (dentro del error) 10 us Pinza de corriente 20 mA Máxima carga para rendimiento especifico 2 KΩ Máxima carga capacitiva para estabilidad 4000 pF Impedancia de salida de DC 0.5 Ω Tabla 4.6 Especificaciones de las salidas analógicas. Entrada Analógica Q2-USB tiene dos entradas analógicas con conectores RCA. La entrada analógica de 12 bits y una sola terminal tienen un rango de ±10 volts. Especificaciones de las entradas analógicas Número de canales Resolución Rango de entrada

Valor 2 12 bits ±10 Volts Conversión de tiempo 250 ns Impedancia de entrada 10 MΩ Escala máxima de rango de error ±10 LSB Tabla 4.7 Especificaciones de las entradas analógicas. Entradas y Salidas Digitales Q2-USB tiene 8 líneas digitales, todos los pines inferiores están conectados a tierra, como se indica en la carcasa del dispositivo. Los canales, que van desde DIO0 hasta DIO7 se pueden configurar para ser entradas o salidas. Cuando se configuran como salidas tienen como máximo un valor de 3.3 volts pero pueden tolerar un máximo de 5 volts cuando se configuran como entradas. Cada salida digital puede abastecer un máximo de 4 mA. Una salida digital 0 y 1 puede ser configurada como salidas PWM y están sujetos a las mismas limitaciones eléctricas.

Especificaciones de las entradas digitales Valor Número de líneas digitales 8 Entrada baja (0) 0.66 Volts Entrada alta (1) 2.31 Volts Fuga de corriente de entrada ±2 uA Tabla 4.8 Especificaciones de entradas digitales. 30

Especificaciones de las salidas digitales Número de líneas digitales Entrada baja (Max) Entrada alta (Min) Entrada alta (Típica) Fuga de corriente de entrada

Valor 8 0.4 Volts 2.4 Volts 3.3 Volts ±4 mA

Tabla 4.9. Especificaciones de salidas digitales. Entrada de codificador Q2-USB tiene 2 conexiones DIN de 5 pines. Cada entrada puede generar valores contables de 16-bit y solo soporta cuadraturas de 4x. El conteo del codificador inicial puede ser especificado. El codificador puede ser configurado para recargar el conteo del codificador inicial en un pulso índice, definir en qué bordes de A, B, y Z (índice) se utiliza para el pulso índice.

Especificaciones de las entradas del codificador Número de entradas de codificadores Entrada baja Entrada alta

Valor 2 0.66 volts 2.31 volts ±2 nA 6MHz 10 MHz

Fuga de corriente de entrada Frecuencia máxima de A y B en cuadratura Frecuencia máxima de cuenta 4x en cuadratura Tabla 4.10 Especificaciones de entradas del codificador.

Figura 4.6 Entradas del codificador

Terminal de tierra La terminal de tierra está conectada a ambas tierras, analógica y digital. Esta terminal provee una tierra de referencia para pruebas y prototipos improvisados.

Tarjetas de adquisición de datos Q8 USB La tarjeta de adquisición de datos Q8 USB de Quanser es una solución de alto rendimiento para la adquisición de datos y control. Esta robusta tarjeta fue desarrollada como una solución portable y de simple instalación como una alternativa a otro tipo de DAQ´s. Combinados con una fuente de poder amplificadora y el software apropiado, la Q8 provee un ambiente de desarrollo de prototipos ideal y rápido. Algunas de sus características se enlistan a continuación:  

Funciones con Quarc, LabVIEW, o código personalizado. No requiere un procesador digital de señales caro, todo el procesamiento se realiza en la CPU. 31

    

Terminales de conexión rápida y cableada incluidos. Chasis de metal robusto. Timer con perro guardián para máxima seguridad y flexibilidad. Compatibilidad con múltiples sistemas operativos. Fusil de 500mA autoajustable.

Especificaciones El recuento de las especificaciones de la tarjeta Q8-USB se muestra en las siguientes tablas donde se muestran las características de esta tarjeta, como el número de entradas y salidas, la alimentación, etc. En la tabla mostrada a continuación se muestran las especificaciones de las entradas análogas con las que cuenta la tarjeta, la cual cuenta con 8 de estas y su resolución es de 16 bits. Especificaciones de entradas analógicas Número de canales de entrada Resolución Rango Tiempo de conexión para los 8 canales Impedancia de entrada Escala máxima de rango de error Ancho de banda del filtro de entrada (-3dB) Tabla 4.11 Especificaciones de las entradas analógicas de la tarjeta Q8.

Valor 8 16-bit ±5𝑉, ±10𝑉 4𝜇𝑆 1𝑀Ω ±12 𝐿𝑆𝐵, ±6𝐿𝑆𝐵 15KHz, 23KHz

A continuación se anexa la tabla de especificaciones de las salidas analógicas de la tarjeta de adquisición de datos Q8-USB. Especificaciones de salidas analógicas Número de canales Resolución Rango de voltaje de salida Velocidad de subida

Valor 8 16-bit ±10.8𝑉, ±10𝑉, ±5𝑉, 10.8𝑉, 10𝑉, 5𝑉 𝑉 3.5 𝜇𝑆 ± 1𝐿𝑆𝐵 ±16 𝐿𝑆𝐵 ±65 𝐿𝑆𝐵 10𝜇𝑆 20mA 2𝐾Ω

No linealidad integral (INL) No linealidad diferencial (DNL) Escala máxima de rango de error (FSR) Tiempo de conversión Pinza de corriente en corto circuito Máxima carga para ejecución específica Máxima capacitancia para estabilidad de la 4000𝜌𝐹 carga Impedancia de salida DC 0.5Ω Tabla 4.12 Especificaciones de las salidas analógicas de la tarjeta Q8.

32

La siguiente tabla muestra las entradas y salidas digitales de la tarjeta las cuales cabe destacar que sus rangos de trabajo son mucho menores que la de los puertos analógicos. Especificaciones de entradas digitales Número de líneas I/0 Entrada en estado bajo Entrada en estado alto Corriente de fuga de entrada

Especificaciones de salidas digitales Número de líneas I/0 Salida en estado bajo Salida en estado alto Corriente máxima por pin Corriente máxima para todos los pines

Valor 8 1.5V 3.5V ±2𝜇𝐴

Valor 8 0.55V 4.5V ±32𝑚𝐴 ±100𝑚𝑎

Tabla 4.13 Especificaciones de las entradas y salidas digitales de la tarjeta Q8. La tarjeta cuenta con 8 entradas de codificador de composición individual con una no cuadratura y 4 con cuadratura que incluye un filtrado opcional, a continuación se enlistan las características de las entradas para el codificador. Especificaciones de entrada del codificador Número de entradas Valor de entrada en estado bajo Valor de entrada en estado alto Corriente de fuga de la entrada Máxima frecuencia A y B en cuadratura (sin filtrado) Máxima frecuencia de conteo en cuadratura 4X Corriente total de la fuente a 5V para las 8 entradas Velocidades del codificador Tabla 4.14 Especificaciones de entrada del codificador.

Valor 8 1.5V 3.5V ±2𝜇𝐴 24.883MHz 99.532MHz 800mA 99.532mhZ

A continuación se muestran las especificaciones de las salidas PWM, a las cuales se le puede configurar el ciclo de trabajo, la frecuencia, el periodo, el tiempo de pulso activo entre otras características.

Especificaciones de las salidas PWM Número de salidas de PWM Frecuencia mínima Frecuencia máxima Resolución Especificaciones de las unidades Tabla 4.15 Especificaciones de las salidas PWM.

Valor 8 (Compartidas con las salidas digitales) 23.7309MHz 49.766MHz 16-bits Ver especificaciones de salidas digitales.

33

Por último se muestra una tabla con las especificaciones de control de la cabecera de la tarjeta de adquisición de datos. Especificaciones de control de cabecera. Valor Fuente de corriente de +5Vdc (Compartidos con los pines de 5V del 800mA codificador) Tabla 4.16 Especificaciones de control de cabecera.. Nomenclatura de los componentes Los componentes de la tarjeta de adquisición de datos Q8-USB se enmarcan en la siguiente tabla, y para conocer su localización en la tarjeta se anexa una figura donde se muestra esta. ID 1 2

Descripción Conector USB Conector de la fuente Conectores de las entradas de 3 codificador 4 Conectores de salidas analógicas 5 Conectores de entradas analógicas Tabla 4.17 Nomenclatura de los componentes.

ID 6 7

Descripción Conectores de salidas digitales Conectores de entradas digitales

8

Control de cabecera

9 10

Terminal de tierra digital Terminal de tierra analógica

La siguiente figura muestra los componentes de la tarjeta con su debida nomenclatura descrita en la tabla anterior.

Figura 4.7 Tarjeta de adquisición de datos Quanser Q8. 34

Descripción de componentes 

 

 

Salidas analógicas.- Las salidas analógicas con conexiones RCA se muestran en la figura con el número 4. Estas salidas tienen un rango de ±10𝑉 a una corriente máxima de 5mA por canal. Estas contienen un circuito de protección de corto circuito de 20mA. Entradas analógicas.- La tarjeta cuenta con 8 entradas analógicas con conexión RCA identificados en la figura con el número 5. Estas entradas tienen un rango de ±10𝑉. Salidas digitales.- Las salidas digitales identificadas en la figura con el número 6 tienen un lado de los pines conectados a la tierra digital, cada pin puede soportar 32mA, pero el máximo de todos los pines juntos no debe exceder los 100mA. Estas salidas también se pueden configurar como salidas PWM. Entradas digitales.- La cabecera con las entradas digitales identificadas con el número 7 tiene los pines conectados a la tierra digital. Entradas del codificador.- La tarjeta tiene 8 entradas con 5 pines y están identificadas en la figura con el número 3. Cada codificador puede proveer valores de contador de 24-bits. En la siguiente figura se muestran los pines del codificador.

Figura 4.8.- Entradas del codificador.

PC’s Para el desarrollo del proyecto se utilizaron PC´s conectadas en red la cuales cuentan con las siguientes características.    

PC Dell Optilex 7010 Windows 7 Professional 64bits Intel Core i5 3.20GHz Conectividad LAN Ethernet 10/100/1000 Intel® 82579LM integrada; tarjeta PCIe Broadcom® NetXtremel® 10/100/1000 opcional; tarjeta WLAN (802.11n) PCIe (MT, DT, SFF) Dell Wireless 1530 opcional; tarjeta WLAN (802.11n) PCIe de media longitud (USFF) Dell Wireless 1530 opcional.

Switch Switch Cisco Catalyst 2960 24 Puertos Estos dispositivos ofrecen una amplia gama de características entre las que se incluyen el soporte para comunicación de datos, se pueden realizar comunicación por voz e inalámbrica sin la necesidad de nuevas conexiones y varias configuraciones de modelo con la capacidad de conectar escritorios, 35

servidores, teléfonos IP, puntos de acceso inalámbrico, cámaras de TV de circuito cerrado u otros dispositivos de red.

Módulo de Alimentación Universal (UPM) El Módulo universal de poder (UPM) es un amplificador de poder requerido para el funcionamiento de los actuadores Quanser. Este módulo de poder consiste de una fuente de poder de 12V, 4 entradas para sensores analógicos y una salida analógica de potencia amplificada (la ganancia es configurada por la elección del cable). Existen diferentes módulos universales de poder de la marca Quanser, pero para esta investigación se utilizará el modelo 2405 de dicha marca. Las especificaciones de este se anexan en la siguiente tabla. Módulos de poder Máximo Corriente Modelo voltaje de continua Salida Tipo salida máxima UPM-24-05 24 5 Lineal Voltaje Tabla 4.18 Especificaciones del módulo universal de poder Quanser.

Número salidas

de

1

Las conexiones más comunes del módulo de poder son mostradas en la siguiente figura. Cabe mencionar que en la tabla que se mostrará a continuación se describen las funciones de cada una de las conexiones más comunes de la fuente.

Figura 2.8 Módulo de Alimentación Universal.

36

Desde

Hacia

Cable

Canal #0 de salida D/A

Desde A/D en el UPM

RCA a DIN de 5 pines

Sensores

S1,S2,S3,S4 en UPM

Mini DIN de 6 pines

Hacia A/D del UPM

Entradas A/D en canales 0,1,2,3

DIN de 5 pines a 4 cables RCA

A carga

Motor

DIN de 6 pines a DIN de 4 pines

Descripción Esta es la señal de salida que debe ser amplificada Se conectan todos los sensores analógicos al UPM Rutea todas las entradas de los sensores a la tarjeta de adquisición de datos. Es la señal amplificada usada para manejar el actuador

Tabla 4.19 Especificaciones del módulo universal de poder Quanser.

Software Matlab (versión r2012a) Matlab es un lenguaje de computación técnica de alto nivel y un entorno interactivo para desarrollo de algoritmos, visualización de datos, análisis de datos y cálculo numérico. Con Matlab, podrá resolver problemas de cálculo técnico más rápidamente que con lenguajes de programación tradicionales, tales como C, C++ y Fortran. Matlab puede ser utilizado en una amplia gama de aplicaciones que incluyen procesamiento de señales e imágenes, comunicaciones, diseño de sistemas de control, sistemas de prueba y medición, modelado y análisis financiero y biología computacional. Los conjuntos de herramientas complementarios (colecciones de funciones de Matlab para propósitos especiales, que están disponibles por separado) amplían el entorno de Matlab permitiendo resolver problemas especiales en estas áreas de aplicación. Simulink Simulink es una herramienta interactiva para modelar, simular y analizar sistemas dinámicos. Nos permite construir diagramas de bloque gráficos, evaluar el rendimiento del sistema y refinar sus diseños. Simulink es la herramienta a escoger para el diseño de sistemas de control, diseños DSP, diseños de sistemas de comunicaciones y otras aplicaciones de simulación. Como una extensión de Matlab, Simulink adiciona muchas características específicas a los sistemas dinámicos, mientras conserva toda la funcionalidad de propósito general de Matlab. Así Simulink no es completamente un programa separado de Matlab, sino un anexo a él. El ambiente de Matlab está siempre disponible mientras se ejecuta una simulación en Simulink. Simulink tiene dos fases de uso: la definición del modelo y el análisis del modelo. La definición del modelo significa construir el modelo a partir de elementos básicos construidos previamente, tal 37

como, integradores, bloques de ganancia o servomotores. El análisis del modelo significa realizar la simulación, linealización y determinar el punto de equilibrio de un modelo previamente definido. Simulink puede simular cualquier sistema que pueda ser definido por ecuaciones diferenciales continuas y ecuaciones diferenciales discretas. Esto significa que se puede modelar sistemas continuos en el tiempo, discretos en el tiempo o sistemas híbridos. También utiliza diagramas de bloques para representar sistemas dinámicos. Mediante una interfaz gráfica con el usuario se pueden arrastrar los componentes desde una librería de bloques existentes y luego interconectarlos mediante conectores y alambre. Quarc El software Quarc es una herramienta que acelera significativamente el diseño de controladores y el proceso de implementación de estos. Como su predecesor WinCon, Quarc ayuda a ejecutar grandes investigaciones con control en tiempo real suave cuando se utilizan sistemas operativos basados en Windows. Este software se integra sin problemas con Simulink para el control de prototipos y de hardware. Esta herramienta ayuda a dibujar el diagrama de bloques del controlador, generar el código y ejecutarlo en tiempo real sin consumir muchos recursos. Las ventajas que ofrece este software es que no es únicamente didáctico sino que además es de gran utilidad para investigadores y tiene aplicaciones para el ramo industrial al ser capaz de generar código para el control de prototipos reduciendo el tiempo de desarrollo y costes. Entre sus características se enlistan las siguientes que destacan para el caso de estudio de esta investigación:

     

Soporte total para Simulink, los cuales incluyen osciloscopios, displays, parámetros de sintonización, etc. Una o múltiples PC´S soportadas. Comunicaciones flexibles y extensibles las cuales hacen propicio el control distribuido, y se facilita la comunicación entre el modelo y redes locales o remotas. Se unifica la arquitectura de adquisición de datos para tarjetas de marca Quanser, National instruments entre otras. Soporte para comunicaciones asíncronas en Simulink lo que lo vuelve ideal para este tipo de sistemas. Soporte de protocolos TCP/IP, UDP, serial, memoria compartida, etc.

38

Descripción de bloques de Simulink para el control del levitador magnético en forma local Para la realización del control de la planta en primera instancia se utilizó un diagrama de bloques realizado en Simulink de Matlab el cual es proporcionado por el fabricante. Dicho programa sirve para controlar la posición de la esfera mediante técnicas de sintonización PIV, además de contar con un controlador para la corriente de la bobina con técnicas de PI. A continuación se describen de una manera detallada las etapas que componen a este controlador. 

Inicialización del dispositivo de adquisición de datos: En este bloque se configura el modelo de la tarjeta de adquisición de datos y control Quanser que será utilizada para la comunicación de la computadora con los sensores y actuadores que están en la planta a controlar.

Figura 5.1 Bloque de inicialización del dispositivo de adquisición de datos. 

Configuración del “Setpoint” de la posición de la esfera: En esta sección del diagrama de bloques se configura la posición ideal deseada de la esfera. El bloque denominado como “Position Setpoint” es un generador de funciones el cual sirve para trazar la trayectoria la cual la esfera tendrá que seguir, dichas trayectorias pueden ser cuadradas, sinusoidales o diente de sierra, después se utiliza el bloque de ganancia (0.001) para transformar la magnitud de amplitud a metros. En la parte inferior de la figura se encuentran los bloques de una entrada escalón la cual se multiplica con el valor -0.005 que representa la posición de separación de aire en el levitador. La resultante de dicha multiplicación viaja a un sumador el cual suma la señal del generador de funciones. A la señal resultante se le agrega una compensación de 14mm (0.014m) la cual describe el viaje total de la esfera en el aire, la señal resultante es la posición ideal a la cual deberá encontrarse la esfera, por último se añadió un limitador de velocidad para evitar subidas y bajadas abruptas de la señal que 39

puedan desestabilizar al sistema. La señal que sale de ahí para al controlador PIV para compararla con la señal real otorgada por el sensor de posición.

Figura 5.2.- Ajuste de setpoint de la planta.

PID: Es un algoritmo de control basado en el error de posición. Es un algoritmo de control muy común en la industria. Es utilizado para sistemas tan variados como el control de movimiento preciso, para el control de nivel de líquido de control de temperatura. PIV: Es un algoritmo de control basado en errores de velocidad para su bucle interior y error de posición para su bucle exterior. Es similar en concepto a una unidad de la velocidad que tiene un lazo de posición a su alrededor. El XMP implementa el bucle de velocidad y el bucle de posición dentro de su DSP. Aquí están algunas cosas a considerar antes de tomar la decisión entre PID y PIV: PID tiene buenos resultados si el sistema es una masa simple con una fuerza o transductor de par (es decir, sencilla motor de imán permanente) la alimentación de la misma. Si usted tiene un robot con vínculos que cambian de momento de inercia cuando se mueve y un motor exótica que no es un transductor de par / fuerza perfecta, PIV puede funcionar mejor. Los sistemas que se preocupan más por regulación de velocidad de error de posición probable que tenga una mejor regulación de velocidad con PIV que PID. PIV tiene más parámetros para ajustar de PID. Esto puede ser un pro o una contra.

40

Figura 5.3 Conversión de las señales a mm

En esta parte del diagrama se puede observar dos señales (la señal de ideal y la señal que manda el sensor de posición) que entran en un “Multiplexor” que posteriormente son multiplicadas por 1000 para de esta manera transformar de metros a milímetros y finalmente un “Osciloscopio” que grafica ambas señales a la vez en tiempo real, esto con el propósito de apreciar el error.

Figura 5.4.- Comparación de la corriente ideal contra la real. Aquí se puede observar dos señales (la señal ideal y la señal que manda el sensor intensidad que le llega a la bobina del electro magneto) que entran en un “Multiplexor” para posteriormente graficar ambas señales en “Osciloscopio”, esto con el propósito de apreciar el error.

Figura 5.5.- Entradas analógicas de la planta

41

El primer bloque envia las señales analogicas de retroalimentacion de los sensores, el de posicion y el de amperaje de la bobina que sencuentran dentro de la planta (el levitador). La señal superior es la señal de posicion, que viene expresada en volts, para transformarla a longitud en metros se multiplica por 0.0028

Descripción de la etapa de control de posición. La etapa de control de la planta tiene cierto grado de complejidad, como se mencionó anteriormente la naturaleza de dicha planta hace que el control PIV sea una opción fuerte a comparación del PID el cual es más común. En la siguiente figura se muestra la etapa de control del levitador magnético Quanser el cual dictaminará la corriente necesaria para lograr su estabilidad.

Figura 5.6.- Controlador PIV de la planta En dicho diagrama se muestra la manera en la que la posición del setpoint llega a la ganancia de retroalimentación y a su vez al sumador del controlador PI. La posición real enviada por el sensor óptico llega a un sumador el cual sirve para calcular el error entre la posición deseada y la real. A su vez, dicha señal llega a una función de transferencia preestablecida y se le aplica una ganancia a dicho controlador. Cabe mencionar que a la ganancia del controlador integral se aplica el bloque de control de acción para lograr así el PI. Las 3 señales resultantes (Retroalimentación, Acción proporcional y acción integral) se suman y solamente se le resta la señal del controlador V. La señal resultante describe la corriente necesaria que requiere la bobina, a la salida de dicho controlador se aplica un limitador para no exceder las especificaciones del fabricante con respecto a la corriente máxima que soporta la bobina.

42

Figura 5.7.- Limitador de corriente de la bobina

Figura 5.8.- Controlador PI de corriente. En la parte final se puede observar un sistema de lazo cerrado con retroalimentación, con un controlador PI (proporcional e integral). Al inicio en un punto de suma llegan 2 señales, la señal ideal (“Set Point”) y la señal retroalimentación enviada por la planta (en este caso el levitador) con el sensor de corriente que le llega a la bobina. Después se puede ver el controlador, la parte proporcional tiene una ganancia de 225, y la parte integral tiene una ganancia de 50500. Después de terminar la parte de control se limita el voltaje de -24 a +24 volts y se hace una compensación de amperaje de 1/3. Finalmente se envía la señal de salida al actuador, la bobina del electro imán.

Desarrollo del proyecto Envío de señales a través de la red con Simulink y Quarc en dos PC’s Antes de poner en funcionamiento el levitador de una manera distribuida es necesario conocer la transmisión de datos a través de la herramienta Simulink y el software Quarc. Para lograr dicho cometido se realizaron diversos experimentos poniendo en práctica los conceptos de transmisión en tiempo real y redes distribuidas. El primero de dichos experimentos consistió en la comunicación de dos computadoras para el envío y tratamiento de señales. En este experimento se realizó el envío de una onda senoidal a través de una red de computadoras utilizando un bloque de servidor proporcionado por Quarc, dicha señal viajará a través de la red y será recibida por un cliente en otro 43

equipo de cómputo. La señal recibida posteriormente será filtrada y en un osciloscopio se hará una comparación de dichas señales. La señal enviada tiene la característica de ser una onda senoidal brindada por un generador de señales con una amplitud de 5 y una frecuencia de 100Hz, el filtro utilizado es un filtro pasa bajos de segundo orden el cual esta modelado mediante una función de transferencia y ajustado para que la frecuencia de corte sean los 20Hz. Dicha función de transferencia se define por la siguiente ecuación. 125.66 𝑠 + 125.66 A continuación se muestra el diagrama de bloques utilizado para lograr la comunicación entre ambas computadoras, cabe mencionar que a pesar de la simplicidad que pueda aparentar fue un verdadero reto para los diseñadores del sistema debido a que se tuvieron que configurar distintos parámetros para el envío correcto de la señal. Otro de los inconvenientes del experimento fue la frecuencia de la señal, originalmente se esperaba poder transmitir una onda senoidal a 1000Hz con un filtro de 100Hz, pero la transmisión de datos no fue lo suficiente buena para lograr esto, es por eso que se optó por reducir la frecuencia a 100Hz y una frecuencia de corte de 20 Hz.

Figura 6.1.- Señal senoidal enviada.

Figura 6.2.- Señal recibida y filtro.

44

Como se puede observar en las figuras anteriores, se necesita configurar el bloque de cliente y servidor con la dirección IP para una correcta comunicación, la señal recibida será direccionada directamente a la salida rcv del bloque cliente, a continuación se muestran los resultados otorgados por el experimento.

Figura 6.3.- Gráfica de resultados de señales enviadas Se puede observar en color amarillo la onda transmitida la cual claramente refleja ciertas perturbaciones causadas al ser enviada a través de la red, estas imperfecciones las cuales hacen que sea diferente a una onda senoidal perfecta se deben al tiempo de muestreo y transmisión. En color rosa se muestra la onda filtrada.

Envío de señales a través de la red con Simulink y Quarc en tres PC’s El segundo experimento realizado para la transmisión de datos requirió la distribución de las tareas mediante 3 computadoras con el objetivo de acercarse a los alcances del proyecto, dichos alcances suponen distribuir las funciones de la planta (sensor, controlador, actuador) en una red comunicada mediante el protocolo TCP/IP en tiempo real. Para esta práctica se simuló un sistema de control donde la obtención de los datos está dada por un generador de onda senoidal, dicha señal es enviada a la segunda computadora la cual aplica una ganancia que representa la etapa de control, al ser manipulada dicha señal se envía a una tercera computadora, donde el actuador es representado por un osciloscopio que muestra la señal “controlada”. Para lograr dicho experimento es necesario configurar los parámetros del servidor y 45

los del cliente, en las siguientes figuras se pueden observar dichas configuraciones, siendo la primera la configuración del servidor y la segunda es la configuración de los clientes de la red.

Figura 6.4.- Configuración del servidor en Simulink.

Figura 6.5.- Configuración del cliente en Simulink En la configuración de cliente es necesario especificar la dirección IP en la cual se va a ejecutar el programa, además del puerto que será utilizado para la transmisión de datos. Para la configuración del servidor no es necesario especificar la dirección IP debido a que el programa será ejecutado en la computadora huésped. Una vez configurado los parámetros de los componentes de la red se realizaran los diagramas de bloques correspondientes a los cuales se especifica la dirección IP de destino y el puerto al cual será transmitido ese dato. A continuación se anexan en orden la representación del diagrama de bloques del sensor, controlador y actuador. Cabe destacar que en la etapa de control se encuentra el servidor el cual no es necesario especificar la dirección de destino al ser los clientes los encargados de establecer la comunicación con este. 46

Figura 6.6.- Cliente que se encarga de enviar la señal al controlador

Figura 6.7.- Servidor que simula el controlador y envía la señal al tercer cliente

Figura 6.8.- Cliente que recibe la señal amplificada.

47

Una vez realizados los diagramas de bloques es necesario generar el código en C mediante la herramienta construir modelo localizada en la barra de herramientas de Simulink. Una vez generado el código en cada uno de las 3 etapas de la red es necesario iniciar la comunicación de estas etapas y posteriormente se ejecutan los 3 programas. Los resultados arrojados por este experimento se muestran en las siguientes gráficas.

Figura 6.9.- Onda senoidal generada En la imagen anterior se muestra una onda senoidal con amplitud de 5 y frecuencia de 100 Hz, la cual es generada mediante el bloque de función senoidal y posteriormente es enviada al servidor, el cual se encarga de tratarla aplicándole una ganancia de 2. En el siguiente gráfico se muestra la señal recibida en la tercera computadora el cual representa el actuador del sistema.

Figura 6.10.- Señal amplificada. 48

Se puede observar que el resultado del experimento resulto satisfactorio al obtener una señal duplicada y sin alteraciones con respecto a la señal generada en el primer computadora. Se puede concluir que la comunicación fue correcta y es posible realizar la distribución de un levitador magnético en sus tres etapas (Sensor, controlador, actuador).

Procedimiento para la distribución del sistema en red A partir del modelo inicial del control del levitador que se proporcionó, se procede a separar en tres modelos diferentes para posteriormente distribuirlos en tres computadoras diferentes, para esto se fragmento el modelo en tres partes “Sensor”, “Control” y “Actuador”. En la siguiente figura se muestra el modelo inicial, en los recuadros en rojo se indican los bloques que serán separados para su distribución y los restantes formaran parte del modelo de control.

Figura 6.11.- Modelo inicial que será modificado para distribución en red En las siguientes figuras se observan los tres modelos diferentes que se crearon. A continuación se agregan los bloques de envío y recepción de datos para la comunicación entre los tres modelos, siendo estos bloques “Stream Client” y “Stream Server” del apartado de Quarc. Estos bloques se indican en la zona de color rojo.

Figura 6.12.-Modelo de Control, indicando los bloques de comunicación. 49

Figura 6.13.-Modelo de Actuador, indicando los bloques de comunicación.

Figura 6.14.-Modelo de Sensor, indicando los bloques de comunicación. Los bloques agregados anteriormente para comunicación se configuran para evitar el envío de datos erróneos, enviar una cantidad de Bytes innecesarios que solo generaran retardos en la comunicación, esto debe evitarse lo más posible ya que esto puede hacer que el sistema no funcione en tiempo real como se desea, las configuraciones se muestran en la siguiente figura:

Figura 6.15.- Configuraciones de los clientes y servidor. 50

Después de configurar los bloques de comunicación de esta manera, lo siguiente es configurar los modelos para ser enviados a ejecutar en otras computadoras y de esta manera distribuir el sistema. Estas configuraciones se realizan en “Simulación” en el apartado de “Configuración de Modelo” específicamente en el área de “Generación de Código” e “Interface” el recuadro llamado “MEX-file arguments” debe tener la IP del computadora en el que se alojara este modelo y el puerto de comunicación, como se muestra en la siguiente figura.

Figura 6.16.- Configuración del target para los equipos de la red Posteriormente se conecta el hardware, primero se interconectan las computadoras vía Ethernet mediante un switch. A continuación se conectan las tarjetas de recolección de datos Q8-USB a las computadoras correspondientes (uno al que contiene el modelo del actuador y otra al que contiene el modelo de los sensores) mediante USB. Después de esto energizamos las tarjetas y el levitador mediante un módulo universal de energía (Fuente), todo del mismo fabricante Quanser. Finalmente solo es necesario generar el código de todos los modelos, contactarlos entre si y correrlo con los botones que se encuentran en la parte superior de la ventana de Simulink como se muestran en la siguiente figura, enumerados en orden de activación.

Figura 6.17.-Botones utilizados para ejecutar el programa Como paso adicional se decidió modificar las ganancias de controlador para obtener una mejor respuesta del levitador, ya que este tenía muchas perturbaciones y movimientos bruscos que provocaban que la pelota metálica callera o fuera atraída al electroimán indefinidamente. Para esto se modificaron las ganancias de control proporcional e integral a -250 y -100 respectivamente.

51

Pasos necesarios para poner en funcionamiento el sistema En el presente apartado se describirá detalladamente paso a paso la manera de poner en funcionamiento la planta de levitación magnética de manera distribuida. 1. Encender las computadoras marcadas con la dirección IP 192.168.16.110, 192.168.16.190, 192.168.16.192.

2. Posicionarse en la computadora con la dirección IP 192.168.16.110 utilizando el multiplexor de teclado y mouse. 3. Cerciorarse de que se inicialice el software Quarc, esto sucederá cuando aparezca el icono que se anexa a continuación en la barra de tareas.

4. Abrir los archivos correspondientes de Simulink Sensor, Controlador y Actuador. 5. Energizar el levitador magnético y las tarjetas Q8-Usb encendiendo la UPM.

6. Ajustar los parámetros de las ganancias (P, I, V, FF) según la conveniencia de quien desarrolla el experimento, así como la trayectoria que seguirá la esfera mediante el generador de señales localizado en la parte superior izquierda del modelo del controlador (Position Setpoint).

52

7. Una vez ajustados todos los parámetros se tendrá que construir el modelo de cada uno de los 3 elementos del sistema (Sensor, Controlador, Actuador). Mientras esto se realiza aparecerá en la ventana de comandos el estado de carga de estos. 8. Establecer la comunicación de cada uno de los 3 modelos por separado para poder iniciar a ejecutar el programa, esto mediante el botón de comunicación en la barra de herramientas de Simulink. 9. Pulsar el botón de “Play” de cada uno de los 3 modelos, a partir de este momento el levitador ejercerá acción de control sobre la esfera y se podrá observar como esta se desplaza a través del espacio según la trayectoria que se estableció previamente. 10. Los resultados del experimento podrán observarse en cada uno de los osciloscopios de los 3 modelos.

Descripción de bloques de Simulink para el control del levitador magnético en forma distribuida Al realizar la distribución del modelo que controlara el levitador magnético fue necesario separar las operaciones se realizaran en tres secciones, que serán enviados a tres diferentes computadoras. Estas tres secciones son Sensores, Controlador y Actuador. En la siguiente figura se muestran los bloques agregados al modelo de la sección de sensores, donde se pueden observar dos bloques que se agregaron al modelo original, llamados “Stream Client” estos bloques son parte del apartado de Quarc y se comunican con el modelo del controlador, enviando la señal de los sensores de posición y corriente obtenidos por el bloque “HIL Read Analog” que por medio de la tarjeta Q8-USB de Quarc son transferidas al modelo.

Figura 6.18.-Bloques utilizados en el programa de sensores 53

En el modelo que forma parte de la sección del controlador, se agregaron tres bloques “Stream Server”; dos de estos reciben las dos señales de los sensores que manda el modelo de sensores, como se muestran en la siguiente figura.

Figura 6.19.-Recepción de datos del controlador. El tercer bloque se encuentra al final del modelo del controlador, ya que la señal fue controlada se envía al tercer y último modelo, el actuador, como se muestra en la siguiente figura.

Figura 6.20.-Bloques de control PI y envío de datos En el modelo del actuador se agregó un bloque “Stream Client” que se encarga de recibir la señal controlada que envía el modelo del controlador al final de su proceso. Para posteriormente por medio de un bloque “HIL Write Analog” y la tarjeta Q8-USB (ambos de Quarc) se envíe al actuador, la bobina del levitador.

Figura 6.21.- Modelo del actuador. 54

Desafíos y su solución Enviar y recibir datos de manera local Para resolver este desafío fue necesario investigar en los manuales de “Quarc” cuál de los bloques que este programa agrega en Simulink podría solucionar nuestra necesidad de enviar y recibir señales. Finalmente, después de identificar y probar los bloques de comunicación en el apartado de Quarc, elegimos los bloques que se encuentran en la sección de Comunicaciones, en el apartado de Básicos. Estos bloques fueron “Stream Client” y “Stream Server”. Establecer conexión local y configuración de bloques Una vez identificados los bloques ideales para nuestro sistema ahora es necesario establecer conexión entre computadoras, en este paso en específico se encontraron diversos inconvenientes, siendo el principal el procesador de las computadoras utilizados ya que se utilizaron las computadoras personales de los desarrolladores que, al ser portátiles no cuentan con una gran potencia en cuanto a procesamiento y software, ya que las computadoras no tenían muchos de los driver necesarios para la conexión en red en Simulink y Quarc. Este problema tomo bastante tiempo, hasta que se decidió cambiar de equipo y se asignaron computadoras de escritorio que ya estaban diseñadas, contenían el software necesario para utilizar Matlab, Simulink y Quarc sin problemas. Con las computadoras que se asignaron se comenzó a tener un avance más rápido, ahora el problema era configurar los bloques que se seleccionaron para la comunicación entre ellos, solo se revisó el manual de Quarc para conocer los parámetros que necesitaban se configurados. Básicamente fue colocar la “IP” y el puerto por el que se enviaría la señal, en este caso por ser pruebas se utilizaron comunicaciones de manera local, por lo tanto la IP era Local Host, lo único que variaba era el puerto, para de esta manera, sin importar cuantos bloques se tengan, no interfieran entre ellos, el servidor y el cliente se comunicaran siempre y cuando tengan el mismo puerto. Establecer conexión vía Ethernet Para esta etapa se tenía claro como configurar los bloques de envío y recepción de datos, ahora el problema era mandar a realizar tareas de una computadora principal a otras, sin tener que entrar en ellas. Para esto se consultaron ejercicios que Matlab tiene en su página web de soporte. Para poder hacer esto era necesario entrar en las configuraciones de “Generación de Código” en “Interface” el recuadro de “MEX-file arguments” se agrega la “IP” y el puerto de la computadora a la que se va a mandar a realizar el programa que se encuentre en ese modelo. Después de muchas pruebas se logró establecer conexione entre dos computadoras y posteriormente hasta en tres. Retardo al enviar y recibir datos Ya habiendo distribuido el sistema en tres modelos diferentes enviado a tres diferentes computadoras con sus respectivos bloques de envío y recepción de datos configurados de manera correcta, al correr los modelos el levitador no funcionaba de manera correcta, el electroimán se sobrecargaba y hacia que la pelota se pegara a él. Este problema tomo bastante tiempo resolver ya que no se tenía idea de que pasaba, ya que de manera local el programa funcionaba correctamente, después de hacer diversas pruebas, se observó que al hacer una comunicación de solo dos computadoras el programa funcionaba un poco mejor, lo que nos hizo revisar las gráficas de los 55

modelos con las mismas características y compararlas. Esto arrojó como conclusión un desfase entre la señal enviada y la recibida, ya que existía un retardo bastante considerable. Después de diversas pruebas se pudo observar que el problema fue que las configuraciones de la cantidad de datos que estos bloques traen por defecto no eran las que satisfacían las necesidades de transmisión, entonces se ajustaron algunos parámetros como la cantidad de Bytes que enviaría a 16, que solo enviara los datos más recientes y que recibiera solo los datos más recientes. Ajustar las ganancias del controlador Finalmente el levitador funcionaba de igual manera que cuando el sistema no estaba distribuido, solo que este programa no está diseñado para todos los ambientes, así que para un mejor funcionamiento del levitador se decidió cambiar las ganancias del controlador PIV+FF que ya tenía el modelo inicial, se cambió la ganancia del control proporcional a -250 ya que la aumentar la ganancia proporcional en un control de este tipo el sistema responde de una manera más rápida aunque se generan sobre picos en estado estable, para reducir estos se ajustó la ganancia del control integral a -100 porque al aumentar la ganancia integral en un control de este tipo el sistema responde de mejor manera en estado estable compensando los sobre picos generados por la ganancia proporcional. Finalmente se observó a la pelota levitar con mucha más suavidad y sin tantas perturbaciones a pesar de los cambios de luz en la habitación.

Resultados Los resultados obtenidos durante la ejecución del experimento final del proyecto se pueden observar a continuación en las gráficas que comparan la posición establecida para la esfera de metal y la posición real de dicha esfera medida por el sensor de luz dentro de la base, además se muestra la gráfica de corriente necesaria para mantener la posición comparada con la corriente real entregada a la bobina.

Figura 7.1.- Respuesta del sistema a una trayectoria senoidal. En este gráfico se observa la trayectoria senoidal trazada para la esfera la cual sigue de una manera casi satisfactoria con algunas variaciones ocasionadas por las perturbaciones que afectan el sistema. 56

Para reducir de manera notable dichas perturbaciones fue necesario variar las ganancias de las etapas de control PIV+FF.

Figura 7.2.- Respuesta del sistema a una entrada con valor constante. La gráfica anterior muestra la respuesta del sistema a una entrada con valor constante la cual es satisfactoria al no presentar variaciones abruptas en estado estacionario, dicha estabilidad se logró aumentando el valor de la ganancia de la acción integral del controlador.

Figura 7.3.-Comparación entre corriente ideal y real. El gráfico representa en color amarillo la corriente necesaria para la bobina y en color rosa muestra la corriente obtenida por el sensor, se puede observar que dicha corriente tiene variaciones abruptas causadas por el controlador PI el cual rige el comportamiento de la bobina. 57

A continuación se muestran imágenes del equipo utilizado durante el desarrollo del proyecto, el cual incluye a los 3 equipos de cómputo utilizados, así como las tarjetas de control y adquisición de datos, la fuente de poder y la planta controlada.

Figura 7.4.- Equipos de cómputo utilizado para la red distribuida

Figura 7.5.- Tarjeta Quanser Q8-Usb conectada al actuador mediante salidas analógicas.

58

Figura 7.6.- Tarjeta Quanser Q8-Usb conectada a los sensores del levitador mediante entradas analógicas.

Figura 7.7.- Modulo de poder universal utilizado para alimentar la planta.

59

Figura 7.8.- Levitador magnético Quanser en funcionamiento.

Conclusiones La invención de las redes de computadoras ha venido a revolucionar la manera en la que se realizan muchas cosas que hace 50 años hubiesen sido solamente sueños lejanos, entre sus aplicaciones existe la transmisión de datos entre diversos usuarios, por lo tanto es posible realizar desde una compra hasta una video llamada con alguien del otro lado del mundo e inclusive los cajeros automáticos de los bancos pueden enviar y recibir información desde una central para llevar el manejo de los activos de manera instantánea. Dichas prestaciones otorgadas por los sistemas distribuidos en red han venido a hacer que existan cada vez más aplicaciones enfocadas a otras áreas como la ingeniería automática donde es posible utilizar distintos equipos de cómputo para distribuir las tareas de un sistema ahorrando recursos y dándole un mejor rendimiento de los procesadores utilizados para lograr una respuesta prácticamente en tiempo real. Los alcances del proyecto desarrollado a lo largo de los meses de junio-julio de 2015 son el poder aplicar una unión interdisciplinaria de las áreas de ingeniería en sistemas e ingeniería mecatrónica para utilizar el control de una planta distribuyendo cada una de sus tareas a través de una red de computadoras con el fin de mejorar la respuesta del sistema y su estabilidad para lograr acercarse lo más posible a un comportamiento en tiempo real, es decir sin retraso entre la entrada y salida de las señales. Los resultados otorgados fueron satisfactorios por el hecho de que se cumplieron los objetivos enmarcados al inicio del proyecto, aunque cabe mencionar que este cuenta con la propiedad de que puede ser replicado y utilizado en diferentes sistemas de control más allá del levitador magnético que fue utilizado en esta investigación. Se puede afirmar y concluir que los 60

sistemas distribuidos aplicados a la ingeniería de control vienen a darle al diseñador un alivio al momento de idear los controladores para una planta al eliminar el problema que trae la utilización de recursos de un procesador para los sistemas más complejos que existen en la actualidad, además de que la utilización de software especializado (Matlab, Quarc) viene a ser de gran ayuda para el ingeniero que deseé aplicar los conocimientos de control en sistemas y prototipos, esto servirá para que en el futuro existan sistemas inteligentes que seguramente vendrán a resolver los problemas del mundo diario.

Bibliografía Tema 5: Introducción a los sistemas en tiempo real. Depto. De arquitectura y tecnología de computadoraes. Universidad de Sevilla. CONCEPTO ASÍNCRONO Y SÍNCRONO, URL http://www.sites.upiicsa.ipn.mx/polilibros/portal/polilibros/p_terminados/PolilibroFC/Unidad_II/Unidad%20I I_5.htm Sistemas distribuidos, URL http://www.tamps.cinvestav.mx/~vjsosa/clases/sd/sistemas_distribuidos_panorama.pdf Quanser Consulting, Magnetic levitation experiment Abkarian, J. Lacheray, H. and Lévis, M. STUDENT WORKBOOK Magnetic Levitation Experiment for MATLAB /Simulink Users (2012) Ogata, K. “Discrete-Time Control Systems” Second Edition MathWorks-Support “Real-Time Transmit and Receive over Ethernet”, In URL http://www.mathworks.com/help/xpc/examples/real-time-transmit-and-receive-overethernet.html?refresh=true Rodríguez C. “Diseño de un controlador PID en tiempo discreto” En URL https://www.academia.edu/12564358/Dise%C3%B1o_de_un_controlador_PID_en_tiempo_discreto Becker C. “Sistemas Operativos en Tiempo Real” En URL http://ieee.eie.fceia.unr.edu.ar/PDF_RTOS.pdf

61

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.