Вы находитесь на странице: 1из 19

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

VII. CONTROL USANDO SIMULINK Y ARDUINO Los entornos de Diseo de Sistemas de Control Asistido por Ordenador (CACSD) estn experimentando notables cambios durante los ltimos aos. Estos avances afectan a las distintas fases de diseo de los sistemas de control como pueden ser el modelado, la identificacin y la validacin de estos modelos, as como a la posterior fase de diseo del controlador propiamente dicho.

Figura No. 1

Este trabajo describe una herramienta cuyo principal objetivo consiste en la integracin en un nico entorno de un conjunto de funciones que permiten el control por realimentacin de estados para sistemas SISO. Es decir, cubren la ltima fase de las comentadas anteriormente, y supone que el modelo del sistema ya ha sido obtenido por algn mtodo. Existen numerosas y bien conocidas razones para utilizar este tipo de control, como pueden ser su implantacin industrial, robustez, facilidad de empleo, etc.

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

Ahora utilizaremos el microcontrolador Arduino y Matlab (Simulink) para hacer un control real del sistema. EL MICROCONTROLADOR ARDUINO En estas clases siguientes intentaremos una forma de acercarnos al diseo y desarrollo de proyectos basados en Arduino. Dado que tenemos los conocimientos adecuados en electrnica y programacin, para hacerlo fcil, programacin de Arduino. Otro de los objetivos de estas guas es organizar un poco la gran cantidad de informacin que sobre este tema existente en la red. Para ello casi toda la informacin se ha obtenido a travs de la fuente http://www.arduino.cc o de manuales basados en ella pero algo ms estructurados. Por ltimo, las clases estn pensadas como soporte para la realizacin de nuestro proyecto final que es el control de un sistema real. Qu es ARDUINO? Arduino es una plataforma de prototipos electrnica de cdigo abierto (opensource) basada en hardware y software flexibles y fciles de usar. Est pensado para artistas, diseadores, como hobby y para cualquiera interesado en crear objetos o entornos interactivos. he pensado en que nos

centremos en los aspectos ms bsicos de las caractersticas y la

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

Arduino puede sentir el entorno mediante la recepcin de entradas desde una variedad de sensores y puede afectar a su alrededor mediante el control de luces, motores y otros artefactos. El microcontrolador de la placa se programa usando el Arduino Programming Language (basado en Wiring1) y el Arduino Development Environment (basado en Processing2). Los proyectos de Arduino pueden ser autnomos o se pueden comunicar con software en ejecucin en un ordenador, en nuestro caso Matlab y Simulink. Existen muchos otros microcontroladores y adems plataformas microcontroladoras disponibles para computacin fsica. Parallax Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard, y muchas otras ofertas de funcionalidad similar. Todas estas herramientas toman los desordenados detalles de la programacin de microcontrolador y la encierran en un paquete fcil de usar. Arduino tambin simplifica el proceso de trabajo con microcontroladores, pero ofrece algunas ventajas para profesores, estudiantes y aficionados interesados sobre otros sistemas: Barato Multiplataforma Entorno de programacin simple y claro Cdigo abierto y software extensible Cdigo abierto y hardware extensible

Hay mltiples versiones de la placa Arduino. La mayora usan el ATmega168 de Atmel, mientras que las placas ms antiguas usan el

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

ATmega8. En nuestro caso nos dedicaremos exclusivamente al trabajo con Arduino Uno. Arduino Uno es una tarjeta basada en el microcontrolador

ATmega328 (datasheet). Tiene 14 entradas/salidas digitales, de las cuales 6 pueden ser utilizadas como salidas PWM, 6 entradas anlogas, un cristal oscilador de 16Mhz, conexin USB, conector de alimentacin, conector ICSP y botn de reset. Contiene todo lo necesario para hacer funcionar al microcontrolador, simplemente se conecta al PC con un cable USB o se alimenta con una fuente AC/DC o una batera de 9VDC. La nueva Arduino UNO. Adicional a todas las caractersticas de su predecesora Arduino Duemilanove, UNO ahora utiliza un microcontrolador ATMega8U2 en vez del chip FTDI. Esto permite mayores velocidades de transmisin por su puerto USB y no requiere drivers para Linux o MAC (archivo inf es necesario para Windows) adems ahora cuenta con la capacidad de ser reconocido por el PC como un teclado, mouse, joystick, etc.

INSTALACION DEL SOFTWARE ARDUINO Esta seccin explica como instalar el software Arduino en un computador que ejecute Windows. Estos son los pasos para instalar los controladores o drivers de Arduino UNO.

Lo primero que debemos hacer es descargar el entorno de desarrollo y los drivers del Arduino, lo puedes bajar de la pgina http://arduino.cc/es/Main/Software.

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

Conecta la board y espera a que windows inicie el proceso de instalacin, despus de unos minutos este fallar. Haz Click en Menu Inicio, posiciona el mouse en equipo y presiona click derecho, eligiendo la opcin de propiedades. Ahora elije la opcin de administrador de dispositivos, mira debajo de los puertos (COM & LPT) o en otros dispositivos, debe aparecer Arduino UNO. Da Click derecho en "Arduino UNO " y elije la opcin de actualizar software del controlador. Despus elije la opcin buscar software de controlador en el equipo y selecciona la carpeta donde descargaste Arduino UNO o superior. Busca la carpeta drivers y seleccinala (slo la carpeta drivers no la FTDI QUE SE ENCUENTRA INTERNA), sigue la instalacin de manera normal. Ahora ya est listo el PC para trabajar con la board Arduino UNO.

INICIANDONOS EN ARDUINO: Esquema:

En la figura, podemos observar resaltadas las partes que es necesario conocer para el correcto conexionado de la tarjeta.

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

1.

Lnea

de

comunicaciones

pines

no

se

usan.

Entradas/salidas digitales pines del 2 al 13. 2. Botn reset de la tarjeta (Permite el re-inicio de la misma). 3. Lnea de Entradas analgicas (De la A0 a la A5). 4. Lnea de alimentacin. En estos pines podemos encontrar Vin, GND, 5V, 3.3V y reset. 5. Plug de alimentacin de la tarjeta (Para voltajes entre 7 a 12 volts mximo). 6. Regulador de voltaje. 7. Conector USB. Una vez instalado el paquete programa con sus drivers, en Windows 7, vamos a ejecutar la aplicacin y despus seleccionaremos el tipo de placa que tenemos y el puerto COM por el que se van a enviar los datos, para ello hacemos doble click sobre el fichero con nombre arduino y se abrir la aplicacin. Nos encontraremos con una ventana como la mostrada en la figura siguiente. Como se puede ver, en la parte superior hay una serie de mens, si pinchamos en tools podemos ver que tenemos disponibles las opciones "Board" y "Serial Port", en board seleccionamos nuestro tipo de placa y en serial port el puerto de comunicaciones donde se

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

encuentra nuestro

Arduino,

puedes comprobar cmo se ha

instalado si buscas en el Administrador de Dispositivos de Windows en la pestaa "Puertos (COM yLPT)" el dispositivo con nombre "USB Serial Port (COMx)". Ahora nos podramos preguntar el por qu de que se llame "USB serial Port" y por qu transferir archivos por puerto COM si nuestro Arduino est conectado por USB, la respuesta es fcil, el Arduino en realidad se comunica por puerto COM y en su placa lo que tiene es un convertidor de puerto Serie a USB para que as podamos usarlo por USB que es mucho ms cmodo y est ms extendido que el COM. Una vez que tenemos nuestro Arduino conectado y configurado podemos cargar un programa de ejemplo para comprobar su funcionamiento, en el paquete que nos hemos descargado tenemos una serie de ejemplo que podemos subir. Para esto pulsamos en el botn File -> Examples -> 1.Basics -> Blink con esto cargamos un pequeo cdigo que har que un led conectado a la salida 13 se encienda y se apague con una frecuencia de un segundo. Ejecute el programa con el diodo ya conectado como se muestra en la figura.

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

Como eso es muy sencillo y poco atractivo, lo podemos modificar ligeramente para que cuando el led del terminal 13 este encendido, el del terminal 12 este apagado y justo lo contrario as conseguimos que parpadee uno si y uno no, copie, analice y ejecute el cdigo siguiente:
void setup() { pinMode(13, OUTPUT); // Inicializa pin 13 como salida pinMode(12, OUTPUT); // Inicializa pin 12 como salida } void loop() { digitalWrite(13, HIGH); // LED on digitalWrite(12, LOW); // LED off delay(1000); // Tiempo de espera digitalWrite(13, LOW); // LED off digitalWrite(12, HIGH); // LED on delay(1000); // Tiempo de espera }

Realizando algunos arreglos en las lneas podemos hacer un semforo o jugar con una combinacin de LEDs. Intente montando un circuito como el de la figura.

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

TRABAJANDO CON EL HARDWARE DE ARDUINO En este tema les muestro cmo aadir soporte hardware Arduino con el producto Simulink de Matlab. Una vez completado este proceso, se pueden ejecutar modelos de Simulink en su hardware Arduino. El proceso de instalacin agrega los siguientes elementos a su computador. Herramientas de desarrollo de software, tales como el software de Arduino. Una librera de bloques de Simulink para configurar y acceder a los sensores, actuadores, y a las interfaces de comunicacin de Arduino. Demos para empezar a aprender acerca de las caractersticas especficas de Simulink y Arduino. Para instalar Arduino siga los siguientes pasos: (debe estar conectado a internet) Abra en Simulink un documento nuevo. Selecciones Tools, y luego Run on Target Hardware > Install/Update Support Package. La velocidad de instalacin depende de su conexin a internet. Despus de unos segundos se le presenta:

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

Seleccione internet y presione siguiente. Ahora se presenta:

Seleccione la tarjeta a instalar, en nuestro caso Arduino Uno y presione siguiente. Ahora tenemos:

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

Al presionar Install se presenta un displays de carga de Arduino.

Despus de una espera aparecer

Presiono Finish y listo. Ya podemos usar Arduino.

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

En las libreras de Simulink debe aparecer nuevos men de bloques como por ejemplo: Arduino IO library Target for Use with Arduino Hardware

ARDUINO COMO GENERADOR DE DATOS DESDE SIMULINK Ahora solamente queda conectar la tarjeta Arduino UNO, como si fuera una tarjeta de interface o de transferencia de datos, con MATLAB, sigamos los siguientes pasos: 1. Descargue el archivo ArduinoIO.zip que est disponible en mi pgina www.javalmu.wikispaces.com en CONTROLES II. 2. Descomprima el archivo en la carpeta deseada en el equipo. Preferiblemente en carpeta Matlab, que est en Mis Documentos. De esta forma, los M-files, quedan disponibles inmediatamente, en el directorio corriente del entorno de Matlab. 3. Asumiendo que ya tiene instalado el IDE ARDUINO, abra desde este entorno, el archivo adiosrv.pde que est dentro de la carpeta adiosrv, que a su vez est dentro de la carpeta pde , una de las que se descomprimi.

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

4. Cargue en la tarjeta, este programa. Este sketch, contiene el cdigo necesario para que la tarjeta Arduino escuche los comandos ejecutados desde Matlab, ejecute instrucciones, interacte con dispositivos conectados a la tarjeta y transfiera datos desde sensores y dispositivos, hacia Matlab. 5. Una vez cargado el programa en la tarjeta Arduino, es recomendable cerrar el IDE ARDUINO, para que Matlab pueda acceder al puerto serial que se abre cuando se conecta la tarjeta. Bien, ahora realicemos una prctica en la cual deseamos enviar un escaln de 1 voltio a travs del pin 9 de la tarjeta Arduino. Montemos en Simulink los siguientes bloques:

Los bloques Arduino IO setup y Real-Time Pacer deben presentarse siempre porque son los que permiten direccionamiento con la tarjeta y el manejo en tiempo real. Note que el bloque Arduino IO debe tener el puerto al cual esta asignada la tarjeta.

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

Al escaln se le asigna una ganancia 55 para que se pueda generar 1 voltio a la salida del pin 9. Coloque un LED entre el pin 9 y tierra y ejecute el programa. Usted puede manejar el tiempo del escaln. ARDUINO COMO GENERADOR DE DATOS HACIA SIMULINK Uno de los ejemplos ms bsicos consiste en leer datos de un sensor conectado al Arduino y transmitirlos al PC mediante comunicacin serie y visualizarlo en el osciloscopio de Simulink. El objetivo ser pues leer una seal analgica de dos (extensible fcilmente a ms) sensores (en este caso potencimetros) y transmitirla a Matlab (simulink), a fin de poder trabajar con ella. En primer lugar, vamos a preparar el Arduino. Conectamos los potencimetros entre los pines de +5V y Gnd (neutro) y sus pines centrales (que por tanto presentarn un voltaje entre +5V y 0V) a las entradas analgicas A0 y A1 del Arduino, como se muestra a la derecha.

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

Por supuesto, cualquier otro sensor analgico sirve exactamente igual para este ejemplo. Veamos ahora como leemos informacin de voltaje real desde los potencimetros a travs de la tarjeta Arduino y visualizarlo en el osciloscopio de Simulink. Montemos en Simulink los siguientes bloques:

Ahora se han utilizado los bloques

Analog Read para lectura de , esta ganancia

datos analgicos y un bloque de ganancia real.

debe aparecer para convertir la salida en Simulink a como si fuera

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

EJERCICIO No. 1 Diseemos un circuito con 5 LEDs, conectados a las salidas de 9 a 13 y con 4 modos de operacin manejados entre Arduino y Simulink tal que: Modo 1: Todos los LEDs apagados Modo 2: Todos los LEDs encendidos Modo 3: LEDs parpadenado a la misma frecuencia variada por un potencimetro. Modo 4: LEDs parpadeando uno tras otro con velocidad variable por un potencimetro. El usuario puede seleccionar el modo mediante un interruptor.

Selector de modo Variador de frecuencia

Protoboard

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

EJERCICIO No. 2 Usando las funciones de transferencia de las plantas de orden uno y de orden dos tenga conectadas un en serie, de disee 0.1 y un lo control alcance por en realimentacin de estados con su observador de manera que la respuesta sobrepaso aproximadamente 3s. Monte en Simulink el circuito y muestre que los parmetros se cumplen. Un ejemplo del circuito es:

EJERCICIO No. 3 Usando la las plantas reales de orden uno y de orden dos conectadas en serie, aplique un escaln desde Simulink y visualice la seales de respuesta en el osciloscopio de simulink.

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

EJERCICIO No. 4 Usando la planta real y el observador de estados, controle la planta real desde Simulink. En el osciloscopio debe verse el set-point y la respuesta. Puede Random Number la seal de entrada. Un ejemplo al usar Arduino con Simulink para observar la seal de entrada y la respuesta de una planta real con realimentacin es el siguiente utilizar como set-point un bloque llamado para ver si efectivamente la respuesta sigue a

Planta real conectada a Arduino Observe que se ha utilizado un nuevo bloque llamado de

saturacin. Uno de los principales efectos indeseables de la saturacin en la actuacin es que cualquier integrador de un sistema controlado (suponiendo hay alguno, como sucede con controladores de la familia PID) continuar integrando an mientras la entrada se encuentra saturada.

UNIVERSIDAD SANTIAGO DE CALI FACULTAD INGENIERIAS PROGRAMA DE INGENIERIA ELECTRONICA CONTROLES II Profesor: MSc. JAVIER A. MURILLO M.

As, el estado del integrador en cuestin puede alcanzar valores excesivos, que deteriorarn la respuesta transitoria del sistema, generalmente produciendo grandes sobrevalores. Este efecto se denomina integrator wind-up (enrolle o

embale del integrador) y se regula usando el saturador,

que se encuentra en Discontinuities de Simulink.

Вам также может понравиться