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

Mecnica Computacional Vol XXIX, pgs. 2039-2060 (artculo completo) Eduardo Dvorkin, Marcela Goldschmit, Mario Storti (Eds.

) Buenos Aires, Argentina, 15-18 Noviembre 2010

APLICACIONES DIDACTICAS EN CONTROL AUTOMATICO CON LEGO MINDSTORMS NXT


Leonardo Bermeoa,b , David Herrerab y Ricardo Ramirezc,d
- Laboratorio de Controle e Automao, Programa de Engenharia Eltrica, COPPE, ca e Universidad Federal de Rio de Janeiro, Sala I-148, Cidade Universitria, Ilha de Fundo, CEP a a 21945-970, Rio de Janeiro, RJ, Brasil, lbermeoc@ufrj.br, www. gmun. unal. edu. co
b Laboratorio a LCA

de Control, Universidad Nacional de Colombia, Departamento de Ingenier a Elctrica y Electrnica, Edicio 411, Sala 202, Bogot, Colombia, lbermeoc@unal.edu.co, e o a dherreraa@unal.edu.co, http: // www. gmun. unal. edu. co

c Grupo

de Plataformas Robticas UnRobot , Universidad Nacional de Colombia,Departamento o de Ingenier Mecnica y Mecatrnica, Of. 453-401, Ciudad Universitaria, Bogot,Colombia, a a o a rramirez@ufrj.br, http: // www. unrobot. unal. edu. co/
d Laboratorio

de Robtica y Diseo de Mquinas LabRob, Programa de Ingenier Mecnica, o n a a a COPPE, Universidade Federal do Rio de Janeiro, Sala I-101, Cidade Universitria, Ilha de a Fundo, CEP 21945-970, Rio de Janeiro, RJ, Brasil, rramirez@ufrj.br, a http: // www. labrob. coppe. ufrj. br

Palabras Clave: S ntesis de controladores, Control PID, Identicacin de Sistemas, o Educacin. o Resumen.
En este trabajo se describe una propuesta didctica completa para un curso experimental en a el tema de control automtico, usando los mdulos didcticos LEGO NXT. La propuesta inclua o a ye software, un conjunto de plantas experimentales y una metodolog de trabajo. El software a presentado est desarrollado en herramientas GNU. Las plantas mecatrnicas estn basadas a o a en LEGO y tienen ventajas importantes en costo, exibilidad y repetibilidad. Algunas de las plantas presentadas son: servomecanismo, pendulo inverso, robot mvil y sistema de viga y bola. o Complementariamente, se propone una metodolog con la cual es posible alcanzar en un a mismo curso prctico la integracin de conceptos importantes como: simulacin, dinmica e a o o a identicacin de sistemas, diseo mecnico, diseo de algoritmos de control y sistemas operativos o n a n de tiempo real.

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

2040

L. BERMEO, D. HERRERA, R. RAMIREZ

1.

INTRODUCCION

Existe un destacado inters mundial en presentar propuestas y proyectos para realizar e en laboratorios de control a nivel de pregrado, teniendo en cuenta limitaciones en costo y espacio (Gawthrop y E.McGookin (2004); Bernstein (2005b,a); K.J. om (2004)). La Astr conclusin de quienes trabajan la enseanza de control es una: en el area del control autoo n mtico es indispensable la unicacin praxis-teor El notable profesor Dennis Bernstein a o a. de la Universidad de Michigan ha plasmado esta conclusin de manera contundente en la o introduccin de una edicin especial del IEEE Control Magazine dedicada a la educacin o o o en control (Bernstein (2005a)):

El control es un tema que tradicionalmente de se ensea de una manera conn ceptual general. Paradjicamente, es un area que prospera solamente cundo o a los estudiantes pueden ver aplicaciones a travs casos de estudio puntuales. e

Uno de los problemas relacionados con la enseanza experimental de control es su costo. n Los costos de los sistemas producidos por las empresas dedicadas a desarrollos didcticos a hacen dif su acceso masivo en las universidades. cil El propsito fundamental de la enseanza de control experimental es que un estudiante o n recorra los pasos metodolgicos de s o ntesis de un controlador (Bermeo y D (2007)) como az son: Paso 1 Implementacin de la planta. Se realiza la integracin de los componentes constituo o tivos (hidrulicos, mecnicos, electrnicos, etc) del sistema a ser controlado, sensores a a o y actuadores. Paso 2 Modelamiento y/o Identicacin. En este paso se obtiene un modelo lineal continuo o o discreto del proceso a controlar. Paso 3 Diseo preliminar. Con el modelo obtenido y especicaciones dadas (en el tiempo n o en la frecuencia) para el sistema de lazo cerrado, se hace un diseo preliminar del n controlador en el dominio continuo o discreto (Franklin et al. (1997)). Paso 4 Discretizacin. Si el controlador se dise en el dominio anlogo se usa genricao no a e mnte la transformacin bilineal. El objetivo unico de este paso es seleccionar cuidae o dosamente el tiempo de muestreo T , ponderando el tiempo de clculo del procesador a con la prdida de margen de fase debida al retardo indroducido por el controlador e digital. Paso 5 Implementacin digital en un lenguage de alto nivel. Normalmente se usa C y un o sistema operativo de tiempo real (RTOS) (Lurie y Enright (2000)). Paso 6 Pruebas de Hardware. En esta parte se realizan directamente las pruebas del controlador diseado para todas las condiciones de operacin previsibles del sistema. La n o pruebas realizadas determinaran un ciclo de iteraciones en la s ntesis del controlador desde el paso 2. Eventualmente, si existe mucha divergencia entre las predicciones del
Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

Mecnica Computacional Vol XXIX, pgs. 2039-2060 (2010)

2041

paso 3 y los resultados experimentales, ser necesario rehacer el modelo del sistema a desde el paso 1. El propsito fundamental de la enseanza de control experimental es que un estudiante o n recorra los pasos metodolgicos de s o ntesis de un controlador de manera agil y sin tener que abordar problemas secundarios (calibracin de sensores, diseo de acoples elctricos o o n e mecnicos, etc) que desv la atencin del problema central. La componente experimental a an o de un curso de control debe perseguir dos objetivos claros: i. Aplicar sobre un mismo sistema varias estrategias de control para establecer comparativamente l mites y ventajas de cada una. ii. Realizar controladores para sistemas de diferente dinmica y dominio f a sico. Al menos se deben incluir experimentos sobre sistemas con polos estables, resonantes, en el origen,en el semiplano derecho, retardos y/o ceros no minifase. Esta art culo propone un curso experimental, que complementa la componente terica o de los cursos de control. La propuesta incluye software, material didctico, modelos maa temticos y guias de construccin de los experimentos. Estas prcticas han sido probadas a o a por dos aos en los cursos de laboratorio de control del Departamento de Ingenier Elcn a e trica de la Universidad Nacional de Colombia. Este articulo se estructura de la manera siguiente: En la seccin 2 se presentan brevemente las herramientas de software utilizadas y la o plataforma Mindstorms. En la seccin 3 se presenta una prctica introductoria para deo a mostrar el efecto de las acciones ON-OFF y PID en el control de un servomecanismo. En la seccin 4 se describe una prctica ms avanzada para el control de un robot mvil que o a a o contiene todos los pasos de la metodolog de s a ntesis de un controlador expuesta anteriormente. Estos pasos van de la identicacin paramtrica del sistema a la implementacin o e o digital en C y el RTOS NXT-OSEK. En seccin 5 se describen dos plantas inestables con o las cuales se experimenta al nal del curso: una versin del pendulo inverso (SEGWAY) o y el clsico problema de viga y bola. Finalmente, en la seccin 6 se hacen consideraciones a o acerca de los resultados obtenidos en los cursos impartidos. 2. HERRAMIENTAS USADAS

En esta seccin se describen brevemente las herramientas utilizadas en el desarrollo de o las prcticas propuestas. A nivel de software, se puede utilizar Matlab, , si se preere a o FOSS, Python y Octave para el diseo de controladores e identicacin de sistemas. La n o programacin de del sistema embebido de LEGO o se efecta con las herramientas de u programacin NXC y NXT-OSEK. A nivel de hardware, los experimentos son construidos o unicamente con componentes de LEGO Mindstorms. 2.1. Matlab R y GNU Octave

Se usan para identicacin de sistemas y en diseo, simulacin y discretizacin de o n o o controladores.


Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

2042

L. BERMEO, D. HERRERA, R. RAMIREZ

2.2.

Python

Tiene el mismo uso que MATLAB. Parte de este trabajo es el desarrollo de una libreria en Python enlazada con el software OCTAVE para la identicacin de sistemas, diseo, o n simulacin y discretizacin de controladores. Esto para el caso de usar solamente software o o GNU, que los autores consideran muy importante en el campo educativo. 2.3. NXC

NXC (Not eXactly C) es un lenguaje de programacin estndar para los Bricks NXT. o a Es un conjunto completo de funciones que permiten acceder al hardware del Brick, y que adems ofrece una curva de aprendizaje muy rpida. Esta limitado a variables en punto a a jo. Con NXC se pueden escribir rutinas de control bsico. La diferencia fundamental con a el cdigo C estndar, radica en las funciones creadas para el manejo de los Bricks y el o a tipo de datos que soporta (solo tipo entero).

2.4.

NXT-OSEK

Es un sistema operativo de tiempo real (RTOS) para el Brick NXT basado en el estna dar OSEK de la industria automotriz. Este provee un ambiente de programacin en C, o una API para los sensores y motores NXT as como para otros dispositivos, soporte para operaciones en punto otante, y capacidad de ejecutar tareas mltiples en tiempo real. u Con nxtOSEK se pueden desarrollar ltros, controladores avanzados, y rutinas de identicacin. o 2.5. LEGO Mindstorms

Este es un conjunto de piezas, motores, sensores y actuadores, desarrollado por LEGO, para el diseo e implementacin de robots; inicialmente pensado para nios mayores de n o n doce aos. Sin embargo, la herramienta ofrece tal exibilidad en la educacin en tecnolon o g que su uso se ha extendido desde el nivel de secundaria hasta cursos de posgrado en a, ingenier a. Las principales ventajas que presenta son su bajo costo y enorme exibilidad teniendo en cuenta el nmero de experimentos que pueden obtenerse a partir de un mismo kit. u En nuestro caso ha sido usado el kit LEGO MINDSTORMS para educacin. El o kit incluye varios sensores, 3 servomotores y ms de 400 piezas. El bloque embebido a programable, que en el resto del art culo se denomina Brick, es basado en un procesador ARM de 32-bits con una capacidad de cmputo notable. Una descripcin completa del o o kit didctico se encuentra en la pgina del fabricante (LEGO (2010)). a a

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

Mecnica Computacional Vol XXIX, pgs. 2039-2060 (2010)

2043

Figura 1: kit de educacin 9797 de LEGO . Cortes del fabricante o a

3.

ACCIONES FUNDAMENTALES APLICADAS EN EL CONTROL DE UN SERVOMECANISMO

Las prcticas propuestas son una introduccin a las acciones bsicas de control, y un a o a ejercicio de profundizacin que incluye la identicacin del sistema y la aplicacin de o o o tcnicas de clculo e implementacin de controladores digitales. e a o 3.1. Servomotor: Acciones bsicas de control a

En esta prctica se busca comprender, en una primera aproximacin intuitiva, las aca o ciones bsicas de control. Es una convencin que la literatura denomine acciones bsicas a o a de control a la accin ON-OFF y las acciones proporcional (P), integral (I)) y derivativa o (D) ( om y Wittenmark (1997)). Astr El experimento inicial propone el control de posicin y velocidad angular de un sero vomotor de LEGO . Por ser el ejercicio para comenzar, no se introduce un modelo matemtico de la planta (el servomotor) porque esta primera aproximacin al problema a o del control realimentado es de carcter cualitativo. Su propsito es mostrar las acciones a o bsicas de control, el efecto de la realimentacin, el error estacionario, los ciclos l a o mite, las perturbaciones, entre muchas otras nociones fundamentales. Como parte del trabajo en laboratorio, los estudiantes construyen la planta (su construccin toma unos 10 minutos aproximadamente); adicionando un componente ldico a o u la sesin prctica. Una secuencia detallada de pasos de construccin puede ser generao a o da mediante el software CAD LEGO Digital Designer, provisto por el fabricante. Mediante el mismo software se produce la gura 2 que muestra el ensamble mecnico a necesario para el primer experimento. El servomecanismo es esttico, robusto y satisface e los requerimientos para ser la planta de este experimento.

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

2044

L. BERMEO, D. HERRERA, R. RAMIREZ

Figura 2: Servomecanismo para el primer experimento

3.1.1.

Control ON-OFF

Se trata de la estrategia ms simple de control en lazo cerrado (conocida desde los a griegos), en la que se usa toda la energ correctiva disponible para llevar la salida del a sistema al punto deseado. u(t) = umax umin si e(t) > 0 si e(t) < 0 (1)

Esta estrategia se programa fcilmente en un lenguaje de alto nivel; requiriendo un a conocimiento elemental de programacin. El cdigo del algoritmo de control ON-OFF en o o NXC se muestra en el algoritmo 1, y en NXT-OSEK en el algoritmo 2. Tales cdigos o hacen parte del material didctico entregado a los estudiantes para que, durante la sesin, a o ellos solo tengan que hacer algunas modicaciones de los parmetros; por ejemplo, el pora centaje de energia entregada al motor. Los estudiantes hacen las modicaciones, compilan y programan el Brick NXT en un proceso que tarda un par de minutos, casi como si el ejercicio fuera hecho solo a nivel de simulacin. o Un factor que merece consideracin es que los estudiantes, desde esta fase inicial, estn o a conscientes de que la realizacin de controladores no est un mundo pitagrico intangible o a o de transformadas z o de Laplace, sino que es un problema prctico de programacin que a o requiere de compiladores de alto nivel e incluso sistemas operativos en tiempo real como el NXT-OSEK. Las implementaciones mostradas en el algoritmo 1 y en el algoritmo 2 son programadas en C. Solo que en el segundo caso se un sistema operativo de tiempo real que involucra deniciones adicionales como la duracin y ejecucin de las tareas. Desde un punto de o o

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

Mecnica Computacional Vol XXIX, pgs. 2039-2060 (2010)

2045

Algorithm 1: Controlador ON-OFF en NXC. l o n g r , e , umax , umin ; t a s k main ( ) { umax=100; umin=100; r =180; while ( true ) { y = MotorRotationCount ( ) ; e = ry ; i f ( e >0){u=umax ; } i f ( e <0){u=umin ; } OnFwd(OUT A, u ) ; } } vista pedgogico es mejor iniciar con la implementacin en NXC (algoritmo 1), pero ina o troducir el uso de una herramienta avanzada como el NXT-OSEK muestra las ventajas de tener un RTOS para hacer control. Asi mismo, los estudiantes van siendo preparados en el manejo de una herramienta que necesitarn para las prcticas ms avanzadas en el a a a nal del curso. Como un ejemplo de los comportamientos dinmicos obtenidos en esta prctica, en la a a Figura 3 se muestran respuestas para diferentes valores mximo y m a nimo en la energia de la seal de control (notada umax , y umin ), y sus efectos sobre el ciclo l n mite y el tiempo de respuesta del sistema. Aqui es importante resaltar que, por medio del software desarrollado, el alumno puede obtener directamente una grca como la mostrada; sin a embargo, lo ms importante en esta etapa es la percepcin directa de los fenmenos a o o involucrados. 3.1.2. Control PID

La estructura de Control PID es predominante en las aplicaciones industriales. Ms del a 90 % de las aplicaciones de control de procesos en la industria estn basadas en el PID a om y Hagglund (2006)). Esta realidad impone que los futuros ingenieros que tengan (Astr que tratar con procesos controlados tengan conceptos muy elaborados de los efectos producidos por cada una de las acciones de control en un PID. El hecho de poder percibir y prever a un nivel intuitivo los efectos de cada accin, permite que se inicie adecuadamente o el desarrollo de estos importante conceptos. El control PID implementado en el laboratorio es de la forma no interactuante (llamada a veces de textbook ( om y Hagglund (2006)): Astr

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

2046

L. BERMEO, D. HERRERA, R. RAMIREZ

Algorithm 2: Controlador ON-OFF en NXC. #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e kernel . h kernel id . h ecrobot interface . h math . h

D e c l a r e C o u n t e r ( SysTimerCnt ) ; DeclareTask ( Task1 ) ; void user 1ms isr type2 ( void ) { StatusType e r c d ; e r c d = S i g n a l C o u n t e r ( SysTimerCnt ) ; i f ( e r c d != E OK) { ShutdownOS ( e r c d ) ; } } i n t y=0; i n t r e f =180; dou ble e , u , umin , umax ; umin=100; umax=100; TASK( Task1 ) { y = n x t m o t o r g e t c o u n t (NXT PORT A ) ; e = ( double ) r e f ( double ) y ; i f ( e >0){u=umax ; } i f ( e <0){u=umin ; } n x t m o t o r s e t s p e e d (NXT PORT A, ( i n t ) u , 0 ) ; TerminateTask ( ) ; }

u = kp e + ki
0

e dt + kd

d e dt

(2)

Esta no es la implementacin usual en un controlador industrial que debe incluir muo chos otros detalles, pero es la ms adecuada para entender los efectos individuales de cada a accin. o Las acciones integral y derivativa son aproximadas usando diferencias nitas:

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

Mecnica Computacional Vol XXIX, pgs. 2039-2060 (2010)

2047

Figura 3: Respuesta del servomecanismo con control ON-OFF

uk = kd t ek ek1 d uk = ki t e + uk1 i i

(3) (4)

Al momento de realizar esta prctica, no es necesario que los estudiantes tengan conocia mientos en control digital. Los conocimientos necesarios para entender estas implementaciones ya han sido desarrollados plenamente en los cursos de clculo diferencial e integral a de cualquier programa de ingenier En el primer caso (ecuacin 3), por la aproximacin a. o o de la derivada por la recta secante; y en el segundo (ecuacin 4), mediante el clculo de o a integrales por mtodos numricos, usando la suma de Riemman. La accin integral est e e o a representada por la acumulacin de la variable ui que representa la seal de control. La o n accin derivativa ud por la diferencia del error entre dos instantes de tiempo que pueden o considerarse cercanos en la aproximacin de la derivada. Este es un buen momento y o lugar para ver la accin, importancia y potencia de esos conocimientos del clculo eleo a mental, en el mundo real. La implementacin del control PID en NXC se muestra en el algoritmo 3, y en NXTo OSEK en el algoritmo 4. Estos programas son entregados a los estudiantes como parte del material de la gu Ntese que sintonizar unas nuevas constantes del PID es solo cambiar a. o los nmeros en las primeras l u neas de cdigo. o En la experimentacin del servomecanismo controlado por un PID se explora el efecto o conjunto y separado de cada una de las acciones de control . En la metodolog propuesta, a los estudiantes modican cada una de las constantes, verican la dinmica y en la misma a aula de laboratorio se discuten los resultados obtenidos. Debe comentarse que reprogramar el Brick NXT para lograr un controlador PID con nuevas constantes tarda menos de 30 segundos. Esto permite que en la misma sesin se o proponga sintonizar el PID para obtener diferentes comportamientos dinmicos. Dada la a
Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

2048

L. BERMEO, D. HERRERA, R. RAMIREZ

Algorithm 3: Controlador PID en NXC. l o n g kp , ki , kd , up , ui , Ts ; l o n g ud , u ia n t , e , eant , r , y ; sub i n i c i a l i z a r ( ) { S e t S e n s o r ( S1 ,SENSOR TYPE ROTATION ) ; C l e a r S e n s o r ( S1 ) ; r = 180; Ts = 2 0 ; kp = 2 ; ki = 1; kd = 1 ; } sub c o n t r o l ( ) { y = MotorRotationCount (OUT A ) ; e = ry ; up = kp e ; u i = u i a n t + k i Ts e ; ud = kd ( eeant ) / Ts ; u = up + u i + ud ; i f ( u > 100) {u = 1 0 0 ; } i f ( u < 100) {u = 100;} OnFwd(OUT A, u ) ; eant = e ; uiant = ui ; } t a s k main ( ) { inicializar (); while ( true ) { control (); Wait ( Ts ) ; } } facilidad de programacin y reprogramacin del Brick, esto se hace con el mismo nivel o o de dicultad de un simulador, pero con la diferencia cognitiva profunda de percibir el fenmeno real. o Las guras 4, 5, y 6 muestran las respuestas del motor usando controladores P, PI, y

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

Mecnica Computacional Vol XXIX, pgs. 2039-2060 (2010)

2049

Algorithm 4: Controlador PID en nxtOSEK. #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e kernel . h kernel id . h ecrobot interface . h math . h

D e c l a r e C o u n t e r ( SysTimerCnt ) ; DeclareTask ( Task1 ) ; void user 1ms isr type2 ( void ) { StatusType e r c d ; e r c d = S i g n a l C o u n t e r ( SysTimerCnt ) ; i f ( e r c d != E OK) { ShutdownOS ( e r c d ) ; } } i n t y=0; i n t r e f =180; dou ble e , up , ui , ud , u , u i a n t =0; kp=2; k i = 0 . 5 ; kd = 0 . 1 ; TASK( Task1 ) { y = n x t m o t o r g e t c o u n t (NXT PORT A ) ; e = ( double ) r e f ( double ) y ; up = kp e ; u i = u i a n t+k i Ts e ; ud = kd ( e eant ) / Ts ; u = up + u i + ud ; i f ( u>100){u=100;} i f ( u<100){u=100;} eant = e uiant = ui ; n x t m o t o r s e t s p e e d (NXT PORT A, ( i n t ) u , 0 ) ; TerminateTask ( ) ; } PID, respectivamente. En la misma sesin de sesin de laboratorio puede verse el efecto o o sobre el servomecanismo de aplicar una accin de control integral (error de estado estao cionario cero, incremento del sobrepico), y una accin de control derivativa (reducir las o oscilaciones, mejorar el tiempo de respuesta). Tambin se pide a los estudiantes reproducir e comportamientos no deseables; como por ejemplo, aumentar la ganancia integral y pro-

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

2050

L. BERMEO, D. HERRERA, R. RAMIREZ

porcional hasta llevar el sistema a la estabilidad marginal o la inestabilidad. El objetivo es caracterizar experimentalmente tanto los comportamientos deseables, como aquellos que deben evitarse. Algunos numerales extractados de la gu de acompaamiento de este experimento son: a n Ajustar un control proporcional para una referencia de 180 . Aumentar kp hasta llevar el error de posicin al 5 %. o Ajustar un controlador PI para una referencia de 720 , de manera que la respuesta en lazo cerrado sea suave (sin oscilaciones). Ajustar un controlador PID para una referencia de 180, de manera que la respuesta en lazo cerrado sea rpida y con muy poca oscilacin. a o Vericar y explicar el comportamiento si la realimentacin fuera de signo contrario, o es decir cuando e = r + y

Figura 4: Respuesta del servomecanismo para diferentes valores de kp

3.2.

Control de Velocidad

Ahora se busca controlar la velocidad angular del servomotor. Esto podr hacerse con a el mismo ensamble mecnico anterior; sin embargo, para visualizar los efectos de los cona troladores en una aplicacin algo ms entretenida, se construye el pequeo robot mostrado o a n en la Figura 7. Nuevamente la elaboracin del robot agrega una componente ldica a la o u realizacin del experimento. o El robot incluye un sensor de ultrasonido para detectar obstaculos. Las variables de salida son la velocidad lineal estimada del robot, y la posicin medida con respecto a una o pared ja que se detecta con el sensor de ultrasonido.

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

Mecnica Computacional Vol XXIX, pgs. 2039-2060 (2010)

2051

Figura 5: Respuesta del sistema con control PI

Figura 6: Respuesta del sistema con control PID

La velocidad se estima a partir de las medidas de posicin angular: o k = k k1 t (5)

Al hacer la aproximacin de la ecuacin 5, se producen errores numricos t o o e picos en la estimacin numrica de derivadas. Por esta razn se espera una ligera oscilacin en o e o o la respuesta de estado estable. Los autores consideran de gran utilidad la baja calidad de la medicin de la velocidad por aproximacin de la derivada para ilustrar uno de los o o principios fundamentales de la teor de la realimentacin, conocido desde Black: a o El desempeo de un sistema de lazo cerrado esta condicionado y limitado por n la calidad del sensor.

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

2052

L. BERMEO, D. HERRERA, R. RAMIREZ

Figura 7: Pequeo robot para control de Velocidad n

La Figura 8 muestra la respuesta del sistema con un controlador PI para velocidad. La oscilacin sobre el estado estable es una consecuencia de la calidad de la estimacin de la o o velocidad a partir de la derivada de la ecuacin 5. o

Figura 8: Veh culo con control de Velocidad (PI)

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

Mecnica Computacional Vol XXIX, pgs. 2039-2060 (2010)

2053

4.

EXPERIMENTOS MAS AVANZADOS

Para desarrollar controladores ms avanzados que un PID, es necesario obtener un buen a modelo de la planta. El mtodo ARX de identicacin de sistemas puede ser usado. Los e o fundamentos para usar esta herramienta son los conceptos de control digital y la aproximacin de minimos cuadrados de un sistema de ecuaciones lineales sobredeterminado. o Con estos conceptos se puede abordar la identicacin de sistemas para obtener un moo delo discreto de buena calidad G(z). La entrada u(t) de la planta es el porcentaje de voltaje aplicado (u(t) [0, 100]) y la salida y(t) es la velocidad del robot, estimada a travs de la posicin detectada por el e o sensor de ultrasonido. Es parte de este trabajo la programacin de rutinas que entregan o una seal binaria pseudoaleatoria o una onda chirp al robot, detectan la salida y envian n los datos a un computador via USB o bluetooth, para su posterior procesamiento. 4.1. Identicacin de Sistemas o

En este experimento se usa una seal binaria seudo-aleatoria-RBS (Ljung (1987)), que n varia entre los niveles mximo y m a nimo de PWM del motor NXT y con una frecuencia inferior a unos 5 Hz. La seal de identicacin se muestra en la gura 9. El tiempo para n o ejecutar este experimento es cerca de un minuto. La seal se almacena en un archivo de n texto en el Brick para ser enviada al servomotor, y al mismo tiempo el programa descargado crea otro archivo de texto con las lecturas de posicin del robot. En este caso, el uso o del Brick para obtener los datos de entrada-salida del servomotor, elimina la necesidad de usar tarjetas de adquisicin de datos dedicada. Los archivos de texto con los datos de o entrada-salida de la planta se transeren a un computador por USB o BLUETOOTH. Los datos se capturan y envian al PC en un archivo de texto CSV, que puede ser facilmente leido en MATLAB u OCTAVE para usar las funciones especilizadas de identicacin de sistemas. o En el laboratorio se hace uso del toolbox de identicacin de sistemas de Matlab (ident) o o del System Identication Toolbox de Octave. Este software permite obtener diferentes tipos de modelos a partir de los datos de entrada y salida del sistema. Elegimos un modelo sencillo y que se ajuste a la forma de la funcin de transferencia o t pica de un sistema mecnico sin componente elstica. La funcin de transferencia en a a o posicin es o G(s) = 4.2. 0,18536 s(1 + 0,062695 s) (6)

Implementacin del Controlador o

Se disea un controlador basado en el modelo de la ecuacin 6 para cumplir caracter n o sticas de sobrepico y tiempo de establecimiento. Las especicaciones de diseo toleran un n sobrepico y tiempo de establecimientos grandes (para poder observarlos en el veh culo). El controlador obtenido es

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

2054

L. BERMEO, D. HERRERA, R. RAMIREZ

Figura 9: Parte inferior: onda RBS usada para identicacin. Parte superior salida y(t) del sistema o

C(s) =

1,1224(s + 0,4294)(s + 7,117) s(s + 2,591)

Seguidamente se discretiza el controlador y se lleva a su representacin en variables de o estado para convertirlo en un algoritmo en C. El sistema discreto obtenido es 1,1224(z 0,9914)(z 0,8609) (z 1)(z 0,9495)

C(z) =

La representacin en variables de estado discreta para el controlador C(z) est dada o a por

x1 [k + 1] = x1 [k] + 1,4 e[k] x2 [k + 1] = 0,9495 x2 [k] 0,2874 e[k] u[k + 1] = 0,001891 x1 [k] 0,2874 x2 [k] + 1,122 e[k] Para evitar errores de cuanticacin de coecientes es mejor que la realizacin digital o o del controlador sea hecha en punto otante. Para ello se usa el sistema operativo de tiempo real NXT-OSEK que incluye tipos de datos oat de 32 bits. El cdigo es muy sencillo y es o equivalente para cualquier controlador implementado con esta herramienta (Algoritmo 5). El estudiante puede modicar facilmente las lineas que denen el controlador y el tiempo de muestreo para probar muchos otros controladores. Esto toma apenas unos minutos, no implica un conocimiento profundo de programacin y deja claros los problemas y las o herramientas necesarias que se deben tener en cuenta al enfrentar un problema de control. En la gura 10 se aprecia la comparacin entre la respuesta del sistema, comparada con o la repuesta simulada. El sistema responde razonablemente de acuerdo con lo proyectado. Es destacable la rpidez y facilidad de implementacin digital. Por otra parte, se coma o prueba experimentalmente la validez del modelo de G(s) en la expresin 6, obtenido en o
Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

Mecnica Computacional Vol XXIX, pgs. 2039-2060 (2010)

2055

Algorithm 5: Control PID en NXT-OSEK. #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e kernel . h kernel id . h ecrobot interface . h math . h

D e c l a r e C o u n t e r ( SysTimerCnt ) ; DeclareTask ( Task1 ) ; void user 1ms isr type2 ( void ) { StatusType e r c d ; e r c d = S i g n a l C o u n t e r ( SysTimerCnt ) ; i f ( e r c d != E OK) { ShutdownOS ( e r c d ) ; } } i n t y=0; i n t r e f =180; dou ble e , x1 , x2 , x1ant , x2ant , u ; TASK( Task1 ) { \\ C o n t r o l l e r code y=n x t m o t o r g e t c o u n t (NXT PORT A ) ; e=( double ) r e f ( double ) y ; x1=x1ant + 1 . 4 e ; x2 =0.9495 x2ant 0 . 2 8 7 4 e ; u =0.0019 x1ant 0 . 2 8 7 4 x2ant + 1 . 1 2 2 e ; n x t m o t o r s e t s p e e d (NXT PORT A, ( i n t ) u , 0 ) ; x1ant = x1 ; x2ant = x2 ; TerminateTask ( ) ; }

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

2056

L. BERMEO, D. HERRERA, R. RAMIREZ

el procedimiento de identicacin. Segn el punto de vista de los autores de este art o u culo, es vital para los estudiantes que inician su camino en la teor de control, el hecho de a obtener concordancia entre teor a-prctica y simulacin-realidad. Esto crea conanza en a o los mtodos de la teor de control automtico. e a a

Figura 10: Respuesta con Controlador PID

En el material didactico que acompaa estos experimentos se pide disear redes de n n adelanto, de atraso, controladores algebraicos y de realimentacin de estado. El ciclo o completo de identicacin, diseo y realizacin de controladores se puede cumplir ecieno n o temente usando el Brick de LEGO con con las herramientas NXC y NXT-OSEK y los programas para control e identicacin desarrollados en esta propuesta. o Finalmente, se muestran 2 experimentos que pueden ser usados para cursos de control avanzados y cursos de posgrado. Estos son implementados en NXT-OSEK debido a su capacidad de trabajar en punto otante. Estos ejercicios buscan el desarrollo de las habilidades en el anlisis y modelado de sistemas, estabilizacin de sistemas con polos en el a o semiplano derecho, diseo e implementacin de controladores digitales y ltrado digital. n o 4.3. Ball & Beam

La gura 11 muestra una planta avanzada: la bola y la viga, donde se busca controlar la posicin de la bola a lo largo de la viga. En este ejercicio se desarrolla una rutina o de identicacin de la planta y diferentes tipos de controladores. La implementacin del o o controlador en NXT-OSEK se muestra en el algoritmo 6. 4.4. Segway

Otra planta interesante es el segway mostrado en la gura 12. La implementacin se o muestra en el algoritmo 7. El diseo mecnico de esta planta y software mucho ms n a a avanzado que el presentado en este art culo, ha sido hecho por Takashi Chikamasa 1 .
1

http://lejos-osek.sourceforge.net/

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

Mecnica Computacional Vol XXIX, pgs. 2039-2060 (2010)

2057

Algorithm 6: Control del Ball & Beam en NXT-OSEK. #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e kernel . h kernel id . h ecrobot interface . h math . h

D e c l a r e C o u n t e r ( SysTimerCnt ) ; DeclareTask ( Task1 ) ; void user 1ms isr type2 ( void ) { StatusType e r c d ; e r c d = S i g n a l C o u n t e r ( SysTimerCnt ) ; i f ( e r c d != E OK) { ShutdownOS ( e r c d ) ; } } i n t y=0; i n t r e f =25; dou ble e , x1 , u ; TASK( Task1 ) { y = e c r o b o t g e t s o n a r s e n s o r (NXT PORT S1 ) ; e=ry ; x1 =0.8007 x1 +1.561 e u=1.561x1 +14.52 e n x t m o t o r s e t s p e e d (NXT PORT A, ( i n t ) u , 0 ) ; TerminateTask ( ) ; }

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

2058

L. BERMEO, D. HERRERA, R. RAMIREZ

Figura 11: Ball & Beam con LEGO

En la pgina del autor se incluyen diseos realmente impresionantes como una bicicleta a n autoestable.

Figura 12: Segway con LEGO

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

Mecnica Computacional Vol XXIX, pgs. 2039-2060 (2010)

2059

Algorithm 7: Control del Ball & Beam en NXT-OSEK. #i n c l u d e #i n c l u d e #i n c l u d e #i n c l u d e kernel . h kernel id . h ecrobot interface . h math . h

D e c l a r e C o u n t e r ( SysTimerCnt ) ; DeclareTask ( Task1 ) ; void user 1ms isr type2 ( void ) { StatusType e r c d ; e r c d = S i g n a l C o u n t e r ( SysTimerCnt ) ; i f ( e r c d != E OK) { ShutdownOS ( e r c d ) ; } } i n t y=0; i n t r e f =25; dou ble e , x1 , u , l i n e a r p o s , a n g v e l o c i t y , a ng l e , s c a l e ;

TASK( Task1 ) { s c a l e =0.85 y1 = e c r o b o t g e t s o n a r s e n s o r (NXT PORT S1 ) ; y2= e c r o b o t g e t g y r o s e n s o r (U8 p o r t i d ) ; l i n e a r p o s = n x t m o t o r g e t c o u n t (NXT PORT A ) ; linear vel = estimate vel ( linear pos ); a n g v e l o c i t y = p a s s b a n d f i l t e r ( y2 ) ; a n g l e=e s t i m a t e a n g l e ( a n g v e l o c i t y ) ; u =(0.8344 l i n e a r p o s 38.1749 l i n e a r v e l 3.55 a ng le 1.09 a n g v e l o c i t y ) s i f ( u>100){u=100;} i f ( u<100){u=100;} n x t m o t o r s e t s p e e d (NXT PORT A, ( i n t ) u , 0 ) ; n x t m o t o r s e t s p e e d (NXT PORT B, ( i n t ) u , 0 ) ; TerminateTask ( ) ; }

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

2060

L. BERMEO, D. HERRERA, R. RAMIREZ

5.

CONCLUSIONES Y TRABAJO FUTURO

Se reporta satisfactoriamente, una alternativa de bajo costo para la experimentacin o en problemas de control automtico. Mediante el uso de esta herramienta, un estudiante a de un curso de experimental de control puede hacer todos los pasos de un ciclo de diseno: construccin de la planta, modelamiento e identicacin, diseo e implementacin de o o n o controladores y pruebas de hardware. Se ha diseado una serie de plantas para trabajar en un curso experimental de conn trol, cuyos planos y guias de construccin estn disponibles (consultar a los autores). Las o a plantas diseadas pueden ser realizadas con una caja estndar del set educativo de LEGO n a Mindstorms. El uso de LEGO Mindstorms ha mostrado ser una alternativa viable por costo y calidad para hacer cursos de control experimental. Las prcticas mencionadas son realizadas actualmente en los cursos de control para a pregrado de la Universidad Nacional de Colombia. La constante realimentacin de ino formacin y un continuo esfuerzo en el mejoramiento de estas prcticas han generado un o a incremento signicativo en el inters por parte de los estudiantes hacia la teor de control e a y una mejor comprensin de los conceptos claves en el estudio de sistemas dinmicos. o a La propuesta aqui presentada es un proyecto permanentemente activo cuyos objetivos son aumento en la cobertura, calidad y nmero de experimentos por semestre realizados u en el curso de laboratorio de control.

REFERENCIAS Bermeo L. y D H. Sideco: una propuesta para la enseanza de control experimental. az n Memorias del VII congreso de la Asociacin Colombiana de Automtica, 2007. o a Bernstein D.S. Innovations in undergraduate control education. Control Magazine, 25/1, 2005a. Bernstein D.S. The quanser d.c. motor control trainer. Control Magazine, 25/1:9093, 2005b. Franklin G., Powell J., y Workman M. Digital Control of Dynamic Systems. Adisson Wesley, Sand Hill Road, U.S., third edicin, 1997. o Gawthrop P. y E.McGookin. A lego-based control experiment. Control Magazine, 24/5:43 56, 2004. K.J. om J.A. A laptop servo for control education. Control Magazine, 24/5:7073, Astr 2004. LEGO. Lego R mindstorms R education base set. Website, 2010. http://www1.lego.com/ education/search/default.asp?l2id=0_1&page=7_1&productid=9797. Ljung L. System Identication Theory For User. Prentice Hall, 1987. Lurie B. y Enright P. Classical Feedback Control with Matlab. Marcel Dekker, New York, 2000. om K. y Hagglund T. Advanced Pid Control. ISA - Instrumentation, Systems ans Astr Automation Society, Research Triangle Park,NC 27709, U.S., rst edicin, 2006. o om K. y Wittenmark B. Computer Controlled Systems. Prentice Hall, Upper Saddle Astr River, U.S., third edicin, 1997. o

Copyright 2010 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

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