Está en la página 1de 11

Tecnura

ISSN: 0123-921X
tecnura@udistrital.edu.co
Universidad Distrital Francisco Jos de Caldas
Colombia

MARTNEZ SANTA, FERNANDO; GUERRERO CIFUENTES, CINDY ESTEFANY; PREZ RAMREZ,


JOS DAVID
Diseo de un sistema pndulo invertido, sobre plataforma LEGO Mindstorms NXT, controlado
mediante MATLAB
Tecnura, vol. 16, octubre, 2012, pp. 76-85
Universidad Distrital Francisco Jos de Caldas
Bogot, Colombia

Disponible en: http://www.redalyc.org/articulo.oa?id=257025147007

Cmo citar el artculo


Nmero completo
Ms informacin del artculo
Pgina de la revista en redalyc.org

Sistema de Informacin Cientfica


Red de Revistas Cientficas de Amrica Latina, el Caribe, Espaa y Portugal
Proyecto acadmico sin fines de lucro, desarrollado bajo la iniciativa de acceso abierto

Diseo de un sistema pndulo invertido, sobre


plataforma LEGO Mindstorms NXT, controlado
mediante MATLAB
Design of an inverted pendulum system on LEGO MINDSTORMS NXT
platform, controlled by MATLAB
FERNANDO MARTNEZ SANTA
Ingeniero en Control Electrnico e Instrumentacin, Magister en Ingeniera Electrnica y
de computadores. Docente de la Universidad Distrital Francisco Jos de Caldas, Bogot,
Colombia. Contacto: fmartinezs@udistrital.edu.co
CINDY ESTEFANY GUERRERO CIFUENTES
Ingeniera Elctrica. Ingeniera de diseo elctrico de Schneider Electric S.A. Bogot,
Colombia. Contacto: cindy510g@gmail.com
JOS DAVID PREZ RAMREZ
Ingeniero Elctrico. Inspector de calidad de mantenimiento a redes de energa, en
JMSedinko. Bogot, Colombia. Contacto: jdperez2682@gmail.com
Fecha de recepcin: 24 Agosto de 2012

Clasificacin del artculo: Investigacin

Fecha de aceptacin: 1 de Octubre de 2012

Grupo de Investigacin: Control Electrnico

Palabras clave: $OJRULWPRVJHQpWLFRVHVSDFLRHVWDGRVLGHQWLFDFLyQORFDOL]DFLyQGHSRORVSpQdulo invertido


Key words: JHQHWLFDOJRULWKPVLGHQWLFDWLRQLQYHUWHGSHQGXOXPSROHORFDWLRQVSDFHVWDWHV

RESUMEN
Este artculo muestra el diseo de un sistema pndulo invertido, sobre la plataforma LEGO MINDSTORMS NXT, as como el diseo y la implementacin del controlador correspondiente. Como punto
de partida se realiza la medicin de parmetros fsicos necesarios para el modelamiento del sistema
en espacio de estados. Adicionalmente, el modelo
HVLGHQWLFDGRSRUPHGLRGHDOJRULWPRVJHQpWLFRV
empleando Matlab, donde la adquisicin de datos
de los sensores y el servomotor se realizan con el
toolbox RWTH - Mindstorms NXT. Luego se disea un controlador usando el mtodo de ubicacin
de polos, para ser posteriormente implementado en
Simulink, entorno desde el cual se ejecuta Embe-

76

dded Coder Robot NXT toolbox, encargado de la


conversin, compilacin y transferencia al bloque
NXT del controlador. Como resultado se tiene el
diseo de una planta fsica con un kit armable y el
diseo e implementacin de un controlador viable
para dicha planta.

ABSTRACT
This paper shows the inverted pendulum system
design using the LEGO MINDSTORMS NXT platform, as well as the design and implementation of
the corresponding controller. As a starting point,
the needed physical parameters measurement for
modeling the system on state space is made. In adGLWLRQWKHPRGHOLVLGHQWLHGWKURXJKJHQHWLFDO-

Tecnura | Vol. 16 | Edicin Especial | pp 76 - 85 | Octubre 2012

investigacin
gorithms using Matlab, when the data acquisition
from sensors and servo-motor is done through the
RWTH - Mindstorms NXT Toolbox. The next step
is the controller design, using the pole placement
method, to be subsequently implemented in Simulink, from which the Embedded Coder Robot NXT
is executed; this toolbox is responsible of the conversion, compilation and transfer of the controller

to the NXT block. The result is a physical plant


design using a buildable kit, and the design and implementation of a feasible controller for this plant.
the task of the rescue team. This paper presents the
LPSOHPHQWDWLRQ RI WKH .DOPDQ OWHU WR HVWLPDWH
position and to correct errors in the location of a
robot.

***
1. INTRODUCCIN
El pndulo invertido es uno de los sistemas inestables ms usado en la teora del control. En la educacin y en la industria tiene diversidad de aplicaciones y formas de estudio [1]. Las implemenWDFLRQHVGLHUHQHQODIRUPDGHFRQVWUXFFLyQ\HO
tipo de controlador planteado para su desempeo.
Teniendo en cuenta que, segn sea el diseo mecnico, puede ser vulnerable a agentes como friccin y banda muerta, lo cual lo hace un modelo no
FRQDEOH>@$GHPiVVXVDSOLFDFLRQHVQRVyORVH
basan en la construccin de prototipos, sino tamELpQHQODFUHDFLyQGHVLPXODFLRQHVJUiFDV\VXV
correspondientes anlisis [3]. La mayora de trabajos realizados con anterioridad utilizan diversas
piezas mecnicas tomadas de sistemas tales como
impresoras o piezas creadas a la medida.
La principal caracterstica de este trabajo es la utilizacin del kit de robtica LEGO MINDSTORMS NXT como base para el diseo y construccin de la planta fsica, creando una nueva estructura para el sistema carro-pndulo. Adems, hallar
el modelo matemtico del sistema por medio de
algoritmos genticos, ampliando de esta manera
HOWHPDGHLQYHVWLJDFLyQSDUDODLGHQWLFDFLyQGH
sistemas dinmicos, mediante algoritmos de inteOLJHQFLDDUWLFLDO

El kit educativo utilizado es de referencia 9797,


FRQWLHQHFKDVVHQVRUHVVHUYRPRWRUHV\

el bloque inteligente NXT [4]. Adicional a esto,


XQDFDMDGHUHIHUHQFLDODFXDOFRQWLHQH
FKDV GH GLIHUHQWHV IRUPDV >@ (O EORTXH 1;7
cuenta con dos procesadores, el primero es un miFURSURFHVDGRU$50GHELWVPHPRULDDVKGH
N%%LWVGHPHPRULD5$0\HOVHJXQGR
HV XQ PLFUR FRQWURODGRU$95 GH  ELWV FRQ PHPRULDDVKGHN%%LWVGHPHPRULD5$0
Adems, el bloque cuenta con enlace bluetooth, un
SXHUWR86%GH0ELWVVFXDWURSXHUWRVGHHQWUDda, para los sensores, y 3 puertos de salida para
los servomotores [6]. Adems, ste es compatible
con lenguajes de programacin tales como: JAVA,
&& /$%9,(: 1;7* 1;& 0DWODE \ 6Lmulink. Estos ltimos programas utilizados para el
desarrollo de este trabajo dado su facilidad de uso
y anlisis de resultados.
La construccin de la planta se realiza con un total
GH  FKDV XQ VHQVRU GH iQJXOR XQ VHUYRPRtor y el bloque NXT. El sistema pndulo invertido
sobre plataforma NXT, se compone de diferentes
etapas. La principal es el ensamble donde se tienen
en cuenta los parmetros fsicos y mecnicos para
el diseo. De igual manera se emplean tcnicas de
LGHQWLFDFLyQ \D VHD XVDQGR DOJRULWPRV HVWiQGDU
RDOJRULWPRVGHLQWHOLJHQFLDDUWLFLDOFRQHOQGH
obtener el modelo matemtico de la planta. Luego
se realiza la simulacin del controlador, as como
la transferencia de este al bloque NXT. Con el sistema en funcionamiento se ejecuta el anlisis de
resultados y de esta manera se concluye acerca del
comportamiento de la planta.

diseo de un sistema pndulo invertido, sobre plataforma lego mindstorms nxt, controlado mediante matlab
FERNANDO MARTNEZ SANTA | CINDY ESTEFANY GUERRERO CIFUENTES | JOS DAVID PREZ RAMREZ

77

investigacin
2. METODOLOGA
2.1 Ensamble de la planta
En esta seccin se hace referencia al ensamble sobre la plataforma LEGO, en el cual se tienen en
cuenta los parmetros que constituyen un sistema
pndulo invertido. Como primer paso se realizan
pruebas para encontrar la ubicacin adecuada del
servomotor y las ruedas del carro, adems de proporcionar equilibrio en el peso del mismo carro y
en el pndulo. Como criterio principal de diseo,
el sistema pndulo invertido debe permitir la adquisicin de cuatro seales como son: posicin y
velocidad del carro, as como posicin y velocidad
del pndulo. Inicialmente se instala en el extremo
superior del pndulo, un giroscopio HiTechnic
NXT, empleado como sensor de velocidad angular,
PHGLFLyQSURSRUFLRQDGDHQ>V@'HPDQHUDSUiFtica se puede usar este sensor para la obtencin de
posicin del pndulo, sin embargo es una medicin
indirecta, calculada por medio de una integral discreta. Al desconocer la constante de adicin para
el resultado, este mtodo genera un error el cual se
vuelve acumulativo y hace que la medicin no sea
FRQDEOH3RUORDQWHULRUVHXVDHOVHQVRUGHiQJXOR
HiTechnic NXT, este mide rotacin de un eje de
JUDGRV FRQJUDGRGHSUHFLVLyQ3DUDHO
ensamble de la planta el sensor se ubica en la base
del pndulo midiendo as la posicin de este en una
WUD\HFWRULDGHJUDGRV 6HGHWHUPLQDGHjar slo este sensor de ngulo y obtener su derivada, lo cual representa tambin la velocidad angular
GHO SpQGXOR (Q OD JXUD  VH SXHGH REVHUYDU OD
comparacin del valor medido por el giroscopio y
el valor resultante de derivar la posicin angular
.
De acuerdo a la comparacin con la seal obtenida
del giroscopio, la medicin indirecta de velocidad
angular tiene un error promedio del 9,6% en su amSOLWXG/DIRUPDJHQHUDOGHODJUiFDGHFRPSRUWDmiento es muy similar a la obtenida con el giroscoSLRSRVWHULRUPHQWHVHGHQHXVDU~QLFDPHQWHHVWD
medicin indirecta como la velocidad angular del

78

Tecnura | Vol. 16 | Edicin Especial | Octubre 2012

Figura 1. Medicin de velocidad angular. Ante un impulso


como valor de consigna, se realiza la comparacin del valor medido por el giroscopio y el valor
calculado mediante la derivada de la posicin,
medida por el sensor de ngulo.
Fuente: Elaboracin propia.

sistema, dado que el cambio entre el uso de esta o


ODVHxDOGLUHFWDHVPtQLPDHQFXDQWRDODLGHQWLFDcin del sistema.
3RU RWUR ODGR HO VHUYRPRWRU /HJR HV XELFDGR HQ
el centro del chasis del carro, permitindole a este
igual fuerza para el desplazamiento hacia adelante
y hacia atrs en las dos ruedas laterales y, de esta
manera, las ruedas de los extremos continan con
el movimiento producido por el motor. Este servomotor tiene internamente un encoder, sensor de

Figura 2. Modelo ensamblado. Sistema pndulo invertido,


sobre la plataforma LEGO MINDSTORMS NXT,
digitalizado en LEGO digital designer

investigacin
posicin, con resolucin de un grado y de 170 rpm
para la velocidad de rotacin del eje [7]. Aprovechando la estructura del servo motor se pueden
adquirir las dos mediciones faltantes, sin embargo,
una medicin se hace indirecta. La posicin del carro , es proporcionada directamente del servomotor, en cambio la velocidad del carro  , se obtiene derivando su posicin. Al conseguir el diseo
QDO GH OD SODQWD HVWD SHUPLWH TXH ORV VHQVRUHV
enven informacin de la ubicacin del carro y el
pndulo al bloque NXT, y ste consecuentemente
por comunicacin USB enva los datos a Matlab.
(QODJXUDVHHQFXHQWUDHOPRGHORQDOHQVDPblado para el sistema pndulo invertido.
2.2 Modelado del sistema
Un sistema pndulo invertido se considera como
XQVLVWHPDLQHVWDEOH\VHKDFHQHFHVDULRLGHQWLFDU
FDGDXQRGHORVIDFWRUHVTXHLQX\HQHQVXFRPportamiento y de qu manera lo hacen. Cada una
GHHVWDVYDULDEOHVLQX\HHQHOPRGHORGHODSODQWDVHJ~QVHDVXSODQWHDPLHQWR(QODJXUD6H
observan las variables fsicas que intervienen en el
sistema pndulo invertido de este artculo. En el
modelamiento matemtico se desarrolla el diagra-

ma de cuerpo libre e implementacin de las leyes


de Newton para obtener el modelo como funcin
GHWUDQVIHUHQFLD\HQHVSDFLRGHHVWDGRV>@
/DLQWHUDFFLyQFRQHOVLVWHPDSHUPLWHLGHQWLFDUHO
nmero de entradas, salidas y estados. Estas variables deben ser expresadas de forma vectorial, donde un sistema de orden n, es separado en n ecuaciones de estado, por lo que siempre va a ser un
sistema de orden uno [9]. El modelo en espacio de
estados de este artculo, cuenta con cuatro salidas
PHGLEOHVTXHVRQiQJXORGHOSpQGXOR YHORFLGDGDQJXODU  SRVLFLyQGHOFDUUR \YHORFLGDG
GHO FDUUR   'H PDQHUD JHQHUDO XQ VLVWHPD SRU
espacio de estados puede representarse por medio
de la ecuacin de estado en el dominio del tiempo,
FRPRVHREVHUYDHQODHFXDFLyQ  


dx t
dt

Ax t  Bu t

Donde
[ W =Vector de estados
X W = Kx, preserva la linealidad y da origen al sistema en lazo cerrado.
'HLJXDOPDQHUDHQODHFXDFLyQ  \ W es la salida del sistema.

y t C x  du t

'HODVHFXDFLRQHV  \  VHSXHGHGHFLUTXHQR


importa el sistema que se modele, ni la complejidad que este pueda tener, puesto que por estar en
espacio de estados el sistema va a ser de orden uno.
A continuacin se muestra el modelo calculado en
espacio de estados.
Matriz de estados, A

Figura 3. Diagrama del pndulo invertido. Contiene cada


uno de los parmetros del sistema; a partir de
este se realiza el anlisis de fuerzas para obtener el sistema de ecuaciones de la dinmica de
la planta y realizar el modelamiento en espacio
de estados.
Fuente: Elaboracin propia

1
0
0
0
   

0
0
0
1

   

diseo de un sistema pndulo invertido, sobre plataforma lego mindstorms nxt, controlado mediante matlab
FERNANDO MARTNEZ SANTA | CINDY ESTEFANY GUERRERO CIFUENTES | JOS DAVID PREZ RAMREZ

79

investigacin
Vector de entrada, B

controlados y programados desde Matlab. En este


artculo la adquisicin de datos se realiza mediante
FRQH[LyQ86%/XHJRGHUHDOL]DUODFRQJXUDFLyQ
de la comunicacin con Matlab, es enviada una
seal de pulso de duracin determinada al bloque
1;7 YHUJXUD WHQLHQGRHQFXHQWDODDOLPHQWDcin del motor en un rango de 1 a 100% de potenFLD/DSRWHQFLDVHOHFFLRQDGDHVFRPRYDORU
neutro para ser multiplicado por la seal de consigna y de esta manera generar movimiento en el
carro, y consecuentemente un cambio de posicin
GHOVHQVRUGHiQJXOR3DUDODWRPDGHPXHVWUDVHO
pndulo es ubicado geomtricamente a 90 grados
SHURSDUDHOVLVWHPDHVWDSRVLFLyQHVXQiQJXOR
cero.

0
1.1661


Matriz de resultados, C

1
0

0 0 0
1 0 0
0 1 0

0 0 1
0
0

0

0

Vector d

'RQGHGHVFULEHODLQXHQFLDGLUHFWDVREUHODVDOLGD
[10], se elige igual a cero para que no tenga transicin sobre el sistema.
El modelo calculado como funcin de transferencia, es un sistema de orden 3, como se muestra en
ODHFXDFLyQ  

H s

  s 
s    s    s   


2.3 Identificacin del modelo


3DUD OD LGHQWLFDFLyQ GHO PRGHOR VH WRPD FRPR
base el modelo calculado en espacio de estados. Es
necesario obtener el comportamiento real del sistema pndulo invertido ante una perturbacin y capturarlo en el computador. En este proceso se utiliza
el RWTH - Mindstorms NXT, toolbox que cuenta
con protocolos de comunicacin bluetooth y USB
con los robots LEGO MINDSTORMS NXT, ms
exactamente con el bloque NXT, permitiendo ser

80

Tecnura | Vol. 16 | Edicin Especial | Octubre 2012

Ahora, para la generacin de los datos se declara la


apertura del sensor de ngulo, la potencia de entrada para el motor y la funcin para la generacin de
la seal de consigna. Luego se realiza un ciclo donde se calcula la cantidad de datos segn el intervalo
de tiempo asignado. En el momento de arranque
del carro, el pndulo cae generando una variacin
en la posicin del mismo pndulo, capturada dentro del ciclo por el sensor de ngulo. En la adquisicin de datos se calcula el tiempo de muestreo
GHOVLVWHPDYDORULPSRUWDQWHSDUDODLGHQWLFDFLyQ
e implementacin del controlador. El tiempo calFXODGRSDUDODDGTXLVLFLyQHVGH>V@9DORU
propio del toolbox y la comunicacin USB, que a
VXYH]GHSHQGHGHOSURFHVDGRUGHO3&HQHOTXHVH
est realizando la toma de datos.
/DLGHQWLFDFLyQGHOPRGHORVHUHDOL]DSRUPHGLR
de algoritmos genticos, mtodo adaptativo basado
en el proceso evolutivo de los organismos vivos,
para la solucin de problemas de la vida real [11].
La herramienta de Matlab utilizada para la identiFDFLyQGHOVLVWHPDVHGHQRPLQDgatool. Los algoritmos genticos optimizan una funcin objetivo
RIXQFLyQGHWQHVVODFXDOUHSUHVHQWDHOSUREOHPD
que se quiere minimizar o solucionar. En este caso
OD IXQFLyQ GH WQHVV WLHQH HQ FXHQWD HO JUDGR GH
VLPLOLWXG HQWUH ODV VHxDOHV UHDOHV DGTXLULGDV SRU
PHGLRGHOVHUYRPRWRU\ORVVHQVRUHV \FDGDXQD
de las iteraciones generadas por el algoritmo, es

investigacin
100

3RVLFLRQ$QJXODU>@

decir, que dicha funcin simula el comportamiento


de un sistema dinmico con parmetros aleatorios
entregados por el algoritmo gentico, y lo compara con el comportamiento real del sistema, donde
entre ms similitud sea encontrada, menor ser el
YDORUGHVDOLGDGHODIXQFLyQGHWQHVVWDQWRTXHDO
minimizar esta funcin, se escoger un sistema lo
VXFLHQWHPHQWHFHUFDQRHQFRPSRUWDPLHQWRDOVLVWHPDUHDO\DVtKDFHUXQSURFHVRGHLGHQWLFDFLyQ





Consigna
Valor real
Valor estimado

-100

En el modelo calculado se presentaron 6 variables,


estas se encuentran en las matrices y, del modelo
en espacio de estados, y corresponden a la posicin
de los valores no nulos del sistema modelado, esto
FRQHOQGHFRQVHUYDUODHVWUXFWXUDEiVLFDGHOPRdelo por espacio de estados original.
Matriz de estados, AA

0 1 0
 v v 

0 0 0

0 v3 v 4

Vector de entrada, BB

0

1

0.3

0.4



0.6

0.7



Tiempo [s]

Figura 4. Seal de salida del sensor de ngulo. Se busca


que el valor estimado, tenga el mismo comportamiento al valor real del sensor. Esto se realiza por
medio de la herramienta de algoritmos genticos
de Matlab, con la cual se logr una respuesta de
la funcin de fitness de 6,05 de error, para este
caso.
Fuente: Elaboracin propia.

Poblacin
Tipo de poblacin
Tamao de poblacin
Rango inicial
Mutacin
Funcin de mutacin
Escala
Criterios de parada
Generaciones de estancamiento

0
v

0

v 6

e  e  e  e

4



0.1

Tabla 1. Parmetros para estimacin del modelo por AG.

Doble vector

[0;1]
Gaussiana

100

Fuente: Elaboracin propia.

/DIXQFLyQGHWQHVVVHGHQHFRPRHOSURPHGLR
de los errores medios cuadrticos entre las cuatro
salidas de los sistemas reales y los obtenidos por el
DOJRULWPRFRPRVHPXHVWUDHQODHFXDFLyQ  

/RVYDORUHV\FRQJXUDFLyQGHSDUiPHWURVSDUDOD
estimacin del modelo se encuentran en la tabla 1

/XHJRGHLWHUDFLRQHVHOVLVWHPDREWHQLGRWLHQHXQYDORUGHWQHVVGHYDORUTXHSDUDHVWH
caso representa el error entre la seal medida y la
seal estimada por medio de algoritmos genticos,
FRPRVHREVHUYDHQODJXUD/XHJRGHOUHVXOWDGR
REWHQLGRHQODLGHQWLFDFLyQGHOVLVWHPDHQHVSDFLR
estados, este se transforma a funcin de transferenFLDODFXDOUHSUHVHQWDHOPRGHORQDO\VHSXHGH
REVHUYDUHQODHFXDFLyQ  

H s

 s  


s  s   s  


 

diseo de un sistema pndulo invertido, sobre plataforma lego mindstorms nxt, controlado mediante matlab
FERNANDO MARTNEZ SANTA | CINDY ESTEFANY GUERRERO CIFUENTES | JOS DAVID PREZ RAMREZ

81

investigacin
2.4 Controlador
En esta seccin se presenta el diseo del controlador, para la sintonizacin de ste, se usa sisotool de
Matlab, en el cual se observa la ubicacin de los
polos del sistema, adems de su respuesta. Esta herramienta permite la adicin de polos y ceros, tanto
FRPR VHDQ QHFHVDULRV 3DUD OD HVWDELOL]DFLyQ GHO
sistema, consecuentemente es calculado el controlador. En la sintonizacin, el primero de los mejores resultados es un controlador con dos ceros. Sin
embargo, a pesar de ser un sistema con un tiempo
GHHVWDELOL]DFLyQGH>V@\XQDRVFLODFLyQGH
>FLFORVV@ DO PRPHQWR GH GLVFUHWL]DU HO FRQWURODdor, la seal de control se vuelve inestable. El segundo controlador sintonizado, presenta un polo y
dos ceros, con un tiempo de estabilizacin de 1 [s]
\XQDRVFLODFLyQGH>FLFORVV@VHFRQVLGHUDXQ
controlador rpido, pero de igual manera al discreWL]DUORVHDIHFWDODHIHFWLYLGDG3RU~OWLPRHOFRQtrolador seleccionado, cuenta con dos polos y dos
FHURVPRVWUDGRHQODHFXDFLyQ  

H s

 s     s  


s    s  

Figura 5. Diagrama de bloques del controlador. Se realiza


en Simulink para la simulacin del controlador
sintonizado.
Fuente: Elaboracin propia

El controlador cuenta con un tiempo de estabili]DFLyQGH>V@\XQDRVFLODFLyQGH>FLFORVV@


DGHPiVGHXQVREUHSLFRGH(VWH~OWLPRVH
considera apropiado para el sistema pndulo invertido. En el proceso de diseo del controlador es im-

82

Tecnura | Vol. 16 | Edicin Especial | Octubre 2012

portante realizar la simulacin previa del sistema


HQHOGLDJUDPDGHEORTXHVGHODJXUDWHQLHQGR
HQFXHQWDFDGDXQDGHODVFRQJXUDFLRQHVHQODLQterfaz de diseo y la recepcin de datos del sensor
y el servomotor.
El controlador se discretiza, ya que ECRobot, trabaja en tiempo discreto. El mtodo de discretizacin implementado en Matlab es el mtodo tustin
o trapezoidal, el cual aproxima numricamente las
integrales, es decir, hace la sumatoria de reas bajo
ODFXUYDVXPDQGRWUDSHFLRV>@
Los datos adquiridos del sensor de ngulo son enWHURVGHELWV\HOVHUYRPRWRUUHFLEHYDORUHVHQWHURVGHELWV3RUHVWDUD]yQVHGHEHQFRQVLGHUDU
en la simulacin esta clase de conversiones: la de
tipos de dato. En el diagrama de bloques en Simulink se adiciona una saturacin antes del bloque de
FRQYHUVLyQ,QWSDUDHQYLDUODVHxDODOVHUYRPRWRU
Este ltimo punto es crtico debido a la seal de
control. Cualquier prdida de datos puede ocasionar fallas al controlar el sistema.
Otro aspecto importante a tener en cuenta es la
banda muerta del sistema, este fenmeno se preVHQWDSRUODLQHUFLDTXHGHEHURPSHUHOPRWRU DFWXDGRU KDVWDDOFDQ]DUHOPRYLPLHQWRHIHFWLYRGHO
carro. Dicha inercia se debe a la masa del carro y
a la relacin de trasformacin existente por los enJUDQDMHV(VWDEDQGDPXHUWDVHGHQHHQWUH
y 13% del valor de la potencia del motor, la cual
no es tenida en cuenta en el modelamiento ni en la
LGHQWLFDFLyQGHOSUREOHPD
Al determinar el controlador adecuado para la
planta, basado en la respuesta del sistema, se procede a realizar el diagrama de bloques del controlador en el entorno de ECRobot, donde el diagrama
realizado en Simulink, es convertido a un archivo
de extensin *.rxe por medio del compilador GNU
ARM GCC, archivo compatible con el bloque
1;7 3DUD HVWR HV QHFHVDULR LQVWDODU XQD YHUVLyQ
PRGLFDGD GHO UPZDUH RULJLQDO SUHYLDPHQWH HQ
el bloque para poder ejecutar el sistema operativo
NXTOsek, necesario para la realizacin del diagrama de bloques de Simulink.

investigacin
3. RESULTADOS
Como principal resultado se obtiene un sistema
SpQGXORLQYHUWLGRWDOFRPRVHPRVWUyHQODJXUD
FRQXQSHVRGHJUDPRVFHQWtPHWURVGH
altura, 36 centmetros de largo, 16 centmetros de
ancho y un pndulo de 34 centmetros.
El comportamiento del sistema mejora cuando el
tiempo de muestreo es menor, se realiz la idenWLFDFLyQHQGRVHTXLSRVHOSULPHURFRQVWDGHXQ
SURFHVDGRU ,QWHO &RUH 'XR ( YHORFLGDG GHO
procesador de 3 G.Hz y memoria RAM de 3 GB,
con el cual se obtiene un tiempo de muestreo de
>V@(OVHJXQGRWLHQHXQSURFHVDGRUGH,QWHO
&RUHL\XQD5$0GH*+]\PHPRULD
5$0GH*%FRQHOTXHVHREWLHQHXQWLHPSRGHPXHVWUHRGH>V@SHUPLWLHQGRDGTXLULU
ms muestras del comportamiento y dando al sistema y al controlador mejores resultados.
Inicialmente al obtener el modelo calculado en espacio de estados se disea un controlador por realimentacin de estados o control LQR, donde se halla el vector, el cual contiene las cuatro constantes
de realimentacin, para cada una de las salidas del
VLVWHPDFRPRVHSXHGHYHUHQODHFXDFLRQHV  
En la simulacin el sistema se estabiliza. Este comSRUWDPLHQWRVHSXHGHREVHUYDUHQODJXUD6LQ
embargo, al transferirse al bloque NXT, la planta

Figura 6. Respuesta del sistema, ante un controlador por


realimentacin de estados en tiempo contino.
Fuente: Elaboracin propia.

Figura 7. Respuesta de la posicin angular, controlada por


un sistema de orden dos, hallado por medio de
ubicacin de polos, ante un impulso en tiempo
contino.
Fuente: Elaboracin propia

se hace inestable y no hay respuesta al controlador.


Esto puede ocurrir por diferentes aspectos que inX\HQHQHOVLVWHPDFRPRHUURUHVHQODPHGLFLyQ
de los parmetros fsicos del sistema, poca exactitud del modelo utilizado, el mtodo de discretizacin, la medicin indirecta de seal de velocidad y
ODEDQGDPXHUWD3RUHVWDVUD]RQHVHOFRQWURODGRU
obtenido puede no ser el apropiado, dado que el
sistema con el que fue calculado puede diferir sigQLFDWLYDPHQWHGHOUHDO
K

>       ]

Figura 8. Respuesta de la posicin angular ante un impulso,


luego de la discretizacin del controlador y simulado en Simulink.
Fuente: Elaboracin propia.

diseo de un sistema pndulo invertido, sobre plataforma lego mindstorms nxt, controlado mediante matlab
FERNANDO MARTNEZ SANTA | CINDY ESTEFANY GUERRERO CIFUENTES | JOS DAVID PREZ RAMREZ

83

investigacin
El controlador diseado para el manejo de la posicin angular, sintonizado por ubicacin de polos,
cuenta con la respuesta en tiempo continuo ante
un impulso, ste comportamiento se presenta en la
JXUD  (VWH PLVPR FRQWURODGRU HV GLVFUHWL]DGR
para analizar su comportamiento antes de transferirlo al bloque NXT. La respuesta del sistema ante
HOFRQWURODGRUVHPXHVWUDHQODJXUDGRQGHVH
aplica un impulso en el entorno discretizado, adems de estar simulados todos los componentes del
sistema, como los tipos de datos y la saturacin.

lenguaje C podra mejorar el tiempo de ejecucin y


as el comportamiento del sistema.

Al discretizar el controlador sintonizado se cambia


GHPDQHUDVLJQLFDWLYDVXIRUPD(QODVLPXODFLyQ
sus seales de control se hacen grandes, de valores
HQWUH\6LWHQHPRVHQFXHQWDTXHHOVHUYRPRWRUHVXQDFWXDGRUGHELWV\TXHSDUDVXIXQFLRQDPLHQWRVHDQWHSRQHXQDVDWXUDFLyQGHD
ORVYDORUHVVXSHULRUHVDpVWHVHUiQDSUR[LPDdos a los lmites del saturador. Entonces, los valores de las seales de control quedan recortados,
por lo tanto el controlador no actuaria de manera
adecuada sobre el sistema.

6HSXHGHPHMRUDUVLJQLFDWLYDPHQWHHOWLHPSRGH
UHVSXHVWD GHO VLVWHPD PRGLFDQGR OD SODQWD GLVHada bsicamente de dos formas: cambiando la
estructura de tipo carro a tipo riel, donde la masa
de la parte mvil sea nicamente la del pndulo, o
haciendo que la accin de control se realice directamente sobre el eje de giro del pndulo. Este ltiPRLPSOLFDFDPELDUXQSRFRHOPRGHOR VHJZD\ 

4. CONCLUSIONES
El principal error a la hora de implementar el controlador sobre el bloque NXT se encuentra en la
saturacin que se debe anteponer al actuadorya
TXH HVWH HV GH WLSR ,QW \ ORV YDORUHV REWHQLGRV
son aproximadamente el doble. Razn por la cual
el controlador no logra emitir seales de control
al actuador, obteniendo un sistema con una seal
FRQWDQWHGHORTXHKDFHLPSRVLEOHSDUDHOPRdelo adquirido cambiar por medio del controlador
dichos valores mximos.
El cdigo generado por GNU GCC se hace extenso
al pasar del entorno Simulink al lenguaje de programacin del bloque. Esto tambin hace que tome
mayor tiempo para su ejecucin, debido bsicamente a la doble compilacin generada, de SimuOLQND&\GHHVWHDOHQJXDMHPiTXLQD3RUORWDQWR
la implementacin del controlador directamente en

84

Tecnura | Vol. 16 | Edicin Especial | Octubre 2012

Si el sistema fuera establecera posible mejorar la


LGHQWLFDFLyQ\SRUWDQWRORVUHVXOWDGRVGHODIXQFLyQGHWQHVVRHQVXGHIHFWRODIRUPDGHDGTXLVLcin de los datos para un sistema ms factible.
Se comprueba que la utilizacin de un algoritmo
JHQpWLFR FRPR PpWRGR GH LGHQWLFDFLyQ SXHGH
LGHQWLFDUVLVWHPDVGLQiPLFRVLQHVWDEOHVRFRQVHales de entrada y de salida desequilibradas.

Se puede proponer un compensador para la banda muerta del sistema para hacer ms efectivo el
comportamiento. Este compensador podra ser utilizado antes o despus del clculo del controlador.
El clculo de controladores basados en sistemas
GLQiPLFRVLGHQWLFDGRVHVPiVHIHFWLYRTXHHOUHDlizado con sistemas modelados, porque trabajan
directamente sobre datos reales del sistema.
5. TRABAJO FUTURO
Dada la complejidad del sistema pndulo invertido es posible, en trabajos futuros, utilizar control
adaptativo y control ptimo, as como diversas
tcnicas bio-inspiradas por medio de inteligencia
computacional como: Algoritmos genticos, Redes
Neuronales, entre otros.
3DUD WUDEDMRV IXWXURV VH SURSRQH FUHDU XQD PHWRGRORJtD FRPSOHWD SDUD OD LGHQWLFDFLyQ GH VLVWHmas dinmicos utilizando algoritmos genticos y,
a partir de estos, analizar los resultados obtenidos,

investigacin
abriendo as, la posibilidad de plantear otros proyectos enfocados a la investigacin en este tema.
Es posible seguir utilizando el embedded coder
GLUHFWDPHQWHVLQHOXVRGH(&5RERW GH0DWODE
SDUDJHQHUDUFyGLJR&&SDUDRWURVGLVSRVLWLYRV
WDOHV FRPR 6LVWHPDV HPEHELGRV '63V \ PLFURcontroladores. De esta forma no se restringira la
investigacin al uso del kit NXT.

6. FINANCIAMIENTO
Este artculo surge del proyecto de investigacin
titulado Diseo y control de un sistema pndulo
invertido, sobre plataforma Lego MINDSTOR061;7UHDOL]DGRFRQHOQGHFRQWULEXLUDOD
formacin del laboratorio de control del proyecto
curricular Tecnologa en Electricidad e Ingeniera
(OpFWULFD(ODYDO\QDQFLDPLHQWRGHHVWHSUR\HFto fue otorgado por la Universidad Distrital Francisco Jos de Caldas, Facultad Tecnolgica.

REFERENCIAS
[1].

S. Mallo, V. Mazzone, &RQVWUXFFLyQ \


diseo de Controladores de un pndulo invertido rotante, Universidad Nacional de
4XLOPHV$UJHQWLQD

>@

F. Castaos, R. Carrera Levantamiento


y control de un pndulo invertido con un
HVTXHPDGHFRQWUROUHFRQJXUDEOH Universidad Nacional Autnoma de Mxico,
0p[LFR

[3].

[4].

>@

J. Beltran, 6LPXODFLyQGHXQSpQGXORLQvertido, Universidad politcnica de VaOHQFLD(VSDxD


LEGO Education LEGO MINDSTORMS NXT , [En lnea]. DisponiKWWSHGXFDWLRQOHJRFRPHQXV
ble:
OHJRHGXFDWLRQSURGXFWGDWDEDVHPLQGVWRUPVOHJRPLQGVWRUPVHGXFDWLRQEDVHVHW
LEGO Education LEGO MINDSTORMS NXT , [En lnea]. DisponiKWWSHGXFDWLRQOHJRFRPHQXV
ble:
OHJRHGXFDWLRQSURGXFWGDWDEDVHPLQGVWRUPVOHJRPLQGVWRUPVHGXFDWLRQUHVRXUFHVHW

[6].

M. Silva, &RQVWUXFFLyQ \ SURJUDPDFLyQ


GH XQ JUXSR GH URERWV PyYLOHV VREUH OD
EDVH GHO SURGXFWR /(*2 0,1'6725MS NXT, (VFXHOD 3ROLWpFQLFD 1DFLRQDO
(FXDGRU

[7].

/ 3LQWR * %HUP~GH] 'HWHUPLQDFLyQ

de los Parmetros para el Servomotor


NXT LEGO Mindstormspcon Tcnicas de
,GHQWLFDFLyQ GH 6LVWHPD Universidad
Distrital Francisco Jos de Caldas, ColomELD
>@

Control tutorials for Matlab, Modeling


DQ ,QYHUWHG 3HQGXOXP E\ 8QLYHUVLW\ RI
Michigan, [En lnea]. Disponible: KWWS
ZZZHQJLQXPLFKHGXJURXSFWPH[DPSOHVSHQGLQYSHQKWPO

[9].

Notas grupos, Espacio estado, [En linea]. Disponible: KWWSJHPLQLXGLVWULWDO


HGXFRFRPXQLGDGSURIHVRUHVGUDLUDQIUHFXHQFLDBB,,KWP

[10].

D. Rairn, Anlisis de sistemas dinmicos


y control PID3ULPHUDHGLFLyQ&RORPELD
Universidad Distrital Francisco Jos de
&DOGDV

[11].

N. Gil, Algoritmos genticos, Universidad Nacional de Colombia, Colombia,




>@

C. Herrera, R. Romero, Controlador diJLWDOSDUDXQDSODQWDGHOHYLWDFLyQPDJQpWLFDFRQXQJUDGRGHOLEHUWDG3RQWLFLD


8QLYHUVLGDG-DYHULDQD&RORPELD

Tecnura | Vol. 16 | Edicin Especial | pp 76 - 85 | Octubre 2012

85

También podría gustarte