Como Funciona La Bici 2017 UN PDF
Como Funciona La Bici 2017 UN PDF
Como Funciona La Bici 2017 UN PDF
Tesis grado presentada como requisito parcial para optar al tı́tulo de:
Magister en Automatización Industrial
Director(a):
(Ph.D., Ingeniero) John Alexander Cortés Romero
Lı́nea de Investigación:
Técnicas avanzadas de control
Grupo de Investigación:
Electrical Machines & Drives
De igual manera, agradezco al ingeniero Horacio Andrés Coral Enriquez por brindarme
sus amplios conocimientos y experiencia que posee en la teorı́a de sistemas de control
mediante el enfoque de rechazo activo de perturbaciones y en la implementación de estas
técnicas avanzadas en los sistemas embebidos. También le agradezco por su ayuda con las
herramientas MATLAB y Simulink, las cuales fueron la base para la implementación de
la estrategia de control en las simulaciones y en el sistema real.
Por último, doy las gracias al ingeniero Fernando Jesús Regino Ubarnes por su colabo-
ración en el montaje de los elementos eléctricos y electrónicos y de acoples mecánicos
desarrollados en el prototipo.
Resumen
La auto-estabilización de una bicicleta ha sido un tema que se ha abordado en diferentes
universidades del mundo y muchos trabajos lo han definido como un problema retante
en el área de control automático. Se han reportado diferentes estrategias de control para
estabilizar la bicicleta, y se han construido modelos matemáticos que permiten expresar
de la mejor manera las variaciones dinámicas y cinemáticas más relevantes que ocurren
en su recorrido. A partir de estos modelos se han planteado varias estrategias de control,
ya sean clásicas o modernas, y algunas de estas gobiernan de manera arbitraria el error
de seguimiento de la referencia con algún criterio de diseño y optimización.
En este documento se propone una técnica avanzada de control para estabilizar la inclina-
ción de una bicicleta que se desplaza libremente a una velocidad constante mı́nima. Para
plantear esta técnica se analizan previamente varios modelos matemáticos, seleccionando
aquel que se ajuste mejor a la dinámica del prototipo, para luego analizar y establecer las
perturbaciones e incertidumbres más relevantes que afectarı́an a la planta. Se sabe que la
bicicleta tiene un comportamiento inestable y no lineal en su posición vertical, que puede
ser modelado como un sistema lineal de parámetros variantes en el tiempo (LPV) que
depende de la velocidad de avance.
Al final, en el Capı́tulo 6, se dan las conclusiones del trabajo realizado y las recomenda-
ciones de posibles mejoras que deberı́an ser tenidas en cuenta para un trabajo futuro con
este prototipo.
Abstract
The auto-stabilizing of a bicycle, is an issue that has caught the interest of different
universities around the world; many works have defined it as a challenging problem in
automatic control theory. Different control strategies to stabilize a riderless bicycle have
risen, and mathematical models seeking for the best way to express its more relevant
dynamic and kinematic variations when in motion have been built. From these models,
several classical or modern control strategies have been proposed, and only some of them
govern in arbitrary way the reference tracking error, with some design and optimization
criterion.
In this document, a control advanced technique to stabilize the tilt of a moving bicy-
cle with a minimal constant forward speed is proposed. To pose this technique, several
mathematical models were previously analyzed, and the one that better matched the pro-
totype dynamics was selected to analize and define later the more relevant disturbances
and uncertainties that would affect the plant. We Reckon that the bicycle has an unsta-
ble and non-linear behavior when in its upright position that can be modeled as a LPV
(Linear-Parameter-Varying) system that depends of forward speed.
By means of the Active Disturbance Rejection Control (ADRC) and applications of this
xi
The document is divided into six chapters. Chapter 1 gives an introduction that explains
the bicycle importance as a means of transportation, the arising inventions of the long
history that improve this system and the more important scientific studies refered to its
dynamics and stability.
Chapter 2 comprises the moving bicycle dynamics, the mathematical modeling to the
selected bicycle as part of the prototype in this work and the building procedure that was
implemented using ADAMS virtual model.
Chapter 3 shows the planning of the control strategies that stabilize the bicycle under
certain initial conditions, the controllers performance analysis and its implementation in
a co-simulation between ADAMS and MATLAB. The purpose of this implementation was
to recreate the bicycle movement more aproximately to the real world physics than its
mathematical model.
Chapter 4 describes the selected actuators, sensors and control cards employed in this
application by means of their features of performance, time response, error percentage,
resolution, precision, energy, etc. Also, the localization of these components is showed and
the sensors measurement is validated.
Chapter 5 explains in detail how the controllers implementation in the real bicycle were
developed, and shows the best results obtained in the experiments.
Finally, in Chapter 6 the conclusions of this work are drawn together with the possible
improving recomendations for future uses of this prototype.
Me permito afirmar que he realizado la presente tesis de manera autónoma y con la única
ayuda de los medios permitidos y no diferentes a los mencionados en la propia tesis. Todos
los pasajes que se han tomado de manera textual o figurativa de textos publicados y no
publicados, los he reconocido en el presente trabajo. Ninguna parte del presente trabajo se
ha empleado en ningún otro tipo de tesis. Queda también en constancia que el documento
ha sido desarrollado completamente por el autor, por lo tanto sus contenidos son originales,
incluyendo las imágenes, figuras y gráficas que no presentan una referencia. Las figuras e
imágenes de otros autores que fueron utilizadas para complementar este trabajo fueron
debidamente referenciadas para indicar su fuente original.
Agradecimientos VII
Resumen XI
1 Introducción 3
1.1 Antecedentes Históricos de la Bicicleta . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Antecedentes sobre Modelamiento y Control de la Bicicleta . . . . . . . . . 8
2 Modelamiento de la Bicicleta 13
2.1 Ecuaciones del Movimiento de la Bicicleta . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Modelo Simple de Segundo Orden . . . . . . . . . . . . . . . . . . . . 14
2.1.2 Modelo de Cuarto Orden con Tres Grados de Libertad . . . . . . . . 19
2.2 Construcción de un Modelo Virtual en ADAMS . . . . . . . . . . . . . . . . 28
4 Instrumentación en la Bicicleta 67
4.1 Instrumentos Pertenecientes al Prototipo . . . . . . . . . . . . . . . . . . . . 68
4.1.1 Actuadores del Prototipo . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.1.2 Sensores en el Prototipo . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.1.3 Controladores del Prototipo . . . . . . . . . . . . . . . . . . . . . . . . 78
4.1.4 Energı́a en el Prototipo . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.2 Acondicionamiento y Validación de las Señales de los Sensores . . . . . . . 85
4.2.1 Medición de Velocidad de Avance con el Encoder . . . . . . . . . . . 87
4.2.2 Medición de Posición Angular con el Potenciómetro . . . . . . . . . 88
4.2.3 Medición de Corriente con el Sensor S22P006S05 . . . . . . . . . . . 89
4.2.4 Medición de Inclinación con el Sensor YEI 3-Space . . . . . . . . . . 90
xvi Contenido
Bibliografı́a 151
Índice de Figuras
C-1 Dinámica utilizada para modelar el motor DC del subsistema de tracción . 112
C-2 Modelo del motor DC acoplado al subsistema de tracción . . . . . . . . . . 113
C-3 Modelo del motor DC acoplado al subsistema de dirección . . . . . . . . . . 113
C-4 Perfil de voltaje aplicado al motor del susbistema de dirección . . . . . . . . 114
C-5 Corriente medida ante un perfil de voltaje aplicado al motor de dirección . 114
C-6 Relación entre la corriente y el voltaje aplicado al motor de la dirección . . 115
C-7 Experimento para determinar la constante de par de un motor DC . . . . . 115
C-8 Señal pseudo-aleatoria como referencia de posición angular . . . . . . . . . . 116
C-9 Salida del motor DC de dirección ante la referencia pseudo-aleatoria . . . . 117
C-10Salida de posición angular del motor DC y la simulada con su modelo . . . 118
El control automático es una de las ramas de estudio de la ingenierı́a, que ha dado soporte
a muchas de las innovaciones tecnológicas y cientı́ficas que hoy existen [1]. Uno de los
temas para aplicaciones de control bastante estudiado por investigadores de diferentes
universidades, es el problema de estabilidad y control de movimiento de los sistemas
mecatrónicos que facilitan las actividades del ser humano. Existen máquinas en donde se
requiere que sus movimientos propios tengan cierta precisión y velocidad para que puedan
desplazarse de manera eficaz en su entorno, es el caso de los vehı́culos aéreos tripulados
y no tripulados (aviones, helicópteros, misiles, UAVs, etc.), vehı́culos marı́timos (barcos
y submarinos) y vehı́culos terrestres (automóviles, motocicletas, bicicletas, maquinaria
pesada, etc.), en donde está localizado el problema que se desea estudiar. Existe otro tipo
de máquinas con el deber de dirigir efectivamente otro conjunto o mecanismo acoplado
a este, entre ellas están las grúas, plataformas robóticas, robots manipuladores, bandas
transportadoras, etc [2–4].
nieve” y de buscar una solución más sencilla para transportarse, sin necesidad de vehı́culos
pesados de cuatro ruedas potenciados por caballos, viento, o vapor. El 12 de Enero de
1818, von Drais recibió su primera patente en el estado de Baden por tal invención y
solución a la movilidad de las personas en ese entonces [7, 8].
Esta primera invención, encaminó a muchos personajes históricos reconocidos por sus in-
vestigaciones para que comenzaran a innovar sobre este mecanismo, buscando comodidad,
eficiencia y seguridad para su conductor. Se pueden destacar algunos diseños de impacto
al público en su historia, tales como, la primera bicicleta de pedal creada en 1840 por
el escocés Kirkpatrick Macmillan [10]. También, la creación de Pierre Michaux en 1861
llamada “Velocı́pedo”, que fue una de las más populares bicicletas de la historia con pe-
dales en la rueda frontal, cuya localización ocasionaba que las piernas del conductor se
atascaran en la rueda cuando se cruzaba a altas velocidades [11].
A partir de estos problemas, surgen diferentes modelos que mejoran los primeros diseños
originales, uno de ellos es la bicicleta fabricada por Thos Humber de Beeston Inglaterra
en 1882 (modelo “Penny Farthing”), con el objetivo de desplazarse más rápido, cubrir
mayores distancias con el mismo esfuerzo y solucionar el problema de las piernas en la
1
Fuente de la imagen: Bicycle design: An illustrated history, [9].
2
Fuente de la imagen: Early bicycles, [11].
1.1 Antecedentes Históricos de la Bicicleta 5
bicicleta de Michaux, pero tiene deficiencias de frenado por la rueda frontal, ya que tenı́a
un diámetro bastante grande en comparación con su rueda trasera.
En 1884, Ernst Sachs, un industrial alemán, presentó sus primeras patentes en radios y
rodamientos para las bicicletas, hasta que en junio de 1903 inventó el piñón libre para
393 /Users/user-F393/Desktop
bicicletas, cuyo invento revolucionó el ciclismo. Este sistema instalado en el eje de la
rueda trasera, permite que los piñones giren libremente en una dirección y se mantengan
engranados transmitiendo la potencia sólo en la dirección contraria. Antes de inventarse
este sistema, las bicicletas mantenı́an la rueda solidaria a los pedales, donde el conductor
no podı́a dejar de pedalear. Hoy en dı́a este mecanismo se usa también en otras máquinas,
como por ejemplo: helicópteros, transmisiónBicycles
de automóviles,
125 arrancadores de motores
eléctricos, etc.
Pawl
Driver for
rear wheel
Spring
Tension Torque on
freewheel
Freewheel
sprocket
Freewheel
sprocket
t
Idler Fig. Piñón
Fig. 1-4.: 4.1.10 libreThe
en laratchet
rueda trasera4 .
sprockets in a bicycle freewheel. If
icycle. Pedaling produces torque on the crank sprocket,
Luego de varios años, se presentan theinventos
relative rotation of the con dirección en la rueda trasera,
de bicicletas
gment of the chain. Thatlas
segment of chain produces inner and outer parts is in
primeras bicicletas metálicasthe con un sistema de transmisión de piñón y cadena de
correct direction, the
veys that torque to the bicycle’s rear wheel (not shown).
3 pawls transmit torque from
Fuente de la imagen: Bicycles and tricycles: A classic treatise on their design and construction, [10].
4 the outer part to the inner
Fuente de la imagen: How things work: The physics of everyday life, [5].
part. If the relative rotation
oad or grinding slowly up a steep hill, you can always direction is reversed, the
u comfortably supply your maximum power. pawls compress the springs
lem was solved by incorporating a one-way drive or and skip along the teeth on
the inside of the outer part.
. This freewheel (Fig. 4.1.10) allows the rear wheel No torque is transmitted.
ou can stop pedaling as you coast forward. A modern
6 1 Introducción
rodillo libre inventado por el suizo Hans Renold. Aunque estas bicicletas no tuvieron la
acogida esperada por el inventor, fue un valioso aporte para el diseño de sus sucesoras.
Junto a estos avances también tuvo su lugar la invención del neumático, por parte del
escocés John Boyd Dunlop en 1887. Dunlop desarrolló el primer neumático con cámara de
aire, para resolver el problema del traqueteo del triciclo que su hijo de nueve años de edad
usaba para ir a la escuela por las calles bacheadas de Belfast. Hasta entonces, la mayorı́a
de las ruedas tenı́an llantas con goma maciza, pero los neumáticos permitı́an una marcha
notablemente más suave. El 7 de diciembre de 1888 Dunlop obtuvo la patente de esta
gran idea que hoy en dı́a, es utilizada por cualquier vehı́culo o máquina que se desplace
por tierra.
Fig. 1-5.: Cadena de rodillo libre inventada y patentada por Hans Renold5 .
Muchos historiadores aseguran que el inventor real de la motocicleta fue Gottlieb Daimler,
quién aprovechó todos sus conocimientos aprendidos en el desarrollo de motores de com-
5
Fuente de la imagen: http://www.renold.com/downloads/chain-brochures-and-downloads/.
6
Fuente de la imagen: http://www.dunloptires.com/en-US/company/tire-history.
1.1 Antecedentes Históricos de la Bicicleta 7
bustión interna cuando trabajó con Nikolaus Otto, para crear con su compañero Wilhelm
Maybach el primer motor de cuatro tiempos (ciclos Otto) carburado. Luego acoplaron
este sistema a una bicicleta fabricada con piezas de hierro y madera. La primera moto-
cicleta exitosamente producida y comercializada fue la “Hildebrand and Wolfmüller” que
fue patentada en 1894 en Munich. Su motor fue uno de ciclos Otto, enfriada con agua y
de 1428-c.c. Esta máquina producı́a menos de 2 kW de potencia y su velocidad máxima
era de 10 m/s [12].
Muchos inventos y desarrollos hasta la fecha, hicieron posible las diferentes bicicletas
y motocicletas que hoy vemos y que todo el mundo conoce y utiliza. Las compañı́as
dedicadas a fabricar medios de transporte, siempre están en la vanguardia de la tecnologı́a
creando sistemas que mejoren sus vehı́culos para competir en el mercado globalizado.
Pensando siempre en como innovar, se formulan distintas preguntas, entre ellas las de
7
Fuente de la imagen: http://americanhistory.si.edu/collections/subjects/transportation.
8
Fuente de la imagen: Bicycles, Motorcycles, and Models, [12].
8 1 Introducción
comprobar mediante resultados reales, que una bicicleta con un controlador adecuada-
mente sintonizado y programado en algún sistema embebido, puede estabilizarse con sólo
maniobrar su dirección mientras se desplaza.
Un trabajo interesante por parte de Karl J. Åström, Richard E. Klein y Anders Lennar-
tsson que ha sido útil para el desarrollo de trabajos predecesores, fue el modelamiento
matemático de la dinámica de una bicicleta desde el punto de vista de control [17]. En su
publicación obtienen primeramente los modelos más sencillos, analizando sólo los efectos
fı́sicos que están presente en el movimiento traslacional y rotacional de un cuerpo rı́gido,
y con ellos, se obtienen las ecuaciones diferenciales que expresan el balance de momentos
que intervienen en el vehı́culo cuando se desplaza. A partir de este modelo, se formulan
posteriormente otros más complejos en donde relacionan la velocidad, el par aplicado al
manubrio, el ángulo de dirección y el de inclinación de la bicicleta, en una ecuación di-
ferencial matricial. Con ayuda de varias herramientas computacionales, validan mediante
simulaciones los modelos presentados y muestran bajo que rangos de velocidad el sistema
podrı́a ser estable utilizando alguna estrategia de control predefinida.
En el reporte presentado por Ko, Hiroshi y Toshiyuki, estabilizan una bicicleta real en
movimiento mediante dos controladores lineales independientes, uno controla la posición
angular de un motor acoplado en la dirección, y el otro, un brazo sujeto al marco de la
bicicleta para variar su centro de gravedad [21]. Mientras que Cerone, Andreo, Larsson
y Regruto, la estabilizan mediante un sólo actuador comandado por un controlador por
Realimentación de Variables de Estado (RVE), cuyas ganancias son variables y se ajustan
automáticamente solucionando una Desigualdad Matricial Lineal (LMI) que depende de
la velocidad de avance [22]. Algo muy parecido se encuentra publicado en la tesis de Buddy
Michini y Sean Torrez [23], pero su controlador RVE es sintonizado mediante el método
de optimización “Regulador Lineal Cuadrático (LQR)”, y además, utiliza un actuador
adicional en la rueda trasera de la bicicleta para generar la velocidad de avance.
Por otro lado, el desarrollo de este proyecto significará una gran apoyo en el estudio
de diseño mecánico, teorı́a de control, instrumentación, modelamiento e identificación de
sistemas, debido a que además de plantear una estrategia para estabilizar este sistema,
también se diseñó y construyó un prototipo didáctico, el cual, admite la implementación
y validación de diferentes estrategias de control, ya sean clásicas o modernas, y mediante
resultados reales se podrá evaluar el desempeño y robustez de cada una de ellas. También,
la información obtenida en las experimentaciones con este prototipo, ayudarán a probar
diferentes procedimientos de identificación y construir modelos matemáticos estructurados
de la dinámica de la bicicleta adaptada.
de que la bicicleta tuviera un equipo de procesamiento de datos que sea portable y de buen
rendimiento, se seleccionó la tarjeta eZdsp F28335 de Spectrum Digital, la cual, permite
ser programada en conjunto con Matlab/Simulink y Code Composer Studio, resultando
muy útil para implementar de forma embebida cualquier técnica de control.
El estudio en esta área también puede significar a futuro que personas con dificultades
sensoriales u otras discapacidades fı́sicas, puedan usar la bicicleta como medio de trans-
porte, asegurando automáticamente su estabilidad y navegación. El diseño de bicicletas
que sean mucho más fáciles de manejar puede representar un campo de trabajo muy pro-
misorio, si además se considera el uso de bicicletas con asistencia eléctrica. Klein y varios
colegas han desarrollado un programa y una metodologı́a para permitir a niños manejar la
bicicleta de una forma más sencilla [29, 30]. Este programa ha sido bastante exitoso para
enseñar a manejar a niños con discapacidades y limitaciones motrices y también a niños
que temen a la velocidad y a montar en ellas. A partir de los resultados obtenidos con las
bicicletas, podrı́an diseñarse motocicletas con control de estabilidad y maniobrabilidad a
bajas velocidades, para ayudar también a un sin número de personas que desean aprender
a manejar estos vehı́culos de dos ruedas.
2. Modelamiento de la Bicicleta
En general, hay muchos documentos en donde se describen diferentes ecuaciones del mo-
vimiento de una bicicleta. Particularmente, en esta tesis se estudiaron las presentadas en
[12, 16–18, 31] por su fácil entendimiento, y porque son tomadas de igual manera, como
14 2 Modelamiento de la Bicicleta
puntos de partida en otras investigaciones para entender como es la dinámica de una bi-
cicleta y los efectos fı́sicos que se dan cuando ella se encuentra en movimiento, con y sin
conductor. A continuación se explican los dos modelos que fueron la base para desarrollar
este trabajo.
h δ
x
b w
z y
ψ
vD mt v 2 h
J ϕ̈ − mt ghϕ = δ̇ + δ. (2-2)
w w
El término mt ghϕ es el par generado por la gravedad. Los términos que están a mano
derecha de la igualdad, son los momentos generados por la dirección. El primer término de
ese lado, es el par resultante de las fuerzas inerciales, y el segundo término, es el par que
se origina de la fuerzas centrı́fugas. Estos dos términos también podrı́an llamarse como
los momentos alrededor del eje z. La siguiente expresión, serı́a la correspondiente función
de transferencia que toma como variable de entrada la rotación en la dirección δ, y como
variable de salida el ángulo de inclinación ϕ.
⎡ mt vh ⎤⎥
v (Ds + mt vh) vD ⎢⎢ s + D ⎥⎥
⎢
Gϕδ (s) = = . (2-3)
w (Js2 − mt gh) wJ ⎢⎢ 2 mt gh ⎥⎥
⎢s − ⎥
⎣ J ⎦
Este modelo es llamado como el modelo del péndulo invertido por su similitud, y es un
sistema dinámico lineal (sólo cuando la velocidad v es constante) de segundo orden, con
dos polos reales en:
√
mt gh
p1,2 = ± . (2-4)
J
y un cero en:
mt vh
z=− . (2-5)
D
Además, la ganancia y el valor del cero de esta función de transferencia, dependen de la
velocidad de avance v. En la Tabla 2-1 están depositados los parámetros requeridos para
construir las ecuaciones que expresan la dinámica de este modelo. Estos parámetros se
tomaron a partir del modelo CAD que se muestra y explica en la Sección 2.2.
Tenedor Frontal
C1
h C2
P1 P2 P3
b
w c
Fig. 2-2.: Geometrı́a de una bicicleta común en su forma real. Para el modelo CAD de la
bicicleta, α = 1.293 rad y c = 6.183 cm.
En el movimiento de una bicicleta con una geometrı́a como se muestra en la Fig. 2-2, el
ángulo de dirección influye en el ángulo de inclinación, entonces, para pequeños ángulos en
la dirección, aparece un ángulo de inclinación en el tenedor frontal ϕf que puede calcularse
ası́:
ϕf = ϕ − δ cos α, (2-6)
y un ángulo efectivo en el tenedor frontal δf (mirar Fig. 2-3), expresado como:
δf = δ sin α, (2-7)
Definiendo Tδ como el par externo aplicado al manubrio y despreciando el peso del tenedor,
el balance estático de momentos en el tenedor frontal se convierte en:
ϕf
ς
-z γ
ϕ
δf
C2 x
C1 P3
P2
P1 ψ
Fig. 2-3.: Esquema de una bicicleta moviéndose en el espacio inercial. El sistema ortogonal
χ, γ, ς está fijo en el espacio inercial y el sistema x, y, z tiene su origen en el punto de contacto
de la rueda trasera P1 , entonces, su movimiento es relativo a χ, γ, ς.
Tenedor Frontal
K1 v
δ ϕ
K2 v Σ Marco
−1
Fig. 2-4.: Diagrama de bloques del modelo de la bicicleta de segundo orden. En el manubrio
es aplicado un par de entrada Tδ , para girar la dirección y generar como salida, los ángulos
δ y ϕ. El tenedor frontal crea una realimentación desde ϕ hacia δ, que puede estabilizar el
sistema.
Como se ilustra en la Fig. 2-4, el balance de momentos para el tenedor frontal puede ser
escrito como:
δ = K1 (v)Tδ − K2 (v)ϕ, (2-11)
donde,
w2
K1 (v) = , (2-12)
(v 2 sin α − wg cos α) bmt c sin α
y
wg
K2 (v) = . (2-13)
v 2 sin α − wg cos α
18 2 Modelamiento de la Bicicleta
El modelo de balance de momentos para el tenedor frontal, puede ser verificado cualitati-
vamente, determinando el par aplicado al tenedor cuando se conduce la bicicleta por una
ruta recta. Ladeando el cuerpo hacia la izquierda, causamos que el marco de la bicicleta
se incline hacia la derecha, lo que corresponde a un ϕ positivo. Un par positivo (en sentido
anti-horario), es necesario para mantener una trayectoria recta. Los parámetros del mode-
lo en estado estable, pueden ser determinados experimentalmente realizando mediciones
del par y la inclinación a diferentes velocidades.
El primer modelo básico definido en (2-2), cambia debido a la geometrı́a del tenedor
frontal. El ángulo de dirección δ es reemplazado por el ángulo de dirección efectivo δf . El
centro de masa del marco, es también desplazado cuando es girada la rueda de dirección,
lo cual genera un par Tϕf ,
bmt gc sin α
Tϕf = − δ. (2-14)
w
De la función de balance de momento angular para el marco de la bicicleta, se deriva la
siguiente expresión:
Maniobra
K1 (v)
GδT (s) = ,
1 + K2 (v)Gϕδ (s)
mt gh
K1 (v) (s2 − )
GδT (s) = J . (2-17)
2
K2 (v)Dv K2 (v)v 2 mt h mt gh
s + s+ −
wJ wJ J
Se puede observar que los polos de la función de transferencia Gϕδ (s), aparecen como
ceros de la función de transferencia GδT (s).
2.1 Ecuaciones del Movimiento de la Bicicleta 19
200
150
100
Real part of transfer function poles (1/s)
50
-50
-100
-150
0 1 2 3 4 5 6 7 8 9 10
Bicycle forward speed v (m/s)
Fig. 2-5.: Ubicación de la parte real de los polos de la función de transferencia GδT (s), en
función de la velocidad de avance v. Los puntos rojos, indican los polos del sistema que son
reales positivos (inestables). La lı́nea vertical que se observa en la figura delimita la zona
estable de la función de transferencia, es decir, que la dirección de la bicicleta es inestable
cuando v ≤ 1.72 m/s.
Este modelo que fue validado en [19], describe de forma clara y práctica, la dinámica
de una bicicleta que se mueve sin conductor. El conjunto de ecuaciones linealizadas que
resultan en este modelo, son adecuadas para la investigación en sistemas de control y el
desarrollo de aplicaciones como la de esta tesis. Lógicamente, para obtener ecuaciones más
sencillas que otros modelos mejor elaborados, se desprecian algunos efectos que se dan en
su movimiento, producto de su estructura, materiales en la que está constituida y acciones
fı́sicas a las que el planeta tierra la somete. En este modelo se asume lo siguiente:
20 2 Modelamiento de la Bicicleta
La estructura sólo está constituida por cuatro cuerpos rı́gidos nombrados como:
marco trasero, marco frontal (se encuentran acoplados el tenedor frontal y el ma-
nubrio), rueda trasera y rueda frontal, tal y como se muestra en la Fig. 2-7. Un
ensamble frontal, en el cual se adhieren el marco frontal y la rueda frontal, es reque-
rido para complementar el conjunto de ecuaciones del sistema. Se asume que estos
cuerpos están interconectados mediante articulaciones de revolución y se desprecia
la fricción en cada una de ellas. La influencia de las otras partes móviles como los
pedales, cadena y frenos son despreciadas.
El contacto entre las ruedas y la superficie plana y nivelada del suelo, es modelada
como rı́gida y no deslizante por restricciones holonómicas en la dirección normal y
por restricciones no holonómicas en la dirección lateral y longitudinal.
No existirán condiciones del piso extremas ni mucho menos curvas cerradas, por lo
tanto la bicicleta se desplazará sin deslizamientos longitudinales o laterales y que
las ruedas se mantendrán siempre en contacto con el suelo.
Las ruedas son rı́gidas, por lo tanto no se consideran deformaciones en ellas causadas
por la goma y el aire en los neumáticos.
O
x
y
θf
θr δ
Head Angle
O
x ϕ
Trail
z
Wheel Base
Como se observa en la Fig. 2-6, este modelo matemático posee tres grados de libertad: el
ángulo de inclinación ϕ del marco trasero, el ángulo de dirección del ensamble frontal δ,
y la rotación θr de la rueda trasera con respecto al marco trasero. El marco de referencia
global es Oxyz y está localizado en el punto de contacto de la rueda trasera con el suelo.
2.1 Ecuaciones del Movimiento de la Bicicleta 21
Fig. 2-7.: Bicicleta dividida en 4 partes rı́gidas y una división adicional necesitada en la
formulación de las ecuaciones.
Con la herramienta Physical Properties de Solid Edge ST4, se obtienen las posiciones
de los centros de masa, los momentos de inercia principales y la orientación de los ejes
principales, a partir de las mediciones anteriores de los pesos de cada componente de la
bicicleta (Fig. 2-11). Se sabe que la matriz de inercia de un cuerpo, depende de un punto
de referencia y la orientación de un marco de referencia en ese punto. Los momentos de
inercia principales son las cantidades inerciales de un cuerpo sobre su centro de masa y
con respecto a los ejes principales, los cuales, forman un marco de referencia especial en
donde los productos de inercia se hacen iguales a cero. Mediante [33], se puede transformar
una matriz de inercia, cambiando la orientación de su marco de referencia al cual estaba
expresado. En este caso, se hace la transformación de los momentos de inercia principales,
cambiando la orientación de los ejes principales al marco de referencia global Oxyz . Las
dimensiones y propiedades mecánicas requeridas para el desarrollo de las ecuaciones de este
22 2 Modelamiento de la Bicicleta
Tabla 2-2.: Dimensiones y propiedades mecánicas del modelo de la bicicleta, (ver Fig. 2-7).
Parámetro Sı́mbolo Valor
Longitud base (Wheel base) w 1.06016 m
Paso (Trail) c 0.06183078 m
Ángulo del cabezal (Head angle) α 1.2932635 rad
Gravedad g 9.8196 m/s2
Velocidad de avance v variable m/s
Rueda trasera (Rear wheel):
Radio de la rueda Rrw 0.3241075 m
Masa mrw 2.607666 kg
Momentos de inercia (Axx , Ayy , Azz ) (0.0901074, 0.1770867, 0.0901068) kg ⋅ m2
Marco trasero (Rear frame):
Posición de su centro de masa (xrf , yrf , zrf ) (0.4378763, 0.0048821, −0.6213513) m
Masa mrf 12.786867 kg
⎡ Bxx 0 Bxz ⎤ ⎡ 0.5586584 0 0.1354250 ⎤⎥
⎢ ⎥ ⎢
⎢ ⎥ ⎢ ⎥
Momentos de inercia ⎢ Byy 0 ⎥ ⎢ 0.9074761 0 ⎥ kg ⋅ m2
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢
⎣ sym. Bzz ⎥
⎦
⎢
⎣ sym. 0.3843939 ⎥⎦
Marco frontal (Front frame):
Posición de su centro de masa (xf f , yf f , zf f ) (0.9426416, 0.0005225, −0.7529863) m
Masa mf f 1.95013645 kg
⎡ Cxx 0 Cxz ⎤ ⎡ 0.1439601 0 −0.0145344 ⎤⎥
⎢ ⎥ ⎢
⎢ ⎥ ⎢ ⎥
Momentos de inercia ⎢ Cyy 0 ⎥ ⎢ 0.1260396 0 ⎥ kg ⋅ m2
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢
⎣ sym. Czz ⎥
⎦
⎢
⎣ sym. 0.0250137 ⎥⎦
Rueda frontal (Front wheel):
Radio Rf w 0.3241075 m
Masa mf w 2.051278 kg
Momentos de inercia (Dxx , Dyy , Dzz ) (0.0885602, 0.1765587, 0.0885601) kg ⋅ m2
Ensamble frontal (Front assembly):
Posición de su centro de masa (xf , yf , zf ) (1.0028374, 0.0006092, −0.5332083) m
Masa mf 4.00140806 kg
⎡ Fxx 0 Fxz ⎤ ⎡ 0.4162677 0 −0.0648606 ⎤⎥
⎢ ⎥ ⎢
⎢ ⎥ ⎢ ⎥
Momentos de inercia ⎢ Fyy 0 ⎥ ⎢ 0.5001296 0 ⎥ kg ⋅ m2
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢
⎣ sym. Fzz ⎥
⎦
⎢
⎣ sym. 0.1273578 ⎥
⎦
modelo, son presentadas en la Tabla 2-2. Para cada uno de los cinco cuerpos individuales
de la Fig. 2-7, se calculó la posición de su centro de masa desde el marco de referencia
global Oxyz , a partir de su posición de Home mostrada en la Fig. 2-8, donde la bicicleta es
simétrica sobre el plano vertical longitudinal, al igual que las ruedas definidas simétricas
sobre sus ejes. También se calcularon los momentos y productos de inercia localizados en
los centros de masa de los cuerpos individuales, pero con la misma orientación del marco
de referencia global.
En [18, 34] está todo el estudio de las ecuaciones linealizadas del movimiento de una
bicicleta con y sin conductor, las cuales fueron desarrolladas a papel y lápiz usando el
principio de D’Alembert y balances de momento angular y lineal presentes en su dinámica.
A continuación se muestra el desarrollo de estas ecuaciones en forma de algoritmo, teniendo
en cuenta que han sido linealizadas, expresándolas en términos de pequeños cambios en
los grados de libertad ϕ y δ, y tomando como condición inicial una posición recta, ϕ0 = 0
REVISION HISTORY
REV DESCRIPTION DATE APPROVED
z
NAME DATE
DRAWN
CHECKED
baqumau Error: No reference Solid Edge
Fig. 2-8.: Posición de Home de la bicicleta. Esta serı́a la posición inicial de movimiento, en
ENG APPR
MGR APPR
TITLE
la cual es simétrica con respecto al plano que forman los ejes x y z. DIMENSIONS ARE IN MILLIMETERS
ANGLES ±X.X°
2 PL ±X.XX 3 PL ±X.XXX
A2
FILE NAME: Draft7
SCALE: WEIGHT: SHEET 1 OF 1
1. Para el sistema imaginado como un sólo cuerpo rı́gido, se calcula la masa total
y la posición de su centro de masa con respecto al origen del marco global Oxyz .
También se calculan los momentos y productos de inercia más relevantes en Oxyz
con respecto al sistema de coordenadas (x, y, z). Todos estos valores que se muestran
en la Tabla 2-3, los calculó Physical Properties de Solid Edge ST4.
2. Sea λ el ángulo del eje de la dirección λ = [sin λ, 0, cos λ]T con el eje global z en el
plano vertical,
λ = (π/2) − α, (2-18)
Fλλ = mf u2 + Fxx (sin λ)2 + 2Fxz sin λ cos λ + Fzz (cos λ)2 , (2-20)
Fλx = −mf uzf + Fxx sin λ + Fxz cos λ, (2-21)
Fλz = mf uxf + Fxz sin λ + Fzz cos λ. (2-22)
24 2 Modelamiento de la Bicicleta
5. Se calcula para la ruedas trasera y frontal, el momento angular a lo largo del eje y
dividido por la velocidad de avance, y el total de la suma de estos dos.
6. Se define a continuación un término del momento estático que actúa sobre el eje de
dirección λ y aparece como momento de reacción frecuente sobre el marco trasero:
Su = mf u + f mt xt . (2-27)
7. Ahora, las ecuaciones linealizadas del movimiento son dos ecuaciones diferenciales
acopladas de segundo orden de la forma M q̈ + C q̇ + Kq = f . Estas ecuaciones pueden
ser escritas de la siguiente manera, dejando en ellas la velocidad v explı́cita.
En donde,
T T
q=[ ϕ δ ] y f = [ Tϕ Tδ ] .
M (1, 1) = Txx ,
M (1, 2) = Fλx + f Txz ,
(2-29)
M (2, 1) = M (1, 2),
M (2, 2) = Fλλ + 2f Fλz + f 2 Tzz ,
K0 (1, 1) = gmt zt ,
K0 (1, 2) = −gSu ,
(2-30)
K0 (2, 1) = K0(1, 2),
K0 (2, 2) = −gSu sin λ,
2.1 Ecuaciones del Movimiento de la Bicicleta 25
ẋ =Ax + Bu,
(2-33)
y =Cx + Du,
donde,
T T
x = [ ϕ δ ϕ̇ δ̇ ] , u = [ Tϕ Tδ ] y y = x. (2-34)
26 2 Modelamiento de la Bicicleta
⎡ 0 0 ⎤
⎢ ⎥
⎢ ⎥ (2-35)
⎢
B =⎢ 1 0 ⎥⎥ ,
⎢ M [ ], M [ ] ⎥
−1 −1
⎢
⎣ 0 1 ⎥⎦
C = I y D = 0.
20
15
10
Imaginary part of the eigenvalues of matrix A(v) (rad/s)
-5
-10
-15
-20
-20 -15 -10 -5 0 5
Real part of the eigenvalues of matrix A(v) (1/s)
Fig. 2-9.: Trayectoria de los valores propios del modelo de la bicicleta sin control, para un
rango de velocidad de avance de 0 a 10 m/s. Los cı́rculos rojos corresponden a los valores
propios del sistema cuando v = 0 m/s.
0
Real part of the eigenvalues of matrix A(v) (1/s)
-5
-10
-15
-20
0 1 2 3 4 5 6 7 8 9 10
Bicycle forward speed v (m/s)
Fig. 2-10.: Parte real de los valores propios de la matriz A, en función de la velocidad de
avance v. Los puntos rojos, indican los valores propios del sistema que son reales positivos
(inestables).
la Fig. 2-10 se muestra la parte real de los valores propios en función de la velocidad v.
Para valores de velocidad entre 3.5 m/s y 4.25 m/s, hay un equilibrio donde la bicicleta se
hace estable sin acción de control, ya que la parte real de todos los valores propios están
dentro del semiplano izquierdo. Es poco probable que la bicicleta real se auto-estabilice
sin ninguna estrategia de control bajo este rango de velocidad, puesto que este análisis fue
realizado de un conjunto de ecuaciones linealizadas desarrolladas mediante suposiciones,
las cuales generan incertidumbre en el modelo.
Una caracterı́stica importante que mencionan en [12] sobre este modelo, son las dos zonas
inestables que el posee. Una está antes de que la bicicleta desarrolle la velocidad vw = 3.5
m/s; y la otra se encuentra después, cuando ella sobrepasa la velocidad vc = 4.25 m/s. La
zona en la cual su velocidad está por debajo de vw , serı́a la más difı́cil de estabilizar, aquı́
la acción de control debe ser fuerte y rápida para contrarrestar las oscilaciones laterales
de la bicicleta originadas por la baja velocidad de avance. En la otra zona, en donde
la velocidad estarı́a por encima de vc , la estabilización podrı́a lograrse con acciones de
control tenues, suaves y lentas en comparación con la zona anterior. Esta información es
importante para el diseño de sistemas de control que sean capaces de estabilizar la bicicleta
con una mı́nima velocidad de avance, porque asegurará la efectividad de la estrategia de
control para velocidades más elevadas.
Existen varios métodos para hallar de forma experimental los momentos de inercia y
la posición del centro de masa de un objeto [36]; uno de ellos, es el método mediante
suspensión del objeto a través de un péndulo trifilar; y otro, es el método mediante sus-
pensión del objeto a través de un péndulo torsional, hecho a partir de una barra vertical
esbelta fijada en la parte superior, ambos se muestran en la Fig. 2-12. Un tercer método
no-experimental serı́a construir el modelo de forma virtual, aprovechando las herramien-
tas CAD (Computer-Aided Design) y MBD (Multibody Dynamics Software). Este último
método, fue el utilizado en esta tesis para encontrar una aproximación de los parámetros
anteriormente nombrados.
Para iniciar el modelado virtual, el prototipo de bicicleta robot constituido por una bici-
cleta básica adaptada con sensores, actuadores, tarjetas electrónicas y baterı́as, se desarmó
Item Quantity Mass (Item) Comments
1 1 2.051 kg Front Wheel
2 1 1.950 kg Handlebar + Front Fork
3 1 2.058 kg Rear Wheel
4 1 4.850 kg Rear Frame
32
1
5 1 0.550 kg Cog Set
33
1 6 2 0.356 kg Crank Arm
34 7 2 0.129 kg Medium Chainring
1
8 2 0.141 kg Large Chainring
2
1 17 9 2 0.074 kg Small Chainring
31 4 1
27 10 1 0.470 kg DC Motor Base
30 1 1 1
1 28 14 11 4 0.079 kg Clamps
26 1 1
1 12 1 1.202 kg DC Motor
11
4 15 13* 1 0.109 kg Pinon on DC Motor
2
25 14 1 0.313 kg Servomotor Base
16
1
2 15 2 0.040 kg Adjusters
19
1 DETAIL A 16 2 0.056 kg U-Bolt
17 1 0.057 kg Pulley
B 22 25
A 23 1 1 18* 1 0.029 kg Rear V-Brake (Left Side)
1
24 19 1 0.031 kg Rear V-Brake (Right Side)
1
20 1 0.013 kg Backing Piece
21
2.2 Construcción de un Modelo Virtual en ADAMS
Fig. 2-11.: Modelo CAD del prototipo de la bicicleta robot desarrollado en Solid Edge ST4.
29
30 2 Modelamiento de la Bicicleta
Fixed platform
φ L
Object under
study Object under
study
Rotation R θ
Rotating
platform θ
(a) Péndulo trifilar. (b) Péndulo torsional.
Fig. 2-12.: Métodos experimentales para determinar los momentos de inercia y la posición
del centro de masa de un cuerpo rı́gido. (a) Método mediante suspensión en péndulo trifilar.
(b) Método mediante suspensión en péndulo torsional.
completamente y cada una de sus piezas fue pesada y dibujada detalladamente en Solid
Edge ST4 como se muestra en la Fig. 2-11, realizando las mediciones de sus geometrı́as
con un calibrador digital. Este software tiene una herramienta llamada Physical Properties
que calcula a partir de la masa de las piezas que conforman al ensamble, la localización
de los centros de masa, centros de volumen, momentos de inercia principales, orientación
de los ejes principales y matrices de inercia con respecto a algún sistema de coordenadas
predefinido.
Disturbance_2
Actuator_2
Disturbance_1 Friction_5 Coupler_3
Friction_7
Friction_6
yx
z
Actuator_1
Friction_4
Coupler_2
Friction_2
Coupler_1 Friction_3
Friction_1
gravity
Fig. 2-13.: Modelo dinámico del prototipo de la bicicleta robot desarrollado en MSC ADAMS.
Luego, el modelo CAD es importado desde uno de los entornos del software MSC ADAMS,
2.2 Construcción de un Modelo Virtual en ADAMS 31
1. Masas de cada cuerpo: Se ingresa el valor de masa de cada pieza o cuerpo del
prototipo pesada anteriormente, y se le pide al programa que calcule los momentos
de inercia principales, orientación de los ejes principales y la localización de sus
centros de masa. Estos datos ADAMS/View los utiliza como parámetros inerciales
del modelo.
y aceleraciones que se originan por el efecto del par aplicado sobre el eje de cada
articulación de revolución. Los siguientes valores corresponden a los parámetros del
modelo de fricción seleccionado2 , asumiendo que todas las articulaciones del proto-
tipo tienen los mismos rodamientos y que la velocidad de cada una es relativamente
pequeña:
µs = 0.05, µd = 0.03, vs = 0.1, vd = 2vs .
µs
µd
Coefficient of Friction
−vd −vs 0 vs vd
−µd
−µs
Slip Velocity
Fig. 2-14.: Modelo de fricción dinámica de Coulomb, para calcular el trabajo que se pierde
por el efecto del rozamiento entre los cuerpos móviles de la bicicleta. En el modelo está el
coeficiente de fricción estático µs , el coeficiente de fricción dinámico µd y las transiciones de
velocidad vd y vs .
5. Contacto con el suelo: Se crea una superficie solida plana que funcionará como
la pista en donde se moverá la bicicleta, y se modelan las fuerzas de contacto y de
fricción que se generan cuando la bicicleta se mueve sobre esta pista, o cuando cae
y colisiona con ella por la gravedad, utilizando la herramienta “Contact Forces”. La
herramienta calcula las fuerzas normales y de fricción (similar al modelo de Coulomb
usado en las articulaciones) que se originan por el impacto entre los cuerpos. En la
Tabla 2-4, están los parámetros usados por la herramienta para modelar fuerzas de
contacto y de fricción entre los cuerpos de la bicicleta y el suelo.
Tabla 2-4.: Parámetros definidos para modelar las fuerzas de contacto y de fricción entre los
componentes de la bicicleta y el suelo.
camente las articulaciones con los actuadores y demás componentes que se oponen
al movimiento.
Actuator_2
Friction_7
Coupler_3
Friction_5
Friction_6
1
1 ADAMS_uout Rear Wheel Angular Speed
Forward Torque 2
U To Workspace
2 Steering Angular Speed
Disturbance 2 5
Mux Y To Workspace
Lean Angle
ADAMS_tout Demux
Clock T To Workspace
Estudiando las ecuaciones del movimiento de una bicicleta, y agregándole a esto, la ex-
periencia que se tiene usándolas en diferentes lugares, maniobrándolas en diferentes te-
rrenos y observando a personas desarrollando velocidades considerablemente altas con
ellas, podrı́a plantearse la hipótesis de que la bicicleta mostrada en el Capı́tulo 4 que fue
convertida en un prototipo mecatrónico, logrará estabilizarse verticalmente y de forma
autónoma bajo cierta velocidad de avance mı́nima v(t) = vm , ∀t, y ejerciendo sólo una
acción de control sobre el manubrio que sea capaz de proporcionar las variaciones de po-
sición angular en la dirección, para contrarrestar la inestabilidad natural de la bicicleta y
disminuir las oscilaciones laterales que hacen que se pierda el control.
En este capı́tulo, se describen los planteamientos de las estrategias de control que de-
muestran mediante simulaciones que la hipótesis podrı́a comprobarse. El problema de
estabilidad de la bicicleta, se ha abordado dividiendo la planta en dos subsistemas (Trac-
ción y Dirección) y diseñando una estrategia de control independiente para cada una de
ellas. Una estrategia propuesta en el subsistema de tracción debe lograr su desplazamiento
sobre el suelo, siguiendo perfiles suaves de velocidad e inhibiendo aceleraciones elevadas.
La otra estrategia debe plantearse para maniobrar el subsistema de dirección, girando
hacia la derecha o izquierda el ensamble frontal, con el objetivo de lograr que ϕ(t) ≈ 0 ∀t,
lo cual indica que la bicicleta está completamente vertical con respecto al suelo. Aunque
estos dos subsistemas están acoplados dinamicamente, controlando la velocidad de forma
36 3 Estrategias de Control y Simulaciones
ϕ 1
[Actuator_1] Trw ϕ̇ 2
[Disturbance] Tϕ δ 3
δ̇ 4
[Actuator_2] Tδ
v 5
Actuator_2
Disturbance
Actuator_1
y x
z
gravity
el suelo sobre el neumático y Trw es el par aplicado por el actuador al eje de giro, para
generar el movimiento.
Rrw
Trw
v
Fn
2
Ff
Rear wheel with lumped friction
un error de posición igual a cero mediante su acción integral; y una apropiada respuesta
transitoria por medio de su acción proporcional. Cualquier función de transferencia con sus
caracterı́sticas similares a GvT (s), una estrategia de control más complicada no ganarı́a
mayores beneficios que una acción de control PI [42].
Nyquist Diagram
6
0 dB
2 dB -2 dB
2
4 dB -4 dB
Imaginary Axis
6 dB -6 dB
10 dB -10 dB
0
-2
-4
-6
-2 0 2 4 6 8 10 12
Real Axis
Definiendo v ∗ (t) como la referencia de velocidad de avance en función del tiempo, la acción
de control PI que entregará en el subsistema de tracción el par requerido para seguir esta
velocidad, es expresada como:
en donde ev (t) = v(t)−v ∗ (t) es el error de seguimiento en función del tiempo. Siendo C(s)
la función de transferencia del controlador PI,
Kp s + Ki
C(s) = , (3-5)
s
terı́stica,
1 + C(s)GvT (s) = 0,
µd + Kp Rrw Ki Rrw (3-7)
s2 + s+ = 0.
Ayy + mt Rrw Ayy + mt Rrw
Suponiendo que los polos deseados de lazo cerrado son caracterizados por su amortigua-
miento relativo (ζ) y su frecuencia (ω0 ), entonces, la ecuación caracterı́stica deseada se
convierte en:
s2 + 2ζω0 s + ω02 = 0. (3-8)
Igualando los coeficientes de estas dos ecuaciones caracterı́sticas, con una adecuada selec-
ción de ζ y ω0 se determinan las ganancias Kp y Ki ası́:
2 (Ayy + mt Rrw ) ζω0 − µd
Kp = ,
Rrw
(3-9)
(Ayy + mt Rrw ) ω02
Ki = .
Rrw
La Fig. 3-4 exhibe un diagrama de bloques con la estructura del controlador PI. Este con-
trolador fue complementado con un esquema Anti-Windup, el cual, mejora su desempeño
drasticamente, eliminando rápidamente los grandes incrementos de la acción integral que
sobrepasan los lı́mites preestablecidos en la salida del actuador. Fı́sicamente, esta con-
figuración limita la aceleración en la tracción, reiniciando dinamicamente el integrador
del controlador con una constante de tiempo que depende la ganancia de la señal de
realimentación del Anti-Windup Ka [43].
Kp
v t +
+ + +nt Trw t Rrw v t
Ki
+ R Ayy mt Rrw s µd
+
1st Order Traction Model
Ka
1.4
Reference v t
Forward speed output v t
1.2 Closed loop response with forward speed controller
(m/s) speed (m/s)
1.6
1
1.4
Reference v t
0.8 Forward speed output v t
1.2
Forward
0.6
1
Forward speed
0.4
0.8
0.2
0.6
0
0.4 0 1 2 3 4 5 6 7 8 9 10
Time (sec)
0.2
Rear wheel torque generated by forward speed controller
120
0
0 Fig. 3-5.:
1 Respuesta
2 de 3lazo cerrado
4 del sistema
5 de control
6 de7 velocidad
8 de avance.
9 10
Time (sec) Control signal nt
100
Saturated control signal Trw t
Rear wheel torque generated by forward speed controller
120
80
Torque (Nm) Torque (Nm)
80
40
60
20
40
0
0 1 2 3 4 5 6 7 8 9 10
Time (sec)
20
0
0 1 2 3 4 5 6 7 8 9 10
Time (sec)
Fig. 3-7.: Esquema general del sistema de control propuesto para estabilizar la bicicleta.
y (n) (t) = %u(t) + φ(t, y(t), ẏ(t), . . . y (n−1) (t)) + ζ(t), (3-10)
llamado perturbación de entrada ξ(t). De esto resulta un sistema simplificado que puede
ser definido como:
y (n) (t) = %u(t) + ξ(t). (3-11)
Entonces, el objetivo de control es gobernar la salida plana y(t) de (3-11) y obligarla a
seguir alguna trayectoria fluida de referencia definida como y ∗ (t), independientemente de
la función de perturbación desconocida pero uniformemente acotada ξ(t). Para esto debe
asumirse lo siguiente:
El polinomio en función del tiempo z(t), es un polinomio de Taylor invariante con respecto
al tiempo, cuyo grado es (m − 1), y con coeficientes arbitrarios reales. z(t) puede definirse
como el modelo interno de la perturbación aditiva en la entrada del sistema e incorporarse
como parte del observador asintótico lineal, cuyo error de estimación de este observador,
es forzado a converger a una pequeña vecindad de cero. A causa de esto, se asume que
la función residual r(t), y sus derivadas con respecto al tiempo ṙ(t), r̈(t), . . . , r(m) (t), son
uniformemente absolutamente acotadas.
3.2 Control de Inclinación 43
en donde x̂(t) = [x̂1 (t) x̂2 (t) . . . x̂n+m (t)]T es la estimación del vector de estado y L =
[`n+m−1 . . . `1 `0 ]T es el vector de ganancias del observador.
Definiendo el error de estimación como ẽx (t) = x(t)− x̂(t), el vector del error de estimación
T
resultante ẽx (t) = [ẽx1 (t) ẽx2 (t) . . . ẽx(n+m) (t)] , satisface
ẽ˙ x (t) = (A − LC)ẽx (t) + Eξ (m) (t) = Ae ẽx (t) + Eξ (m) (t), (3-16)
La realimentación del estado x̂(t), estimado por el observador GPI y ponderado por
las ganancias del controlador.
Con respecto al sistema (3-11), la ley de control basada en observador GPI para el segui-
miento de trayectorias, tiene la siguiente estructura:
n−1
1 (n) (k)
u(t) = [[y ∗ (t)] − ∑ γk (x̂k+1 (t) − [y ∗ (t)] ) − x̂n+1 (t)] , (3-18)
% k=0
en donde el conjunto de los coeficientes {γ0 , . . . , γn−1 }, son seleccionados para que todas
las raı́ces de pc (s) = sn + γn−1 sn−1 + . . . + γ0 estén ubicadas en el semiplano izquierdo de
C. El error de seguimiento de la salida en lazo cerrado, ey (t) = y(t) − y ∗ (t), es gobernado
por el siguiente polinomio caracterı́stico:
n−1
e(n)
y (t) + γn−1 ey
(n−1)
(t) + . . . + γ0 ey (t) = (ξ(t) − x̂n+1 (t)) + ∑ γk ẽx(k+1) (t). (3-19)
k=0
La ley de control (3-18), conduce la trayectoria del error de seguimiento del sistema
controlado hacia una pequeña vecindad de cero, que puede reducirse tanto como se desee,
mediante una selección apropiada del conjunto de los coeficientes {γ0 , . . . , γn−1 }. La única
restricción para la selección de estos coeficientes, es que pc (s) sea un polinomio Hurwitz,
es decir, con todas sus raı́ces a la izquierda del eje imaginario del plano complejo C.
de transferencia Gϕδ (s) formulada en (2-3), con la cual, es posible realizar el siguiente
análisis algebraico:
mt gh
(s2 − ) ϕ(s) = us (s), (3-24)
J
que puede aproximarse por el siguiente sistema simplificado diferencialmente plano:
Es usual que en algunos casos sea seleccionada una aproximación de primer orden para
˙
la función de perturbación (ξ(t) ≈ 0), debido a que pueden modelarse localmente como
señales constantes, las no linealidades y perturbaciones aditivas en el sistema. Varios au-
tores han aplicado la aproximación de la función de perturbación por un modelo de primer
orden; Freidovich y Khalil la usaron para estimar las perturbaciones externas y restable-
cer el desempeño del modelo lineal nominal en lazo cerrado de varios sistemas no lineales
46 3 Estrategias de Control y Simulaciones
inciertos tomados como ejemplos [45]; Gao y Zhao también usaron esta aproximación,
para estimar la resonancia de un sistema de dos inercias, básicamente, las perturbaciones
que se presentan en el acople entre un motor y la carga cuando este conjunto está en
movimiento [46]; y Sanz, Garcı́a y Albertos quienes plantearon una estructura de control
basada en observador GPI con esta caracterı́stica, para estabilizar una plataforma con un
quadrotor de tres grados de libertad (3-DOF) [47].
Al igual que los reportes anteriores, para el diseño de este observador se utiliza una
aproximación lineal de primer orden como modelo interno de la función de perturbación
ξ1 (t), debido a que las variaciones de inclinación de la bicicleta son relativamente suaves,
y no se requiere para este caso en particular, un observador extendido de alto ancho de
banda. Según la metodologı́a presentada en la Subsección 3.2.1, se formula el siguiente
observador GPI para el sistema simplificado (3-26), aproximando el modelo interno de la
perturbación como ξ˙1 (t) = ṙ1 (t) ≈ 0:
˙
x̂(t) = Ax̂(t) + Bus (t) + L(ϕ(t) − ϕ̂(t)), ŷ(t) = C x̂(t), (3-27)
Con x̂(t) = [x̂1 (t) x̂2 (t) x̂3 (t)]T , la matriz A ∈ R3×3 con la misma forma de (3-13), B =
[0 1 0]T , C = [1 0 0] y L = [l2 l1 l0 ]T ; en donde x̂1 (t), x̂2 (t) y x̂3 (t), son las estimaciones
˙
ϕ̂(t), ϕ̂(t) y ξˆ1 (t) respectivamente.
La dinámica del error de estimación para este observador GPI, es dominada por los valores
propios de (A − LC), entonces, una apropiada selección de las ganancias del observador
L = [l2 l1 l0 ]T , debe ubicar las raı́ces del polinomio caracterı́stico:
La selección de las raı́ces del polinomio caracterı́stico del error de observación, afecta
el ancho de banda del observador GPI y puede contaminar con ruido las estimaciones.
Entonces, la sintonización del observador adquiere un compromiso entre desempeño en la
estimación de la perturbación y sensibilidad al ruido. Según el método CRA, fue definida
3.2 Control de Inclinación 47
El objetivo de control, es gobernar la salida plana ϕ(t) del sistema (3-26), para obli-
garla a seguir la referencia ϕ∗ (t) = 0 independientemente de la función de perturbación
desconocida ξ1 (t). Entonces, se propone la siguiente ley de control:
˙
us (t) = ϕ̈∗ (t) − K0 [ϕ̂(t) − ϕ∗ (t)] − K1 [ϕ̂(t) − ϕ̇∗ (t)] − ξˆ1 (t). (3-29)
Debido a que la referencia ϕ∗ (t) es igual a cero, entonces sus derivadas ϕ̇∗ (t) y ϕ̈∗ (t)
también son iguales a cero, ϕ∗ (t) = ϕ̇∗ (t) = ϕ̈∗ (t) = 0. Reemplazando la ley de control
en el sistema de lazo abierto (3-26), la dinámica del error de seguimiento de lazo cerrado
eϕ (t) = ϕ(t) − ϕ∗ (t) del sistema de control, es gobernado por:
Asumiendo que los errores de estimación que están a mano derecha de la igualdad en
(3-30) son muy cercanos a cero, la dinámica del error de seguimiento de lazo cerrado
está dominantemente gobernada por eϕ (s2 + K1 s + K0 ) ≈ 0. Para este polinomio fueron
seleccionadas las ganancias K0 = 18.742 y K1 = 9.184, cuyos valores ubican las raı́ces en
[−6.122 − 3.061] y establecen un tiempo de asentamiento de 1.5 segundos en la respuesta
transitoria del error de seguimiento. La acción de control parcial us (t), puede convertirse
seguidamente en la referencia de posición angular δ ∗ (t) que debe seguir el subsistema de
dirección, por medio de la ecuación (3-21).
La Fig. 3-8 muestra el esquema propuesto del sistema de control estabilizador. Se puede
observar en la figura, que δ ∗ (t) se obtiene de multiplicar us (t) por la función de transferen-
cia H(s). El saturador que está seguido a la referencia δ ∗ (t), corresponde a la limitación
de giro que posee el manubrio de la bicicleta.
v t
ξˆ1 t
H s
< mt hv t=A
@
P
ϕ̂˙ t us t wJ δ t @
Dv t@s A
D AA ϕt
K1 2 Ds @
vm
vm
mt h @
wJ @ 2 mt gh AA
@ s
ϕ̂t > J A?
K0
2nd Order Bicycle Model
< =
< = < = @x̂A
@ẋ
ˆA @A LC B LA @@ AA
@ A @ A @u A
@ A @ A s
@ϕ̂A
> ?
@ C
> 0 0A? @@ AA
@ϕA
> ?
GPI Observer
2.5
2
Forward speed (m/s)
1.5
0.5
0
0 1 2 3 4 5 6 7 8 9 10
Time (sec)
0.05
0
Angle (rad)
-0.05
-0.1
-0.15
0 1 2 3 4 5 6 7 8 9 10
Time (sec)
Fig. 3-10.: Respuesta de lazo cerrado del modelo de 2do orden, con la estrategia de control
estabilizadora. Esta respuesta corresponde a la inclinación ϕ(t).
2
Control signal
Saturated control signal
Angle (rad) 1.5
0.5
-0.5
0 1 2 3 4 5 6 7 8 9 10
Time (sec)
δ̈(t) = a41 ϕ(t)+a42 (v 2 (t)) δ(t)+a43 (v(t)) ϕ̇(t)+a44 (v(t)) δ̇(t)+b41 Tϕ (t)+b42 Tδ (t), (3-31)
en donde a42 (v 2 (t)), a43 (v(t)) y a44 (v(t)) son funciones dependientes de la velocidad de
avance v(t), Tδ (t) es el par aplicado al subsistema de dirección y Tϕ (t) es el par reflejado
en la dirección por el efecto de fuerzas laterales aplicadas en la bicicleta, consideradas
como perturbaciones externas. Esta ecuación expresa la dinámica del ángulo de dirección
δ(t), cuando la bicicleta va en movimiento y se le aplica un par al manubrio para girar la
rueda frontal.
u(t) es la entrada del sistema que está especificada como el par Tδ (t), κ = b42 es la
constante que acompaña a la entrada, y ξ2 (t) es la función llamada como la perturbación
de entrada. De la misma manera como se planteó en el controlador estabilizador, debe
diseñarse un observador GPI para estimar las variables de estado y la perturbación de
entrada que constituyen al sistema, y con ellas, plantear la ley de control que logra un
seguimiento robusto de la referencia δ ∗ (t).
Debido a todos los términos que deben asociarse en la función de perturbación ξ2 (t) para
lograr una representación simplificada de la planta tal y como se muestra en (3-32), una
50 3 Estrategias de Control y Simulaciones
aproximación local de bajo orden para el modelo interno de esta compleja función de
perturbación (dξ2 (t)/dt ≈ 0), conlleva a la necesidad de diseñar un observador de alto
ancho de banda. Es por esto, que se decide diseñar un observador GPI extendido con una
aproximación del modelo interno de la perturbación definida como d4 ξ2 (t)/dt4 ≈ 0. Esto
le permitirá al observador estimar las variables definidas como el estado del sistema y la
perturbación de entrada con un menor ancho de banda.
con x̂(t) = [x̂1 (t) x̂2 (t) x̂3 (t) x̂4 (t) x̂5 (t) x̂6 (t)]T , la matriz A ∈ R6×6 construida como
se indica en (3-13), B = [0 1 0 0 0 0]T , C = [1 0 0 0 0 0] y el vector de ganancias
F = [℘5 ℘4 ℘3 ℘2 ℘1 ℘0 ]T . x̂1 (t), x̂2 (t) y x̂3 (t) son las versiones estimadas de δ(t), δ̇(t)
y ξ2 (t) respectivamente.
La dinámica del vector del error de estimación que resulta del observador GPI extendido,
será dominada por los valores propios de la matriz (A − F C). El método CRA del AnexoB
que fue utilizado anteriormente para sintonizar las ganancias del observador GPI del con-
trolador estabilizador, no es eficiente en la sintonización de las ganancias {℘0 , ℘1 , . . . , ℘5 }
del observador GPI extendido, por la estructura de sexto orden en la que se ha definido
el modelo aumentado del sistema, representado en espacio de estado.
Una alternativa mejor elaborada para seleccionar una localización aceptable de los valores
propios del observador GPI extendido, consistirı́a en utilizar un método de optimización.
Un regulador cuadrático lineal (LQR), es el adecuado para solucionar este problema de
localización, porque tiene como objetivo, encontrar para un sistema en espacio de estado
expresado como ẋ(t) = Ax(t)+Bu(t), una ley de control RVE u(t) = −Kx(t) que minimiza
el siguiente ı́ndice de desempeño [48]:
∞
V =∫ [xT (t)Qx(t) + uT (t)Ru(t)] dt, (3-34)
0
P A + AT P − P BR−1 B T P + Q = 0. (3-36)
3.2 Control de Inclinación 51
Considerando el diagrama de bloques de la Fig. 3-12, en donde fi (.) representa las per-
turbaciones a las entradas de forma individual, ui = fi (.)µi , el sistema de control LQR
mostrado en la figura, tiene la garantı́a de ser estable en lazo cerrado para cualquier
conjunto de ganancias escalares βi con fi = βi , donde βi está en el rango 1/2 < βi < ∞.
GLQ s
µ1
f1 . u1
0 + µ2 xs us
f2 . u2 B sI A 1
K
µm
fm . um
Fig. 3-12.: Matriz de transferencia del lazo LQR, GLQ (s) = K (sI − A)−1 B.
El sistema de control LQR también garantiza la estabilidad en lazo cerrado para cualquier
conjunto de fases escalares φi con fi = ejφi , donde φi está en el rango −60 < φi < +60 . ° °
Estas dos propiedades de robustez pertenecientes a los diseños LQR, han sido usadas en
muchas aplicaciones que requieren un óptimo desempeño en control y/o estimación de
estado [49].
Entonces, con este método se puede encontrar el vector F que asigna los valores propios
del observador GPI extendido, si es enfocado como un controlador y se requiere una
asignación para los valores propios del siguiente sistema:
˙
x̄(t) = AT x̄(t) + C T ū(t), (3-37)
Entonces, las raı́ces del polinomio caracterı́stico del error de estimación, definido como:
son ubicadas en: [−50 − 24.37 + 36.67i − 24.37 − 36.67i − 0.05 + 0.09i − 0.05 − 0.09i − 0.1],
las cuales, establecen un ancho de banda de (≈ 94 rad/s) en la dinámica del error de
estimación.
Tal y como lo indica la estrategia de control basada en observador GPI, la ley propuesta
para el controlador seguidor es la siguiente:
1 ∗ ˙
u(t) = [δ̈ (t) − K2 (δ̂(t) − δ ∗ (t)) − K3 (δ̂(t) − δ̇ ∗ (t)) − ξˆ2 (t)] , (3-40)
κ
en donde δ ∗ (t), δ̇ ∗ (t) y δ̈ ∗ (t) son la referencia de posición angular que debe seguir el
subsistema de dirección y sus derivadas respectivamente. Reemplazando esta ley de control
en el sistema de lazo abierto (3-32), la dinámica del error de seguimiento eδ (t) = δ(t)−δ ∗ (t)
del sistema de control de lazo cerrado, estará gobernada por:
El esquema de la Fig. 3-13 muestra la estructura del sistema de control seguidor. En este
esquema se observa que el sistema de control estabilizador está presente para generar la
referencia de posición angular δ ∗ (t), que debe seguir el subsistema de dirección por medio
de este controlador.
3.2 Control de Inclinación 53
v t Tϕ t
ϕ t
Stabilizer δ t
d δ̇ t
d δ̈ t
Controller dt dt
ϕt
P
+
Tδ t Non-linear
K2 1~κ Bicycle
+ δ t
Model
K3
+
4th Order Model
ξ2t < =
˙ <= < = @x̂A
δ̂ t @@ẋˆAA @@AF C Bκ FAA @@ AA
@A @ A @TδA
δ̂ t @>δ̂A? @> C 0 0A? @@ AA
@δ A
> ?
0.08
0.06
Angle (rad)
0.04
0.02
-0.02
0 5 10 15
Time (sec)
Fig. 3-14.: Respuesta de la salida de inclinación ϕ(t) del modelo de la bicicleta de cuarto
orden, con el sistema de control de inclinación (estabilizador + seguidor). Las oscilaciones que
se observan después de 5 segundos, se originan por el par externo de perturbación Tϕ (t), el
cual, es efectivamente rechazado por el sistema de control de inclinación.
En una simulación realizada para este modelo con la estrategia de control de la Fig. 3-
13, se obtiene la estabilización de la inclinación ϕ(t), cuya respuesta se muestra en la
Fig. 3-14, tomando como condición inicial un declive de 5 (≈ 0.087 rad) de esta variable. °
Para esta simulación se utilizó el perfil de velocidad de avance v(t) de la Fig. 3-9, el cual,
cambia constantemente los valores propios de la matriz A del modelo, y además, el sistema
fue perturbado por un par externo Tϕ (t) con una dinámica tal y como se exhibe en la
Fig. 3-15.
54 3 Estrategias de Control y Simulaciones
1.5
Torque (Nm)
0.5
0
0 5 10 15
Time (sec)
Fig. 3-15.: Par externo de perturbación Tϕ (t), agregado al modelo de la bicicleta de cuarto
orden.
0.8
Angle (rad)
0.6
0.4
0.2
-0.2
0 5 10 15
Time (sec)
Fig. 3-16.: Seguimiento de la referencia δ ∗ (t) impuesto por el control seguidor, al modelo de
la bicicleta de cuarto orden.
10
10
8 5
Torque (Nm)
0
6
-5
4
-10
0 0.2 0.4 0.6
2 Time (sec)
Torque (Nm)
-2 0.2
0
Torque (Nm)
-4
-0.2
-6 -0.4
-0.6
-8
6 8 10 12
Time (sec)
-10
0 5 10 15
Time (sec)
Fig. 3-17.: Señal de control Tδ (t), que entrega el sistema de control al modelo de la bicicleta
de cuarto orden, para estabilizar este sistema.
En la Fig. 3-18 y la Fig. 3-19, se muestran las respuestas de las salidas de inclinación
y dirección correspondientes al modelo matemático de cuarto orden con el sistema de
control de inclinación. En total, se realizaron 15625 simulaciones que equivalen a todas
las combinaciones posibles que resultan de las variaciones hechas a las masas de cada uno
de los cuatro cuerpos de la bicicleta. Las gráficas de color azul oscuro conciernen a las
respuestas del sistema utilizando los valores nominales de masa; las gráficas dibujadas con
azul claro pertenecen a todas las simulaciones con los valores de masa diferentes a los
nominales; y las dibujadas con rojo les pertenecen a las simulaciones definidas como la
peor respuesta.
Fig. 3-18.: Respuestas de la salida de inclinación ϕ(t) del modelo de la bicicleta de cuarto
orden, con el sistema de control de inclinación y múltiples variaciones de parámetros.
Fig. 3-19.: Respuestas de la salida de dirección δ(t) del modelo de la bicicleta de cuarto
orden, con el sistema de control de inclinación y múltiples variaciones de parámetros.
Fig. 3-20.: Respuestas del control de inclinación ante variaciones paramétricas del modelo.
En la Fig. 3-20 se muestran las diferentes señales que el controlador aplica a la entrada del
modelo ante todas las variaciones de sus parámetros. Analizando las salidas del sistema
y la acción de control aplicada para cada simulación, se puede definir la estrategia de
control como robusta ante las variaciones de los parámetros del modelo, considerando
las incertidumbres con respecto a las cantidades reales de las masas de los cuerpos de la
bicicleta y una velocidad de avance no uniforme en su movimiento. También, la estrategia
puede calificarse como eficiente ante el rechazo activo del par externo Tϕ (t), considerado
como una de sus perturbaciones.
3.2 Control de Inclinación 57
Fig. 3-21.: Dinámicas de la integral cuadrática del error, para el controlador estabilizador
sobre el modelo de cuarto orden, con variaciones de sus parámetros.
Fig. 3-22.: Dinámicas de la integral cuadrática del error, para el controlador seguidor sobre
el modelo de cuarto orden, con variaciones de sus parámetros.
En la Fig. 3-21 se muestra la dinámica del ı́ndice ISE, que resulta en el sistema de control
estabilizador ante variaciones paramétricas del modelo. Las gráficas dibujadas en azul
claro muestran todas las dinámicas del ISE, a excepción de la dibujada en azul oscuro,
que le corresponde al caso cuando el controlador actúa sobre el modelo resultante de los
valores de masa nominales, y la dibujada en rojo, que muestra el peor desempeño de
estabilización, cuyo valor ISE definitivo es el más alto de todas las gráficas (≈ 1.4E − 03).
Este valor, fue el obtenido al aumentar la masa de todos los cuerpos de la bicicleta,
multiplicando el valor nominal de cada una por 1.3.
La Fig. 3-22 muestra las dinámicas del ı́ndice ISE que resultan del sistema de control
seguidor con las variaciones paramétricas del modelo. La gráfica dibujada en azul oscu-
58 3 Estrategias de Control y Simulaciones
ro, muestra el caso del seguimiento impuesto por el controlador para el modelo con sus
parámetros nominales, mientras que la dibujada en rojo, concierne al peor caso de se-
guimiento con el valor ISE más alto (≈ 0.174), el cual, fue obtenido cuando la masa del
ensamble frontal es incrementada multiplicando su valor nominal por 1.3, y la masa de
los otros cuerpos es disminuida multiplicando sus valores nominales por 0.7.
2350 rad/s (375 Hz) < ωs < 9400 rad/s (1500 Hz).
1 -3
x 10 Pole-Zero Map
1.5
1
Imaginary Axis
0.8
0.5
0
0.6
-0.5
-1
0.4
-1.5
0.9985 0.999 0.9995 1
Real Axis
0.2
Imaginary Axis
-0.2
-0.4
-0.6
-0.8
-1
Fig. 3-24.: Polos del lazo cerrado del sistema con una velocidad de 0.9 m/s.
60 3 Estrategias de Control y Simulaciones
Pole-Zero Map
1 -3
x 10 Pole-Zero Map
Imaginary Axis
0.8
0.5
0
0.6
-0.5
0.4 -1
-0.2
-0.4
-0.6
-0.8
-1
Fig. 3-25.: Polos del lazo cerrado del sistema con una velocidad de 3.5 m/s.
En la Fig.3-28, se muestran las señales de entrada que recibe el modelo en esta simulación,
las cuales, corresponden al par Tδ (k) aplicado al manubrio del subsistema de dirección
para seguir la señal de referencia δ ∗ (k); el par Trw (k) aplicado a la rueda trasera para
lograr la velocidad constante de referencia v ∗ (k); y una fuerza aplicada lateralmente en la
parte superior del marco trasero para generar el par externo de perturbación Tϕ (k), que
fue rechazado de manera contundente por el controlador de inclinación.
Sample time: 0.001 s
Tϕ k
K0
H z δ̂ k 2 Disturbance
δ k +
1+
4.6E 4z 1 Tracking δ̂ k + + Tδ k ϕk
K1 K3 1~κ
P 2z 0.9971 Differentiator P
δ̂ k + +
K2 Adams δ k
Us k Kp
Bicycle
Model v k
v k + + Tsz 1 + + Trwk
Ki
+ 2 z 1
Integrator
+
Ka
Tδ k
3.3 Co-simulación utilizando ADAMS y MATLAB
ξ2 k Discrete
Extended
δ̂ k 1 GPI
δ̂ k Observer
ξ1 k Discrete
ϕ̂k 1 GPI
ϕ̂k Observer
Fig. 3-26.: Esquema detallado del sistema de control propuesto para estabilizar la bicicleta.
61
62 3 Estrategias de Control y Simulaciones
0.02
0.01
0
Angle (rad)
-0.01
-0.02
-0.05
0 5 10 15 20 25 30 35 40
Time (sec)
0.5
Angle (rad)
-0.5 Steering reference δ k
Steering output δ k
Steering estimation δ̂ k
-1
0 5 10 15 20 25 30 35 40
Time (sec)
3
1.5
0.5
0
0 5 10 15 20 25 30 35 40
Time (sec)
Fig. 3-27.: Salidas del sistema en la simulación interactiva No. 1. En la figura se muestra una
correcta estimación de ϕ(k) y δ(k), y un adecuado seguimiento de la referencia v ∗ (k).
Steering torque
15
10
Torque (Nm)
-5
-10
0 5 10 15 20 25 30 35 40
Time (sec)
25
Torque (Nm)
20
15
10
0
0 5 10 15 20 25 30 35 40
Time (sec)
20
Force (N)
-20
-40
0 5 10 15 20 25 30 35 40
Time (sec)
Fig. 3-28.: Entradas del sistema en la simulación interactiva No. 1. El par aplicado sobre el
eje del manubrio Tδ no excede los lı́mites de -10 y 10 Nm.
3.3 Co-simulación utilizando ADAMS y MATLAB 63
La Fig. 3-29 muestra una adecuada estimación de las velocidades angulares de la inclina-
ción [ϕ̂(k + 1)] y la dirección [δ̂(k + 1)] por parte de los observadores GPI y GPI extendido,
ambos en el dominio del tiempo discreto.
0.2
Lean angular speed output ϕk 1
0.15 Lean angular speed estimation ϕ̂k 1
0.1
Angular speed (rad/s)
0.05
-0.05
-0.1
-0.15
-0.2
-0.25
-0.3
0 5 10 15 20 25 30 35 40
Time (sec)
5
Steering angular speed output δ k 1
4 Steering angular speed estimation δ̂ k 1
3
Angular speed (rad/s)
-1
-2
0 5 10 15 20 25 30 35 40
Time (sec)
Fig. 3-29.: Derivadas de las salidas del sistema en la simulación interactiva No. 1.
Las señales de entrada aplicadas a este modelo virtual, se muestran en la Fig. 3-31.
Las acciones de control Tδ (k) y Trw (k), registran valores que sobrepasan los niveles de
saturación al estabilizar y desplazar este sistema de acuerdo a las exigencias recreadas en
la simulación y la perturbación externa Tϕ (k) que se logró rechazar en lı́nea.
En la Fig. 3-32 pueden observarse las estimaciones de las velocidades angulares de las
salidas de inclinación [ϕ̂(k + 1)] y dirección [δ̂(k + 1)], calculadas por los observadores del
controlador de inclinación.
64 3 Estrategias de Control y Simulaciones
0.1
Angle (rad)
0.05
0 5 10 15 20 25 30 35 40
Time (sec)
0.5
Angle (rad)
Steering reference δ k
-0.5
Steering output δ k
Steering estimation δ̂ k
-1
0 5 10 15 20 25 30 35 40
Time (sec)
3
Forward speed reference v k
1.5
0.5
0
0 5 10 15 20 25 30 35 40
Time (sec)
Fig. 3-30.: Salidas del sistema en la simulación interactiva No. 2. En la figura se muestra la
estimación de ϕ(k) y δ(k), y el seguimiento de la referencia v ∗ (k).
Steering torque
10
5
Torque (Nm)
-5
-10
0 5 10 15 20 25 30 35 40
Time (sec)
25
Torque (Nm)
20
15
10
0
0 5 10 15 20 25 30 35 40
Time (sec)
20
10
Force (N)
-10
-20
-30
0 5 10 15 20 25 30 35 40
Time (sec)
Fig. 3-31.: Entradas del sistema en la simulación interactiva No. 2. El par en la dirección
excede los lı́mites de -10 y 10 Nm, en los primeros segundos.
3.3 Co-simulación utilizando ADAMS y MATLAB 65
0.3
0.2
Angular speed (rad/s)
0.1
-0.1
-0.4
0 5 10 15 20 25 30 35 40
Time (sec)
2
Angular speed (rad/s)
-1
Steering angular speed output δ k 1
-2 Steering angular speed estimation δ̂ k 1
0 5 10 15 20 25 30 35 40
Time (sec)
Fig. 3-32.: Derivadas de las salidas del sistema en la simulación interactiva No. 21 .
1
En el siguiente enlace: https://youtu.be/7hWhc7an8Ws puede encontrarse un vı́deo que muestra la
animación interactiva de la co-simulación.
4. Instrumentación en la Bicicleta
Entre los pocos trabajos experimentales recientes para la auto-estabilización de una bi-
cicleta, sólo algunos de ellos si han cumplido con la meta trazada de mantenerla estable
bajo ciertas condiciones iniciales. Estas condiciones no están debidamente formalizadas,
por lo tanto generan la incertidumbre del funcionamiento del sistema. Aquellos proyectos
en los cuales se construyó el prototipo para la experimentación, concluyen que surgen
problemas de instrumentación y se deben a diferentes factores, tales como, dificultades
en acondicionamiento de energı́a, baja frecuencia en el muestreo de las señales, potencia
insuficiente y retrasos en la acción de control [22], desbalanceamiento del sistema por los
elementos ensamblados al marco de la bicicleta [53], e insatisfactoria robustez y desem-
peño del controlador ante las perturbaciones y dinámicas no consideradas en el modelo,
que aparecen cuando la bicicleta está en movimiento [54].
Sincronı́a de movimiento entre las partes comandadas por los actuadores y las otras
que se mueven indirectamente por ellas.
Es importante que los actuadores acoplados, uno sobre la rueda trasera y el otro sobre
el manubrio de la bicicleta, sean capaces de llevar a cabo las respuestas exigidas por el
controlador. Aquı́ es fundamental que el ancho de banda de respuesta de cada uno sean
los apropiados, y que las magnitudes no lleguen a los niveles de saturación.
68 4 Instrumentación en la Bicicleta
Las variables sensadas cuando la bicicleta se encuentra en movimiento, que fueron definidas
en el capı́tulo anterior como las de mayor importancia de su dinámica, y con las cuales se
realimentarán los lazos de control, además de adquirirse, deben filtrarse para eliminar las
componentes más significativas del ruido y posteriormente almacenarlas para analizarlas
y conocer luego de cada experimento, como es la respuesta del sistema y que tan eficiente
y robusto es el controlador bajo cierta sintonización.
En general, todos los componentes que fueron agregados a la bicicleta de montaña se-
leccionada, la convierten en un prototipo mecatrónico de fines académicos que puede ser
utilizado como una planta retante para el diseño de estrategias avanzadas de control. Es-
tas partes deben garantizar una movilidad de bajo esfuerzo y de total libertad en este
prototipo, entonces, el peso de los dispositivos para la implementación del controlador,
adquisición y almacenamiento de datos, sensores, actuadores y el equipo que suple con
energı́a eléctrica, debe ser el más bajo posible, asegurando que puedan ser llevados con la
bicicleta durante todo su libre recorrido sin que su movimiento se vea comprometido por
incrementos inerciales innecesarios.
Los cambios de velocidad de la bicicleta están habilitados en el sistema con el fin de que
el motor pueda manejar un rango más amplio de velocidad. El circuito diseñado para que
trabaje como Driver de este motor DC, es el del Anexo D.2. Este circuito es el adecuado
para la aplicación porque su lógica sencilla facilitará la implementación del control de
velocidad de avance en el prototipo.
Fig. 4-3.: Actuador acoplado al subsistema de dirección. (a) Servomotor Hitec HS-1000SGT.
(b) Piñones internos del servomotor Hitec HS-1000SGT.
Este servomotor originalmente viene fabricado con un control interno de posición, apro-
vechado para dirigir aviones a escala mini helicópteros y vehı́culos eléctricos de juguete.
En la Fig. 4-4 se muestran todos los componentes que generalmente hacen parte de este
dispositivo.
la señal de salida y de realimentación del sistema. También adquiere como entrada del
sistema, la señal digital de referencia entregada por el usuario por medio de uno de los
cables salientes del servomotor. El controlador ejecuta una acción proporcional a partir
del error de estas dos señales. En [55] se explica detalladamente el funcionamiento del
servomotor convencional.
La tarjeta seleccionada para trabajar como el Driver del motor DC del servomotor Hitec
se muestra en la Fig. 4-19, la cual, posee un circuito interno conocido comúnmente como
Puente H. El circuito que se diseñó para acondicionar y aislar del sistema de potencia
las señales de control provenientes del eZDSP, es el que se muestra en el Anexo D.4.
Este circuito llamado Pre-Driver, en conjunto con el Puente H, permitirán actuar sobre el
motor DC del Hitec transduciendo las señales de control a potencia eléctrica para generar
el movimiento del ensamble frontal de la bicicleta.
El dispositivo escogido para que entregue el ángulo de inclinación del prototipo, debe
leer constantemente y con una frecuencia considerable cuantos radianes se ladea el marco
72 4 Instrumentación en la Bicicleta
TSS Embedded
Processor
USB 2.0 Asynchronous SPI Slave
Interface Serial Interface Interface
En la Fig. 4-6 se observan claramente los ejes principales que el sensor utiliza para cal-
cular su orientación en el mundo real. Este sensor está programado para que la lectura
2
Ver: https://www.yeitechnology.com.
4.1 Instrumentos Pertenecientes al Prototipo 73
de sus rotaciones puedan obtenerse mediante su módulo UART, por lo tanto, necesita un
dispositivo externo que le de instrucciones y a la vez reciba la información de su orienta-
ción espacial. Es necesario que estos ejes que se muestran en la figura sean re-calibrados
previamente. Para medir la inclinación del marco trasero de la bicicleta, El sensor fue
situado en el lugar que se muestra en La Fig. 4-8.
Para esta aplicación se seleccionaron dos sensores, uno de ellos es el módulo ACS712
mostrado en la Fig. 4-9, el cual, es un sensor lineal basado en efecto Hall que mide
corriente en un rango entre -5 a 5 A y transduce su medición mediante una señal análoga
de salida entre 1.5 y 3.5 V3 . En la Fig. 4-10 se muestran los valores promedios de voltaje
3
La ficha técnica del dispositivo se encuentra en: http://www.allegromicro.com/en/Products/
Current-Sensor-ICs/Zero-To-Fifty-Amp-Integrated-Conductor-Sensor-ICs/ACS712.aspx.
74 4 Instrumentación en la Bicicleta
2.9
2.8
Output Voltage Value (V)
2.7
2.6
2.5
2.4
2.3
-1.5 -1 -0.5 0 0.5 1 1.5
Measured Current (A)
Fig. 4-10.: Diferentes valores de corriente medidos con el módulo ACS712. Se puede observar
la linealidad de este sensor en un rango entre -1.5 y 1.5 amperios.
Fig. 4-11.: Ruido presente en la salida del módulo ACS712, midiendo un valor de corriente
de 0 A fijos.
En la Fig. 4-11 se muestra el ruido que genera el sensor en su salida ante una medición de
corriente constante. Para este experimento, el módulo está sensando 0 A, es decir, que no
4.1 Instrumentos Pertenecientes al Prototipo 75
Este segundo sensor de corriente mostrado en la Fig. 4-12, es también lineal y basado en
efecto Hall, por lo tanto tiene alguna similitud con el módulo ACS712, aunque maneja un
rango de medición entre -6 y 6 A, entregando un voltaje de salida aproximadamente entre
1.9 y 3.1 V4 . S22P006S05.jpg (JPEG Image, 640 × 640 pixels)
2.7
2.65
2.6
Output Voltage Value (V)
2.55
2.5
2.45
2.4
2.35
-1.5 -1 -0.5 0 0.5 1 1.5
Measured Current (A)
Fig. 4-13.: Diferentes valores de corriente medidos con el sensor S22P006S05. Se puede ob-
servar la linealidad de este sensor en un rango entre -1.5 y 1.5 amperios.
Como se muestra en la Fig. 4-13, para diferentes valores de corriente que pasan a través
de sus terminales de medición, hay una variación de voltaje lineal en la salida de este
sensor. En este experimento, se ajustó la corriente a diferentes valores dentro de un rango
4
La ficha técnica del dispositivo se encuentra en: http://www.tamuracorp.com/clientuploads/pdfs/
engineeringdocs/S22PXXXS05.pdf.
76 4 Instrumentación en la Bicicleta
de -1.25 A a 1.25 A, obteniendo valores de voltaje en la salida del sensor en un rango entre
2.36 y 2.63 V. El valor de la pendiente que relaciona la corriente medida con el voltaje de
salida, es menor para este sensor que para el módulo ACS712.
Fig. 4-14.: Comparación del ruido presente entre la salida del módulo ACS712 y la salida del
Tamura S22P006S05, ambos midiendo un valor de corriente de 0 A fijos.
En la Fig. 4-14 se muestra una comparación entre los dos sensores de corriente, midiendo
cada uno 0 A. Claramente se observa que el sensor S22P006S05 presenta una señal menos
ruidosa en su salida que el módulo ACS712, calificándolo como la mejor opción entre los
dos para la aplicación de sensado de corriente en la dirección de la bicicleta. También debe
decirse que el sensor S22P006S05 tiene un precio en el mercado cinco veces más elevado
que el módulo ACS712 mostrado anteriormente, por lo tanto habrı́a que considerarse un
análisis costo beneficio sobre ellos dos. Entre los dos sensores, fue escogido el Tamura
S22P006S05 independientemente de su costo, porque tiene un mayor ancho de banda, un
rango más amplio de medición y una señal de salida mejor acondicionada, lo cual puede
ser favorable si en un futuro se requiere realimentar esta señal en alguna estrategia de
control.
una medición lineal de posición angular, a través de la señal analógica que provee este
semiconductor. En el Anexo D.6 está el diagrama de conexiones para este sensor, el cual,
muestra la salida conectada directamente a los puertos de conversión de señales análogas
a digital que poseen las tarjetas seleccionadas para implementar el sistema de control.
Brown 5 to 24V DC
R2
2K
Blue 0V
Fig. 4-16.: Encoder para medir la velocidad angular de la rueda trasera. (a) Encoder YUMO
usado para esta aplicación. (b) Esquemático del circuito interno que posee el encoder para
generar el tren de pulsos en su salida.
El encoder fue ensamblado en el costado derecho de la rueda trasera, haciendo contacto con
el neumático mediante un juego de piñones con relación de transmisión de 1, tal y como se
78 4 Instrumentación en la Bicicleta
Item E6B2-CWZ3E
Alimentación 5 a 12V DC
Corriente 100mA Max
Configuración de salida Voltaje
Máxima respuesta en frecuencia 100kHz
Diferencia de fases de salida Entre salida A y B, 90 ± 45º
Par de inicio 1mN⋅m Max
Momento de Inercia 1 × 10−6 kg ⋅ m2 Max
Velocidad de Giro 6000r/min
Carga en el eje Radial: 30N, Axial: 20N
Temperatura en el ambiente º
-10 a 70 C
Humedad en el ambiente 35 a 85 %RH
muestra en la Fig. 4-17. En la Tabla 4-1, se encuentran depositados todos los parámetros
correspondientes a las especificaciones técnicas del encoder. El circuito electrónico que
posee internamente el encoder para generar el tren de pulsos sincronizado con la velocidad
de rotación de su eje, se muestra en la Fig. 4.16(b). Un circuito complementario diseñado
para energizar y adquirir su señal de salida se exhibe en la Anexo D.3.
Conexión directa entre el Driver del motor DC del Hitec y algunos puertos digitales
de las tarjetas ChipKit y eZDSP generadores de PWM.
El circuito impreso (PCB) de esta tarjeta fue diseñado en EAGLE V7.1, teniendo en
cuenta las normas establecidas por la organización IPC (Institute for Printed Circuits)
que regulan el diseño, ensamblado y control de calidad de los PCB5 . Este diseño se realizó
para fabricar el impreso sobre una placa doble capa de 2 oz/ft2 , la cual, tiene un espesor
de cobre en cada capa que correspondiente al doble de una placa convencional.
Las dimensiones de esta tarjeta son de 10×12 cm, y sus caminos o pistas se diseñaron con
un ancho entre 0.25 mm y 0.3 mm para la etapa de electrónica de control, y entre 3 mm
y 5 mm para la etapa de electrónica de potencia, asegurando un amperaje máximo de 1.5
5
Ver: http://www.ipc.org/.
80 4 Instrumentación en la Bicicleta
A y 9 A para cada una de estas dos etapas sin que halla un aumento considerable en la
temperatura de las pistas6 .
Cada capa de la tarjeta posee una tierra enmallada alrededor de las pistas, con el objetivo
de tener una referencia fuerte y mejorar la respuesta al ruido. Una de ellas cierra el lazo de
los circuitos de control, y la otra, cierra los de potencia. Estas dos tierras están aisladas, y
las señales que van de la etapa de control a la de potencia se encuentran opto-acopladas.
Para controlar el sentido de giro y la potencia eléctrica del motor DC del Hitec que
fue ensamblado en el manubrio, es necesario un puente H que trabaje como driver de
este motor, permitiendo que el controlador planteado para estabilizar la inclinación de la
bicicleta, actúe sobre el mediante cambios de estado de una señal digital para establecer
su sentido de giro, y variaciones del ancho de pulso de una señal PWM para incrementar
o decrementar el voltaje aplicado.
El puente H seleccionado para esta aplicación se muestra en la Fig. 4-19. Este puente H
es fabricado por Pololu y está formado mediante mosfets de alta potencia de referencia
IRF7862, los cuales, soportan un voltaje de 5.5 a 30 V y tienen la capacidad de entregar
una corriente de hasta 15 A7 .
La tarjeta ChipKit WF329 mostrada en la Fig. 4-21, fue seleccionada como parte del
prototipo debido a que es una tarjeta compacta, que utiliza el potente microcontrolador
PIC32MX695F512L de Microchip, con el cual, pueden desarrollarse aplicaciones de alto
nivel por su máxima velocidad de procesamiento de 80 MIPS. La programación de las
cuatro tareas en esta tarjeta, resulta sencilla porque se realiza bajo el software MPIDE
9
La ficha técnica de la tarjeta se encuentra en: http://www.digilentinc.com/data/products/
chipkit-wf32/chipkit-wf32_rm_revb_1.pdf
82 4 Instrumentación en la Bicicleta
Esta pequeña baterı́a está fabricada a base de Ion de Litio, entrega 7.4 V y tiene una
capacidad de suministro de carga de 2.2 Ah. Es usada para energizar todos los sensores
agregados al prototipo y suministrar la energı́a requerida por las tarjetas Chipkit WF32
84 4 Instrumentación en la Bicicleta
y eZDSP F28335 para que puedan trabajar durante un largo tiempo, aproximadamente 6
horas sin interrupciones.
Fig. 4-24.: Baterı́a de Ion de Litio para energizar los dispositivos de control.
Esta baterı́a mostrada en la Fig. 4-24 es también de Ion de Litio, y es la más adecuada
para la función asignada porque sus dimensiones y peso son casi irrelevantes y puede
situarse en cualquier parte de la bicicleta sin que impida su libre movilidad.
Este regulador mostrado en la Fig. 4-25 funciona básicamente como un Boost DC, donde
la tensión aplicada a una bobina es conmutada a través de un sistema de control embebido
en el circuito integrado XL4010610 . Este integrado entrega en la salida de la tarjeta, el
voltaje de referencia que haya sido previamente ajustado de forma manual por medio de
10
La ficha técnica del circuito integrado se encuentra en: http://www.xlsemi.com/datasheet/XL4016%
20datasheet.pdf.
4.2 Acondicionamiento y Validación de las Señales de los Sensores 85
Estos cálculos computacionales son realizados a las señales adquiridas por las tarjetas de
control, es por esto, que el desempeño del sistema de control está ampliamente ligado a
la eficiencia de los algoritmos programados y la adquisición de las señales generadas por
los sensores, las cuales, serán la respuesta o dinámica del sistema, y por lo tanto, sus
aproximaciones con la fı́sica del mundo real debe ser lo más exacta y precisa posible. A
4 Instrumentación en la Bicicleta
continuación se explica el acondicionamiento que tuvo que hacerse en los sensores ante-
riormente detallados, para obtener una aproximación adecuada de cada variable medida,
validándola con respecto a la medición que entrega algún otro instrumento.
1 2πrpi
v= , (4-1)
Tp 1024
en donde Tp es el perı́odo de la señal generada por el encoder, y rpi es el radio del piñón
ensamblado al encoder, que está en contacto con la rueda trasera, y cuya longitud es de
17.5 mm. Ambos, la rueda y el piñón, desarrollan la misma velocidad lineal por el hecho
de estar siempre girando en contacto.
Luego de que la rueda trasera alcanzara y siguiera la velocidad máxima establecida por
la referencia (1.5 m/s), se realizaron varios experimentos cronometrando el tiempo que
88 4 Instrumentación en la Bicicleta
1.8
Measured signal
Reference profile
1.6
1.4
1.2
1
Forward speed (m/s)
0.8
0.6
0.4
0.2
-0.2
0 5 10 15 20 25 30 35 40
Time (sec)
Fig. 4-29.: Rueda trasera siguiendo un perfil de velocidad con la ayuda de un controlador PI
implementado en el eZDSP. Se asume que la velocidad lineal que desarrolle la rueda trasera
será la misma velocidad de avance del prototipo.
0º
208º
De igual manera que con el sensor de corriente, la respuesta de este potenciómetro fue
aproximada mediante extrapolación e interpolación lineal, por dentro y fuera de los valores
obtenidos en la medición.
La Fig. 4-31 muestra el montaje realizado para probar el sensor S22P006S05. Este monta-
je y los valores obtenidos en la salida del sensor, validan su respuesta lineal ante cualquier
medición de corriente en un rango entre -1.5 a 1.5 A. A partir de las mediciones de la
Tabla 4-4, la tarjeta ChipKit WF32 tiene programada una extrapolación e interpola-
ción lineal (“Lookup Table”) para aproximar las mediciones de los valores de corriente
consumida por el motor DC de Hitec con mayor exactitud.
90 4 Instrumentación en la Bicicleta
Tabla 4-4.: Valores en obtenidos en la medición de corriente con el sensor S22P006S05. Estos
valores fueron adquiridos, utilizando xPC Target de MATLAB.
Sensor Menu principales, estimados mediante un algoritmo que implementa un filtro de Kalman para
On the menu bar, the first item you will
este see after file is Sensor. This contains commands that are useful, but not quite
proceso.
as common as those that appear on the main window. In Other Commands, we have:
• Sensor Info(and Wireless Settings). This screen will display the sensor's serial number and version string.
If it is a wireless sensor,
Este it will also let youtiene
software see anddoschange the pan ID and channel.
herramientas paraIf calibrar
it is a wired sensor, this YEI 3-Space y se utilizaron en
el sensor
is where options for HID emulation(joystick and mouse) may be found.
• Run Gradient Descent esta aplicación.
Wizard. This wizardLa willprimera (Fig.the4.32(a)),
help you calibrate compass andes la calibración
accelerometer. First, a gradiente descendiente, la cual,
screen will appear asking you to select which component sensors you would like to calibrate.
gradúa la medición del compás y el acelerómetro mediante un conjunto de datos guardados
en su memoria luego de colocar previamente al sensor en 24 posiciones ortogonales entre
sı́. La segunda herramienta (Fig. 4.32(b)), es la esfera de calibración, la cual, calcula
todos los parámetros de ajuste del sensor a partir de una colección de muestras de la
señal proveniente del magnetómetro, que el software va adquiriendo mientras el sensor es
rotado a varias posiciones, girando sus • Runejes principales
Sphere hasta
Calibration Wizard. Thiscompletar
wizard will walk gran parte
you through dea relatively
collecting la complete set of
magnetometer data from which sensor parameters can be calculated. This calibration method is not as
11
superficie
After choosing begin, the wizard willde la esfera
display a picture of.the sensor that will showaccurate
you anasorientation
gradient descent,
you but can be performed more quickly. When performing calibration, a large
should put the sensor in. sphere will appear that represents possible magnetometer vectors that will be collected as the sensor is
rotated.
A cyan arrow will appear, which will mark areas of the sphere that have been touched with a cyan color.
(a)press
Put the sensor in that orientation and Calibración ortogonal.
Next, making During
sure to hold the sensor still untilthis
thetype of calibration,
picture moves the(b) sensor can bede
Esfera moved as quickly as you like until the sphere is mostly
calibración.
to a new orientation. The sensor will then move on to indicate the next orientationcolored
in whichcyan.
youAtshould
the bottom
put of the window, there will be an indicator showing the number of total data
samples collected
the sensor. There are 24 orientations to collect data from. Please note that these changes as well
will not be savedas the estimated density, which is a measure of how filled in the sphere is. This
Fig. 4-32.: Herramientas de calibración number
parawillelstart at approximately
sensor YEI 3-Space, 180 andproporcionadas
decrease as more samples
por elare collected. Typically, a good
permanently to the sensor unless settings are committed.
calibration is achieved when the density reaches a level of 30 – 50 and the sphere is mostly colored in. When
software de prueba de YEI Technology. the data set seems complete hit the finish button. If you want to start over, hit reset. If you want to quit
without calibrating using the data, hit cancel. Please note that these changes will not be saved permanently to
©2007-2014 Yost Engineering, Inc. the sensor unless settings
Patended and Patent Pending are committed.
5/16
El sensor YEI 3-Space tiene programado los Factory
• Restore protocolos
Settings. Ifdeyoucomunicación
want to restore the sensorUSBto how 2.0, UARTerasing any changes
it was originally,
you have made to it, use this command. Please note that if you want to keep the sensor in this state once you
y SPI, con los cuales, el usuario puede have acceder a suyouorientación
used this command, en el
need to press the Commit espacio,
Settings en lasthe sensor will return to
button. Otherwise,
the state it was in prior to the run of this command when it next boots up.
representaciones de ángulos de Euler,• matriz de rotación,
Save/Load Settings to/from File. cuaternio
These options willabsoluto y relativo,
let you save sensor settings to a file, or load settings
onto the sensor from a file. When saving you will be given choices as to which settings you would like to
eje de tornillo y en dos vectores. La inclinación
save. de la bicicleta es obtenida, solicitándole
• Update Firmware. This will update the firmware of the sensor. It will let you choose an xml file that
al sensor su orientación representada como matriz
contains the firmware updatede data,
rotación
and then willpor
begin medio
the updatingdel módulo
process. The sensor will not be useable
during this time, and some changes that were made to the sensor, regardless of whether they were committed,
UART, configurado para trabajar con un Baud Rate de 921600. Esta matriz de rotación
will be wiped out, as the firmware updater rewrites that entire area of memory. The exception to this is the
component sensor calibration parameters, which the suite will try to preserve across a firmware update. Do
que entrega el sensor YEI 3-Space, corresponde a la orientación instantánea de sus ejes
principales con respecto a un sistema de coordenadas
©2007-2014 Yost Engineering, previamente
Inc. estimado
Patended mediante
and Patent Pending 6/16
sus tres sensores internos y el procedimiento de calibración gradiente descendiente. La
medición de inclinación de la bicicleta requiere que esta orientación sea expresada con
11
El manual del software se encuentra en: http://www.yeitechnology.com/sites/default/files/
YEI_TSS_Suite_Manual_3.0_r1_4Nov2014.pdf.
92 4 Instrumentación en la Bicicleta
0.3
0.2
Y
0.1
W
0
Z Axis
X
-0.1
-0.2 U
V
-0.3
-0.4 0.3
-0.15 0.2
-0.1 0.1
-0.05
0 0
0.05 -0.1
0.1
0.15 -0.2
0.2 -0.3
0.25
0.3 -0.4
Y Axis
X Axis
Fig. 4-33.: Orientación de la bicicleta colocada en su posición de Home y del sensor YEI
3-Space cuando está fijado a ella. Se observa en la figura un offset de orientación entre los dos
marcos de referencia que debe corregirse.
Para expresar la orientación del sensor con respecto al marco de referencia de la bicicleta,
se realiza la siguiente operación:
H T
R∗YEI = [P RYEI ] [P R∗YEI ] . (4-3)
Luego de calcular la matriz de rotación instantánea H R∗YEI , se calculan los ángulos ins-
tantáneos de rotación (Roll, Pitch y Yaw ), mediante el siguiente conjunto de ecuaciones
4.2 Acondicionamiento y Validación de las Señales de los Sensores 93
θ = sin−1 (−a31 ) ,
ϕ = atan2 (a31 /cθ, a33 /cθ) , (4-5)
ψ = atan2 (a21 /cθ, a11 /cθ) .
Las matrices A, B, C y L, toman los mismos valores que se asignaron para el contro-
lador estabilizador de las simulaciones. La ley de control también debe modificarse
por
1 ∗ ˙
us (t) = [ϕ̈ (t) − K0 [ϕ̂(t) − ϕ∗ (t)] − K1 [ϕ̂(t) − ϕ̇∗ (t)] − ξ1 (t)] , (5-3)
ρ
en donde ϕ̈∗ (t) = ϕ̇∗ (t) = 0 ∀t. La referencia de inclinación, fue definida como el
punto de equilibrio del prototipo en su posición vertical, es decir, ϕ∗ (t) = −0.9 ∀t. °
96 5 Implementación de los Sistemas de Control
Fast
sampler
C2 kT ~4
Ghp s G2 s
T ~4
Fast
sampler
C3 kT ~4
Ghp s G3 s
T ~4
Según uno de los métodos presentados en [57] para analizar los sistemas digitales
con múltiples tasas de muestreo, un muestreador ficticio con un perı́odo de muestreo
de T /4 segundos, es colocado en la entrada del sistema de la Fig. 5-1. Entonces, las
transformadas z de G1 (s), G2 (s) y G3 (s) resultan de la siguiente manera:
Fig. 5-5 se muestra una comparación del desempeño de G1 (z) T , G2 (z) T y G3 (z) T
4 4 4
con respecto a sus versiones continuas G1 (s), G2 (s) y G3 (s), tomando como entrada
la señal sinusoidal de 85 rad/s de frecuencia que se exhibe en la Fig. 5-2.
ϕkT
1 ϕt
0.8
0.6
0.4
0.2
Angle (rad)
-0.2
-0.4
-0.6
-0.8
-1
Fig. 5-2.: Señal de entrada en la simulación del observador GPI con multitasa de muestreo.
1
ϕtG1 s
ϕkT G1 z T4
0.8
0.6
0.4
0.2
Angle (rad)
-0.2
-0.4
-0.6
-0.8
-1
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
Time (sec)
Fig. 5-3.: Comparación No. 1 del observador GPI con multitasa de muestreo.
400
ϕtG2 s
ϕkT G2 z T
4
300
200
Angular speed (rad/s)
100
-100
-200
-300
-400
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
Time (sec)
Fig. 5-4.: Comparación No. 2 del observador GPI con multitasa de muestreo.
98 5 Implementación de los Sistemas de Control
40
ϕtG3 s
ϕkT G3 z T
4
30
20
10
Disturbance
-10
-20
-30
-40
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
Time (sec)
Fig. 5-5.: Comparación No. 3 del observador GPI con multitasa de muestreo.
0.8
Magnitude
0.6
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7
Time (sec)
⎧ 1 π
⎪ (1 − sin (2πkTs + ))
⎪
⎪ kTs < 0.5 s
m(k) = ⎨ 2 2 (5-5)
⎪
⎩1 kTs ≥ 0.5 s
⎪
⎪
L Kt Kb Kt
Tδ (t) + Ṫδ (t) = ν(t) − δ̇(t). (5-6)
R R R
el subsistema de dirección:
κKt ˜ κKb Kt κL
en donde, κ̃ = y ξ2 (t) = ξ2 (t) − δ̇(t) − Ṫδ (t).
R R R
Ahora, la entrada de control es el voltaje ν(t) aplicado al motor DC, y en ξ˜2 (t)
se agrupan con la función de perturbación ξ2 (t), los términos que aparecen por la
dinámica del motor. El observador GPI extendido implementado para estimar ξ2 (t),
tiene el mismo diseño de las simulaciones, con los mismos valores para el vector de
ganancias F = [℘5 ℘4 ℘3 ℘2 ℘1 ℘0 ]T . También, las ganancias K2 y K3 de la ley
de control, tienen los mismos valores que se asignaron en las simulaciones.
2
Forward speed (m/s)
1.5
0.5
0
0 5 10 15 20 25 30 35
Time (sec)
La evolución del ángulo de inclinación ϕ(k) puede observarse en la Fig. 5-8, la cual,
muestra que las estrategias de control basadas en observador GPI, que constituyen al
control de inclinación, son capaces de balancear la bicicleta, manteniéndola cercanamente
en su posición vertical.
10
Lean output ϕk
-5
-10
0 5 10 15 20 25 30 35
Time (sec)
40
Steering output δk
30 Steering reference δ k
10
Angle (deg)
-10
-20
-30
-40
0 5 10 15 20 25 30 35
Time (sec)
1
En el siguiente enlace: https://youtu.be/KvPPm2XlmdQ puede encontrarse un vı́deo que muestra una
de las pruebas experimentales.
6. Conclusiones y recomendaciones
6.1. Conclusiones
Luego de observar el comportamiento del prototipo en movimiento, podrı́a concluirse que
el modelo matemático formulado para expresar su dinámica y el modelo virtual desarro-
llado en ADAMS, pueden utilizarse como herramientas para plantear alguna estrategia
de control sobre este sistema, y de acuerdo al desempeño ante las perturbaciones e incer-
tidumbres que se observen en estas simulaciones, logrará satisfactoriamente estabilizar la
bicicleta real en su posición vertical. El prototipo al igual que su modelo, es un sistema
lineal inestable y de parámetros variantes (LPV), dependientes de la velocidad de avance.
Entonces, la bicicleta puede definirse como una planta retante en el área de sistemas de
control, y su estabilización será un punto de partida para la creación de robots autónomos
de dos ruedas.
En general, la estrategia de control basada en observador GPI que se propuso en este tra-
bajo, mostró mediante las simulaciones y los resultados experimentales, su contundencia
a la solución del problema de estabilización de la bicicleta, con un desempeño superior a
otras estrategias de control que también se implementaron, las cuales fueron, PID, com-
pensador en atraso, compensador en adelanto y realimentación por variables de estado.
Aunque el controlador estabilizador es capaz de generar una referencia apropiada para
balancear la inclinación, tiene sus limitaciones debido a que está basado en el modelo sim-
plificado de segundo orden. Para mejorar los resultados, podrı́a diseñarse un controlador
estabilizador con alguna otra estrategia para sistemas no lineales, basándose en el modelo
LPV de cuarto orden que se obtuvo a partir de las ecuaciones linealizadas del movimiento
de la bicicleta.
6.2. Recomendaciones
Para futuras investigaciones de control, que tengan como objetivo principal mejorar la
estabilidad de este sistema, se entregan a continuación varias recomendaciones que se
originan de toda la experiencia adquirida con esta investigación:
1. Los elementos más pesados que están fijados al marco trasero de la bicicleta, deberán
reacomodarse, situándolos en alguna otra posición que disminuya la altura del centro
de masa con respecto al suelo y su desplazamiento lateral con respecto al plano
longitudinal vertical.
4. La tarjeta ChipKit WF32 deberá ser reemplazada por otra de mayor velocidad de
procesamiento de datos, para que pueda comunicarse con el sensor de orientación,
calcular los ángulos de Euler (Pitch, Roll y Yaw) y almacenar las variables de la
planta con una frecuencia de muestreo superior a 1KHz.
5. Deberá reemplazarse el potenciómetro por algún otro sensor, que permita medir la
posición angular de la dirección de la bicicleta, con una mayor resolución y mı́nima
contaminación de ruido en la señal de salida.
x1 k
uk Tracking x2 k
Differentiator
x3 k
En la Fig. A-1, se muestra un tracking differentiator de tercer orden con u como la señal
de entrada y x1 , x2 y x3 como sus tres señales de salida, en donde, x1 sigue a u, x2 sigue
la señal diferencial de primer orden de u, y x3 sigue la señal diferencial de segundo orden
de u. En [63], está constituido este tracking differentiator por el siguiente algoritmo en
tiempo discreto:
⎧
⎪x1 (k + 1) = x1 (k) + T x2 (k),
⎪
⎪
⎪
⎪
⎨x2 (k + 1) = x2 (k) + T f (x1 (k), x2 (k), u(k), r, h) , (A-1)
⎪
⎪
⎪
⎪
⎩x3 (k + 1) = f (x1 (k), x2 (k), u(k), r, h) ,
⎪
Las estrategias ADRC pueden hacer uso de las caracterı́sticas de seguimiento y extracción
de las señales diferenciales proporcionadas por el tracking differentiator, lográndose un
margen de estabilidad más amplio en el sistema de control, debido a los efectos de filtrado
y disminución de sobrepicos que se generan cuando hay variaciones considerablemente
fuertes en la señal de referencia de entrada.
B. Anexo: Control de Respuesta Transitoria
mediante Asignación de Relaciones
Caracterı́sticas
Una buena respuesta transitoria, es uno de los más importantes requerimientos impuestos
hacia cualquier sistema de control, en donde sus polos de lazo cerrado, localizados según
los coeficientes del polinomio caracterı́stico del error de seguimiento, están fuertemente
relacionados con su respuesta en el tiempo. Es por esto, que el control de respuesta transi-
toria por medio de asignación de relaciones caracterı́sticas, es una metodologı́a propuesta
por Kim, Keel y Bhattacharyya en [64], para lograr mediante una adecuada ubicación de
polos, las especificaciones deseadas en la respuesta transitoria de algún sistema de control
lineal e invariante en el tiempo (LTI).
α1 > 2; (B-1)
πk π
sin ( ) + sin ( )
αk = n n , k = 2, 3, . . . , (n − 1) , (B-2)
πk
2 sin ( )
n
Estas dos condiciones, muestran como construir una función de transferencia G(s) con
todos los polos estables, cuya función de magnitud ∣G(jw)∣ en el dominio de la frecuencia,
decrece monótonamente. La metodologı́a de construcción, consiste solamente en ajustar
el simple parámetro α1 , teniendo en cuenta que se requiere que α1 > 2. La constante ge-
neralizada de tiempo τ , puede seleccionarse independientemente de αi , ası́ los coeficientes
del polinomio caracterı́stico, son calculados para un arbitrario a0 y τ con las siguientes
110 B Anexo: Asignación de Relaciones Caracterı́sticas
ecuaciones:
En los sistemas realimentados, los controladores que pueden implementarse en una planta
arbitraria, utilizando realimentación de estado, o la configuración del controlador de dos
parámetros, tienen las siguientes caracterı́sticas:
3. Los ceros de fase no mı́nima de la planta, pueden ser cancelados por el controlador
“feedforward ”.
Es por esto, que especialmente, para las plantas con estos controladores implementados
y bajo condiciones iniciales igual a cero, las especificaciones de respuesta transitoria ob-
tenidas mediante el ajuste de α1 y τ , pueden construirse por el controlador. A esto se le
llama, el método de asignación de relaciones caracterı́sticas (CRA).
C. Anexo: Modelamiento de los Actuadores
del Prototipo
Como se explicó en el Capı́tulo 3, la bicicleta posee dos subsistemas (tracción y dirección),
y en cada uno de ellos se genera un movimiento rotativo por medio de un actuador
independiente. En esta aplicación, se optó por ensamblar motores DC en cada subsistema
por la facilidad de implementar cualquier estrategia de control sobre ellos. A continuación,
se presenta el modelo matemático para cada actuador, utilizados para diseñar la estrategia
de control de cada subsistema.
1.5
Measured output
Simulated model output
1
Forward speed (m/s)
0.5
0
0 2 4 6 8 10 12 14 16 18 20
Time (sec)
Fig. C-1.: Dinámica utilizada para modelar el motor DC del subsistema de tracción. La gráfica
de color rojo, corresponde a la velocidad lineal de avance, aplicando un voltaje constante de
24 V al motor. La gráfica de color azul, es la salida del modelo con el mismo valor constante
de voltaje aplicado en la entrada.
L − T [ln (1 −
1.0626
1.3088
)] = 1.1, O1
O2
(C-4)
1.0626
L − T [ln (1 − )] = 0.9,
1.3088
en donde se obtiene como resultado, L = 0.8625 s y T = Tar − L = 0.1101 s. Entonces,
la función de transferencia que se aproxima a la respuesta de velocidad lineal, queda
expresada ası́:
1.3088e−0.8625s
G(s) = . (C-5)
11.01s + 100
La gráfica de color azul de la Fig. C-1, es la salida del modelo aproximado (C-5), con el
mismo valor constante ( %PWM(t) = 100), aplicado en la entrada.
K Ls
100 e
%PWM(t) v t
Ts 1
puesto que para este subsistema, se planteó una estrategia de control clásica que regulará
la velocidad, permitiendo el seguimiento de perfiles suaves de referencia.
Kb
1. El eje del motor fue bloqueado, convirtiendo este sistema en un circuito sencillo RL,
en donde la corriente tiene una dinámica que puede aproximarse por una ecuación
diferencial lineal de primer orden, cuando es aplicado un voltaje constante en sus
terminales de alimentación. En la gráfica de color rojo de la Fig. C-5, se muestra
114 C Anexo: Modelamiento de los Actuadores del Prototipo
4
Voltage (V)
0
0 2 4 6 8 10 12 14 16 18 20
Time (sec)
3
Measured output
Simulated model output
2.5
1.5
Current (A)
0.5
-0.5
0 2 4 6 8 10 12 14 16 18 20
Time (sec)
Fig. C-5.: Corriente medida y salida simulada de la función de transferencia de primer orden
V (s), ante un perfil de voltaje aplicado al motor de dirección.
C.2 Modelamiento del Motor DC del Subsistema de Dirección 115
cuya salida, se muestra en la gráfica de color azul de la Fig. C-5, ante la misma
entrada de voltaje. Esta función de transferencia, corresponde sólo a una parte del
diagrama de bloques del modelo completo.
ν t 1 it
Ls R
2. El par generado por el motor, depende de la corriente circulando entre las bobinas
del rotor. Es por esto, que la constante de par es una ganancia que relaciona estas
dos variables. Esta constante, pudo calcularse mediante el procedimiento mostrado
en la Fig. C-7, en donde, es ensamblado un brazo de longitud l = 0.4 m, con un peso
ω = 0.954 Kg en su extremo.
En la Tabla C-1, están los valores de par que entrega el motor y la corriente que
fluye por el rotor, cuando se le aplica voltaje en la entrada para ubicar el brazo en
diferentes posiciones angulares, tomando su posición vertical como 0 rad. A partir
de los valores de la tabla, la constante de par Kt , se obtiene calculando el promedio
de Ktk , dando como resultado,
Kt = mean(Ktk ) = 1.4718,
k Ángulo αk [rad] Corriente ik [A] Par Tδk = ωgl sin(αk ) [Nm] Constante Ktk = Tδk /ik
1 0.938325 2.10 3.03015 1.44293
2 0.511025 1.35 1.83736 1.36101
3 0.822850 1.85 2.75409 1.48870
4 0.487925 1.16 1.76118 1.51826
5 0.959975 2.12 3.07752 1.45166
6 0.490800 1.32 1.77072 1.34145
7 0.793975 1.49 2.67917 1.79810
8 0.528350 1.38 1.89386 1.37236
0.5
Angle (rad)
-0.5
-1
5 10 15 20 25 30 35
Time (sec)
La herramienta “ident” de MATLAB, fue utilizada para realizar los cálculos ma-
temáticos que encuentra los parámetros restantes del modelo de la Fig. C-3, los
cuales, están consignados en la Tabla C-2. Para estos valores, el modelo adquiere
un parentesco del 81.8 % con respecto a la respuesta real. En la Fig. C-10, se mues-
tra de color negro, la salida real de posición angular medida desde el potenciómetro
C.2 Modelamiento del Motor DC del Subsistema de Dirección 117
interno que posee el motor, y de azul, la salida simulada del modelo con la acción de
control proporcional, el cual, presenta la siguiente función de transferencia de lazo
cerrado:
K
T (s) = . (C-8)
IL BL + IR 2 BR Kb
s3 + s +( + )s + 1
Kt Kp Kpwm Kt Kp Kpwm Kt Kp Kpwm Kp Kpwm
1.5
0.5
Angle (rad)
-0.5
-1
-1.5
5 10 15 20 25 30 35
Time (sec)
Fig. C-9.: Salida de posición angular del motor DC de dirección, con la acción de control
proporcional y la señal pseudo-aleatoria como referencia.
Esta función de transferencia, fue calculada sin tener en cuenta el par de carga o
de perturbación Td (t), el cual, se opone al movimiento rotativo del eje del motor.
Asumiendo que la dinámica del motor DC acoplado al subsistema de dirección, es
lineal y se rige por el modelo de la Fig. C-3, entonces, el par de perturbación puede
118 C Anexo: Modelamiento de los Actuadores del Prototipo
0.5
Angle (rad)
-0.5
-1
-1.5
5 10 15 20 25 30 35
Time (sec)
Fig. C-10.: Salida de posición angular medida del motor DC, graficada conjuntamente con
la salida simulada de su modelo.
definirse como una señal de entrada que concentra las dinámicas fı́sicas del mundo
real que se anteponen al movimiento del motor, ya sean lineales y/o no lineales.
Es por esto, que puede plantearse una estrategia de control sobre el motor, que
permita un seguimiento robusto de alguna referencia de posición angular, mediante
una metodologı́a que rechace en lı́nea ese par de perturbación.
D. Anexo: Circuitos Eléctricos y
Electrónicos Diseñados
5V(C)-->
IC2
7805T
1 3
VI VO IN OUT 3.3V(C)-->
+7.4V GND GND
C6
2
C5 C4 C7 IC3
+
78L33
0.22 j63 100nF 100nF 0.1uF
GND2
IC1
7805T
1 3
VI VO 5V(P)-->
+24V GND
C1
2
C2 C3
+
GND1
Estos dos circuitos reguladores, aunque son básicos y comúnmente bastante usados, son
esenciales en la instrumentación para alimentar de forma independiente los circuitos lógi-
cos, sensores y demás dispositivos de baja potencia, de los actuadores los cuales requieren
una mayor potencia eléctrica.
El primer esquema de la Fig.D-1, es alimentado por la baterı́a de baja potencia que provee
7.4 V en su carga máxima. Con este voltaje, se regulan dos salidas de alimentación de 5 V
y 3.3 V, para energizar los sensores, circuitos digitales y analógicos que acondicionan las
señales de entrada hacia las tarjetas eZDSP F28335 y ChipKit WF32, que son también
energizadas con estos reguladores.
1N4004
+24V
5V(P)-->
1
D1
C12
320K
+
R10
MOTOR DC
J1
10uF
10K
GPIO0_EPWM1A OK1 R1
2 8 Q1
PWM_1--> IC5D IRF540
7
6
R11 1 2
3 5
10
74LS14N
6N137 C13
1K
R12
22pF
GND2
GND1
Como se observa en la Fig. D-2, el circuito diseñado tiene dos alimentaciones, 24 V prove-
nientes de la baterı́a que energiza los actuadores y 5 V salientes del regulador energizado
con esta misma baterı́a. El movimiento del motor DC resulta por la conmutación que
realiza el Mosfet IRF540, a causa de la señal PWM, que es impuesta en la compuerta
(Gate) de este semiconductor.
La señal PWM es generada por el eZDSP, a través de su salida GPIO0 EPWM1A. Todas
las salidas de este dispositivo fueron aisladas de la circuiterı́a de potencia, opto-acoplándo-
las a través del integrado 6N137, que fue seleccionado porque maneja una velocidad de tra-
bajo de hasta 10 Mbits/seg. Además, con la ayuda del inversor Schmitt Trigger 74LS14N,
se corrige la distorsión en los flancos de subida y bajada y se atenúa el ruido y los picos
de voltaje que se producen en la señal PWM saliente del integrado opto-acoplador.
40106N
R2 R3 R4 R5
WHITE 1K 1K 1K 1K
BROWN 5V(C)<--
R6
1K
BLUE
1
GND2
GPIO79
PULSE-->
1
5V(P)-->
GPIO4_EPWM3A
PWM_2--> OK3
5.1K
R14
2 8
7 IC5E PWM
6
R15 3 4 DIR
3 5 GND1
10
74LS14N
H BRIDGE
J3
6N137
OK2 C14
2.2K
R13
R8
2 8
1K
7 22pF IC5B
6
R9 11 10
3 5
10
74LS14N
6N137 C8
22pF
R7
1K
GND2 GND1
El circuito Pre-Driver de la Fig. D-4, tiene dos opto-acopladores 6N137 con el objetivo
de independizar eléctricamente, las salidas GPIO79 y GPIO4 EPWM3A del voltaje que
entrega la potencia para darle movimiento al motor DC de Hitec y energizar median-
te un regulador, el circuito de control de su Driver (H Bridge). Los canales GPIO79 y
GPIO4 EPWM3A, son salidas digitales provenientes del eZDSP. La primera salida cam-
bia de estado (0/5 V) dependiendo del sentido de giro que se requiere en el Motor; y la
segunda, genera la variación del voltaje de alimentación del motor, por medio del módulo
PWM que posee este canal.
La segunda parte del circuito (Saturator ), es un saturador cuyo objetivo es impedir que el
voltaje de la señal del sensor de corriente, sobrepase los valores máximos en las entradas
análogas del eZDSP. Los dos elementos principales de este circuito, son los diodos de
Germanio 1N60. Estos diodos se activan con un voltaje más bajo que los convencionales
de Silicio, aproximadamente a 0.35 V y su función en este diseño es activarse cuando la
señal del sensor alcanza 3.35 V ó -0.35 V, permitiendo que la corriente circule por alguno
de estos diodos y no por el eZDSP.
1K
R22
5V(C)-->
D2
1N60
1
7
100 100 3 IC7
R24 ADCINA1(EZDSP)
6
R16 R17 OUT-->
2
1
J4
TLV2770
4
D4
1N60
10K
R23
C16
R18
1K
R20
10K
R21
10K
R19
1K
S22P006S05
100nF
7
C15 TLV2770
4
Operator
0.47uF
GND2 Filter
D.5 Circuito de Acondicionamiento de Señal para el Sensor S22P006S05
Bode Diagram
-10
-20
-30
Magnitude (dB)
-40
-50
-60
-70
-80
-90
-100
0
-45
Phase (deg)
-90
-135
-180
-2 -1 0 1 2 3
10 10 10 10 10 10
Frequency (kHz)
Fig. D-6.: Diagrama de bode del filtro Sallen and Key de segundo orden.
A parte de los circuitos anteriores, hay otras conexiones adicionales que necesariamente
tienen que ser nombradas, debido a que hacen parte importante de la lógica y control del
sistema. Estas conexiones son las siguientes:
(A0)-->
CHIPKIT ANALOG INPUT
(ADNA0)-->
POTENTIOMETER
3.3V(C)<--
J5
GND2
RIGHT
LEFT
3.3V(C)<--
YEI 3-Space
(39)--< Sensor
CHIPKIT UART4 INPUT (RX) TXD
(40)--> RXD
CHIPKIT UART4 OUTPUT (TX)
1
1
GND2
S22P1
1 6
IN-1 OUT-1
IF+ 2 5 IF-
IF+ IN-2 OUT-2
3 4
IF- IN-3 OUT-3
VOUT
GND
+5V
S22P006S05
9
8
7
SIGNAL
10K
R27
GND_2
5VC
1
Ver: http://www.tamuracorp.com/.
E. Anexo: Programación en MPIDE para la
tarjeta ChipKit WF32
/* This Sketch was developed for the proyect [Autonomous bicycle], wherein the chipkit WF32 card
is comunicated with YEI 3-SPace sensor by an asynchronous serial interfacing, through the
[UART 4] module of the card. The YEI 3-Space sensor sends constantly to the chipkit WF32,
its attitude as orientation matrix with an update rate of 250 Hz.
This program also enables the ADC modules of WF32 to measure the analog signals of angular
position and internal current of Hitec servomotor. This current is proportional to the
torque applied to the handlebar. The digital inputs are configured to capture the period
of encoder quadrature signal and PWM signals, with which the bicycle forward speed and reference
angular position of steering subsystem are measured.
In a function of this program, the orientation matrix is converted to Euler angles (Roll,
Pitch and Yaw) and one of them, which corresponds to the bicycle lean angle, is transformed
to a PWM output signal, and sent to the ezDSP F28335 card. The DSP has the lean control system
embedded.
The acquired measures for WF32 card, are sorted in a data vector and stored in a microSD card.
*/
// Creating a file:
File baqumau;
void setup(){
//---------------------------------------------------------------------
// Configuring digital inputs and outputs:
pinMode(pin6,OUTPUT); // Configuring pin 6 as output.
pinMode(pin9,OUTPUT); // Configuring pin 9 as output.
pinMode(pin35,INPUT); // Configuring pin 35 as input.
pinMode(pin36,INPUT); // Configuring pin 36 as input.
//---------------------------------------------------------------------
// Configuring PWMs [Output Compare Module]:
OC3CON = 0x0000; // Turn off the OC3 when performing the setup.
OC4CON = 0x0000; // Turn off the OC4 when performing the setup.
T2CON = 0x0; // Stop timer 2 and clear control register.
T4CON = 0x0; // Stop timer 4 and clear control register.
OC3R = 5000; // Initialize OC3 primary Compare register.
OC3RS = 5000; // Initialize OC3 secondary Compare register.
OC4R = 5000; // Initialize OC4 primary Compare register.
OC4RS = 5000; // Initialize OC4 secondary Compare register.
OC3CON = 0x0006; // Configure OC3 for PWM mode without Fault pin enabled.
OC4CON = 0x0006; // Configure OC4 for PWM mode without Fault pin enabled.
T2CONSET = 0x0008; // Enable 32-bit Timer 2 mode.
T4CONSET = 0x0008; // Enable 32-bit Timer 4 mode.
PR2 = 10000; // Set Timer 2 period.
PR4 = 0xFFFFFFFF; // Set Timer 4 period.
// Enabling Timer 2, OC3 and OC4:
T2CONSET = 0x8000; // Enable Timer 2.
OC3CONSET = 0x8020; // Enable OC3 in 32-bit mode.
OC4CONSET = 0x8020; // Enable OC4 in 32-bit mode.
//---------------------------------------------------------------------
// Configuring serial ports (UARTs):
Serial.begin(115200); // Enable serial port No. 1.
Serial1.begin(921600); // Enable serial port No. 4.
init_cbuff(); // Clear buffer.
//---------------------------------------------------------------------
// Configuring SD Card:
Serial.print("\nInitializing SD card...");
// Make sure the default chip select pin is set to so that
// shields that have a device that use the default CS pin
// that are connected to the SPI bus do not hold drive bus.
pinMode(chipSelect_SD_default, OUTPUT);
129
digitalWrite(chipSelect_SD_default, HIGH);
pinMode(chipSelect_SD, OUTPUT);
digitalWrite(chipSelect_SD, HIGH);
// we’ll use the initialization code from the utility libraries
// since we’re just testing if the card is working!
if (!SD.begin(chipSelect_SD)) {
Serial.println("initialization failed. Things to check:");
Serial.println("* is a card is inserted?");
Serial.println("* Is your wiring correct?");
Serial.println("* did you change the chipSelect pin to match your shield or module?");
return;
}
else{
Serial.println("Wiring is correct and a card is present.");
}
// delete the file:
Serial.println("Removing BicyUNAL.txt...");
SD.remove("BicyUNAL.txt");
Serial.println("Done...");
// open a new file and immediately close it:
Serial.println("Creating BicyUNAL.txt...");
baqumau = SD.open("BicyUNAL.txt", FILE_WRITE);
baqumau.close();
Serial.println("Done...");
//---------------------------------------------------------------------
// Configuring YEI 3-Space sensor:
Serial.print("\nInitializing YEI 3-Space Sensor...");
// Configuring baud rate YEI 3-Space sensor:
Serial1.println(":231,921600\n\r");
Serial.println("Done...");
// Read the tared orientation matrix from YEI 3-Space sensor:
Serial1.println(":2\n\r"); // Read the tared orientation matrix.
//---------------------------------------------------------------------
baqumau = SD.open("BicyUNAL.txt", FILE_WRITE); // Open the file for start to write.
T4CONSET = 0x8000; // Enable Timer 4.
Serial1.println(":238,0.0,0.0,1.0\n\r"); // The YEI 3-Space led is settled to blue.
delayMicroseconds(20); // 20 microseconds delay.
}
// initializing buffer:
void init_cbuff(void){
int i;
flagcommand=0;
for(i = 0; i < buffer; i++){ // Bucle that set to 0 all
chain[i]=0x00; // characters in buffer.
}
Ibuff=0x00; // initialize the index.
}
chain[Ibuff++]=c;
}
}
//---------------------------------------------------------------------
// Changing character string to floating numbers:
void string2float(){
int i=0;
int j=0; int r=0; int s=0; int t=0; int u=0;
int v=0; int w=0; int x=0; int y=0; int z=0;
// separating received data from YEI sensor:
for(i=0;i<Ibuff;i++){
if(chain[i]==’,’){
j++;
}
else if(chain[i]!=’,’ && j==0){
datoO[r++]=chain[i];
}
else if(chain[i]!=’,’ && j==1){
datoP[s++]=chain[i];
}
else if(chain[i]!=’,’ && j==2){
datoQ[t++]=chain[i];
}
else if(chain[i]!=’,’ && j==3){
datoR[u++]=chain[i];
}
else if(chain[i]!=’,’ && j==4){
datoS[v++]=chain[i];
131
}
else if(chain[i]!=’,’ && j==5){
datoT[w++]=chain[i];
}
else if(chain[i]!=’,’ && j==6){
datoU[x++]=chain[i];
}
else if(chain[i]!=’,’ && j==7){
datoV[y++]=chain[i];
}
else if(chain[i]!=’,’ && j==8){
datoW[z++]=chain[i];
}
else{
delayMicroseconds(1); // 1 microsecond delay.
}
}
// Saving the orientation matrix values to a floating number matrix.
Rot[0][0]=atof(datoO); // Save the orientation matrix value (1x1).
Rot[0][1]=atof(datoP); // Save the orientation matrix value (1x2).
Rot[0][2]=atof(datoQ); // Save the orientation matrix value (1x3).
Rot[1][0]=atof(datoR); // Save the orientation matrix value (2x1).
Rot[1][1]=atof(datoS); // Save the orientation matrix value (2x2).
Rot[1][2]=atof(datoT); // Save the orientation matrix value (2x3).
Rot[2][0]=atof(datoU); // Save the orientation matrix value (3x1).
Rot[2][1]=atof(datoV); // Save the orientation matrix value (3x2).
Rot[2][2]=atof(datoW); // Save the orientation matrix value (3x3).
tr2rpy();
angle_x=angle_x+((88.0*M_PI)/180); // Correction for the rotation angle about X axis.
PWM_1(angle_x); // Update PWM duty cycle.
angle_x=(angle_x*180)/M_PI;
angle_y=(angle_y*180)/M_PI;
angle_z=(angle_z*180)/M_PI;
}
int adc=0;
float Value;
//-----------------------------------------
adc=analogRead(A1); // Read analog signal from pin A1.
Value=((adc*3.3)/1023.0); // Calculate equivalent voltage from reading.
// Lookout Table:
if(Value<=(2.390137-1.013)){
Current=((-1.0+1.25)/((2.390137-1.013)-(2.365723-1.013)))*(Value-(2.365723-1.013))-1.25;
}
else if(Value>(2.390137-1.013) && Value<=(2.416992-1.013)){
Current=((-0.75+1.0)/((2.416992-1.013)-(2.390137-1.013)))*(Value-(2.390137-1.013))-1.0;
}
else if(Value>(2.416992-1.013) && Value<=(2.443848-1.013)){
Current=((-0.5+0.75)/((2.443848-1.013)-(2.416992-1.013)))*(Value-(2.416992-1.013))-0.75;
}
else if(Value>(2.443848-1.013) && Value<=(2.468262-1.013)){
Current=((-0.25+0.5)/((2.468262-1.013)-(2.443848-1.013)))*(Value-(2.443848-1.013))-0.5;
}
else if(Value>(2.468262-1.013) && Value<=(2.495117-1.013)){
Current=((0.25)/((2.495117-1.013)-(2.468262-1.013)))*(Value-(2.468262-1.013))-0.25;
}
else if(Value>(2.495117-1.013) && Value<=(2.521973-1.013)){
Current=((0.25)/((2.521973-1.013)-(2.495117-1.013)))*(Value-(2.495117-1.013));
}
else if(Value>(2.521973-1.013) && Value<=(2.546387-1.013)){
Current=((0.25)/((2.546387-1.013)-(2.521973-1.013)))*(Value-(2.521973-1.013))+0.25;
}
else if(Value>(2.546387-1.013) && Value<=(2.573242-1.013)){
Current=((0.75-0.5)/((2.573242-1.013)-(2.546387-1.013)))*(Value-(2.546387-1.013))+0.5;
}
else if(Value>(2.573242-1.013) && Value<=(2.600098-1.013)){
Current=((1.0-0.75)/((2.600098-1.013)-(2.573242-1.013)))*(Value-(2.573242-1.013))+0.75;
}
else{
Current=((1.25-1.0)/((2.624512-1.013)-(2.600098-1.013)))*(Value-(2.600098-1.013))+1.0;
}
}
}
}
// main function:
void loop(){
char cmd[buffer];
while(Serial1.available() > 0){
caracter = 0x00;
caracter = Serial1.read(); // Last received character.
add_2_cbuff(caracter); // Add character to buffer.
}
if(flagcommand==1){
string2float(); // Call string2float() function.
Cap_Encoder(); // Call Cap_Encoder() function.
HandleBar_Position(); // Call HandleBar_Position() function.
HITEC_Current(); // Call HITEC_Current() function.
Ref_Position(); // Call Ref_Position() function.
Writting2SD(); // Call Writting2SD() function.
// --------------------------------------------------------
init_cbuff(); // Clear buffer.
delayMicroseconds(40); // 40 microseconds delay.
Serial1.println(":2\n\r"); // Read tared orientation matrix from YEI 3-Space sensor.
}
}
F. Anexo: Programación en Simulink para la
tarjeta eZDSP F28335
100
Potentiometer
A 3.045/4096 Rad Fz2 [SA]
Degrees Radians 50e3
Filter 2
ADC
Period ePWM 4
ADC pi/2 1
C280x/C2833x
T
[LA] Lean Angle
[Ux] [R] 1/pi 50e3 WA
Control Signal
ePWM
Reference
[SA] ePWM 4
Steering Angle
C28x3x
>= 0 GPIOx
GPIO DO
== 0
C280x/C28x3x Digital Output 1
0
~= 0 ((35)/2)/1000 Fz1 [FS]
TS 1/2 m
Forward Speed [m/s]
Filter 1
rad/sec
eCAP
eCAP 1 Forward Speed Radius
(2*pi)/1024
15000
Period ePWM 1
50e3
Period ePWM 2
F28335 eZdsp
C280x/C2833x
T
[FS] 50e3/6
Info Completed Control System
WA
ePWM
1/2
1 120 1
e(t) u(t)
Kp
K Ts (z+1)
50
2(z-1)
Ki
Discrete-Time
Integrator
1/z 4/(sqrt(50/120))
Ka=4/(sqrt(Ki/Kp))
K0
0
PE Input Output K0
Equillibrium Point
Clutch 4 Lean Control Law
[SAe]
[Ux]
1/z y(n)=Cx(n)+Du(n) [dSAe] [X3] Input Output
2 x(n+1)=Ax(n)+Bu(n)
Steering Angle GPI Extended Observer [Z] Clutch 2
[dSAe] 1/Kappb 1
X3 [X3] Control Signal
Tracking Differentiator [X1] K3
Lean Angle [R] 2
1 Steering Reference
[C] >= 4 [SAe]
Input Output [LA]
0 [Z] Input Output
Clutch 3
Clutch 1
3 [C] Steering Control Law
Clock
[X1] [X1] 1
y(n)=Cx(n)+Du(n) X1
[fst] [X2]
x(n+1)=Ax(n)+Bu(n) [X2] 2
[X3] X2
State Space System
[X3] 3
X3
[X1]
1 [Y]
Reference
[X2] h
d^2
[X2]
[Y] [Y] |u| > 0.05 [a]
[a0] 1/2
d [X2]
[Y] 1/h
r/d
12:34
>= 0.5
1
1 1/2
Output
1
Input
Todos los valores numéricos requeridos por el sistema de control del Anexo F programado
en MATLAB/Simulink, fueron calculados mediante el siguiente programa desarrollado
con el código básico de MATLAB:
clc, clear
%--------------------------------------------------------------------------------------------
%% Basic Parameters:
CPU_Clock=150e6;
Cycle_Clock=75e6;
m=1/Cycle_Clock; % Constant to determine PWM signal period.
Ts=1/250; % Sample time 1.
Ts2=1/1000; % Sample time 2.
Ts3=1/3000; % Sample time 3.
Rad=pi/180; % Transformation from degrees to radians.
cc=ticcs; % Communication with Code Composer Studio.
open ALLinONE10_StandAlone.mdl % Embedded control system.
%--------------------------------------------------------------------------------------------
%% Second Order Model [Bicycle Dynamics and Control --- By Karl J. Åström]:
% Whole Bicycle [Rigid Body with 90º in head angle]:
Rrw=.6482150285/2; % [m] -- Rear wheel radius.
mt=18.968374; % Whole bicycle mass.
J=7.081342; % [kg.m^2] -- Whole bicycle mass moments of inertia.
D=5.464983; % [kg.m^2] -- The inertia product of whole bicycle with respect to the XZ axes.
h=.555968251; % [m] -- COG height.
a=.49373; % [m] -- Horizontal distance from (x,y,z) to COG.
c=.06183078; % [m] -- Trail.
lambda=deg2rad(74.09854); % [rad] -- Steering axis angle with respect to the horizontal.
g=9.80665; % [m/s^2] -- Gravity.
b=1.06016; % Wheel Base [m]
Ab=D/(J*b); Bb=(mt*h)/(J*b); Cb=(mt*g*h)/J;
Off=0;
% If V(t)=1.5 m/s, then:
V=1.5;
Tls=tf([Ab*V Bb*(V^2)],[1 0 -Cb]); % Simple transfer function Lean Vs Steering.
%--------------------------------------------------------------------------------------------
% GPI Observer Based Control:
Rho=4.5;
Ae=[0 1 0;0 0 1;0 0 0];
Ce=[1 0 0];
[PolE,PolosE]=charatioass(3,.1,20,3.1);
Le=place(Ae’,Ce’,PolosE);
Q=diag([110 110 1000000]’);
R=0.05;
Lx=lqr(Ae’,Ce’,Q,R);
Ae=Ae-(Le’*Ce);
Be=[Le’ [0 Rho 0]’];
Ce=eye(3);
De=zeros(3,2);
GPIs=ss(Ae,Be,Ce,De);
140 G Anexo: Programación complementaria en MATLAB
GPIz=c2d(GPIs,Ts,’tustin’);
Hs=tf(1,[Ab*V Bb*(V^2)]);
Hz=c2d(Hs,Ts,’tustin’);
% -----------------------------------
% Control Law:
[PolC,PolosC]=charatioass(2,.5,20,4.5);
K1=PolC(1,2); K0=PolC(1,3); K2=1;
%--------------------------------------------------------------------------------------------
%% Steering DC Motor parameters:
B=0.4951; I=0.0473; K=1.1368;
Kb=3.7532; Kp=120; Kpwm=12.8/100;
Kt=1.4718; L=0.0132; R=2.2857;
%--------------------------------------------------------------------------------------------
%% Linearized Equations of Motion proposed by A. L. Schwab, Ruina y Papadopoulos.
%[Linearized dynamics equations for the balance and steer of a bicycle: a benchmark and review].
%--------------------------------------------------------------------------------------------
%Rear Whell:
syms Rrw real; % Radius.
syms mrw real; % Mass.
syms Axx Ayy Azz real; % Mass moments of inertia.
%--------------------------------------------------------------------------------------------
%Front Whell:
syms Rfw real; % Radius.
syms mfw real; % Mass.
syms Dxx Dyy Dzz Dxz real; % Mass moments of inertia.
%--------------------------------------------------------------------------------------------
%Front Frame:
syms mff real; % Mass.
syms Xff Yff Zff real; % Position centre of mass.
syms Cxx Cyy Czz Cxz real; % Mass moments of inertia.
%--------------------------------------------------------------------------------------------
%Rear Frame:
syms mrf real; % Mass.
syms Xrf Yrf Zrf real; % Position centre of mass.
syms Bxx Byy Bzz Bxz real; % Mass moments of inertia.
%--------------------------------------------------------------------------------------------
%Whole Bicycle:
syms mt real; % Mass.
syms Xt Zt real; % Position centre of mass.
syms Txx Tyy Tzz Txz real; % Mass moments of inertia.
%--------------------------------------------------------------------------------------------
%Front Assembly [Handlebar + Front fork + Front wheel]:
syms mf real; % Mass.
syms Xf Zf real; % Position centre of mass.
syms Fxx Fyy Fzz Fxz real; % Mass moments of inertia.
%--------------------------------------------------------------------------------------------
syms lambda real; % Steering axis angle with respect to the horizontal.
syms w real; % Wheel Base.
syms t real; % Trail.
syms alpha real; % Head angle.
syms g real; % Gravity.
syms v real; % Forward speed.
%--------------------------------------------------------------------------------------------
% Algorithm to obtain the Linearized Equations of Motion:
% Perpendicular distance that the centre of mass of the front assembly is ahead of
% the steering axis:
u=((Xf-w-t)*cos(lambda))-(Zf*sin(lambda));
%--------------------------------------------------------------------------------------------
% relevant mass moments and products of inertia along the steering axis and the global
% axes at points where they intersect:
F_lambda_lambda=(mf*(u^2))+(Fxx*(sin(lambda)^2))+(2*Fxz*sin(lambda)*cos(lambda))+...
(Fzz*(cos(lambda)^2));
141
F_lambda_x=-(mf*u*Zf)+(Fxx*sin(lambda))+(Fxz*cos(lambda));
F_lambda_z=(mf*u*Xf)+(Fxz*sin(lambda))+(Fzz*cos(lambda));
%--------------------------------------------------------------------------------------------
% Ratio of the mechanical trail to the wheelbase:
f=(t*cos(lambda))/w;
%--------------------------------------------------------------------------------------------
% Angular momentum along the y-axis divided by the forward speed for the rear and
% the front wheel:
Sr=Ayy/Rrw; Sf=Dyy/Rfw;
St=Sr+Sf;
%--------------------------------------------------------------------------------------------
% Appearing static moment
Su=(mf*u)+(f*mt*Xt);
%--------------------------------------------------------------------------------------------
% Elements of the mass matrix:
M11=Txx;
M12=F_lambda_x+(f*Txz);
M21=M12;
M22=F_lambda_lambda+(2*f*F_lambda_z)+((f^2)*Tzz);
%--------------------------------------------------------------------------------------------
% Velocity-independent elements of the stiffness matrix:
K011=g*mt*Zt;
K012=-g*Su;
K021=K012;
K022=-(g*Su*sin(lambda));
%--------------------------------------------------------------------------------------------
% Elements of the stiffness matrix:
K211=0;
K212=(St-(mt*Zt))*((cos(lambda))/w);
K221=0;
K222=(Su+(Sf*(sin(lambda))))*((cos(lambda))/w);
%--------------------------------------------------------------------------------------------
% Elements of the damping matrix:
C111=0;
C112=(f*St)+(Sf*(cos(lambda)))+(Txz*((cos(lambda))/w))-(f*mt*Zt);
C121=-((f*St)+(Sf*(cos(lambda))));
C122=(F_lambda_z*((cos(lambda))/w))+(f*(Su+(Tzz*((cos(lambda))/w))));
%--------------------------------------------------------------------------------------------
% Numerical obtaining of model:
%--------------------------------------------------------------------------------------------
lambda=deg2rad(15.90146); % [Rad].
w=1.06016; % [m].
t=.06183078; % [m].
alpha=(pi/2)-lambda; % [Rad].
g=9.8196; % [m/s^2].
%--------------------------------------------------------------------------------------------
%Rear Whell:
Rrw=0.648215/2; % [m].
mrw=2.607673; % [Kg].
% Principal mass moments of inertia:
I1rw=0.177086; I2rw=0.090107; I3rw=0.090107; % [Kg*m^2].
% Principal axes orientation:
Rbrw=[0.001270 0.999997 0.002224; 0.269280 -0.002484 0.963059; 0.963061 -0.000624 -0.269282]’;
IA=Rbrw*[I1rw 0 0; 0 I2rw 0; 0 0 I3rw]*Rbrw’;
% Mass moments of inertia:
Axx=IA(1,1); Ayy=IA(2,2); Azz=IA(3,3); % [Kg*m^2].
%--------------------------------------------------------------------------------------------
%Front Whell:
Rfw=0.648215/2; % [m].
mfw=2.051278; % [Kg].
% Principal mass moments of inertia:
I1fw=0.176558; I2fw=0.088559; I3fw=0.088559; % [Kg*m^2].
142 G Anexo: Programación complementaria en MATLAB
St=Sr+Sf;
%--------------------------------------------------------------------------------------------
Su=eval(Su);
%--------------------------------------------------------------------------------------------
M11=eval(M11);
M12=eval(M12);
M21=eval(M21);
M22=eval(M22);
M=[M11 M12;M21 M22];
%--------------------------------------------------------------------------------------------
K011=eval(K011);
K012=eval(K012);
K021=eval(K021);
K022=eval(K022);
Kx=[K011 K012;K021 K022];
%--------------------------------------------------------------------------------------------
K211=0;
K212=eval(K212);
K221=0;
K222=eval(K222);
Ky=[K211 K212;K221 K222];
%--------------------------------------------------------------------------------------------
C111=0;
C112=eval(C112);
C121=eval(C121);
C122=eval(C122);
Cx=[C111 C112;C121 C122];
%--------------------------------------------------------------------------------------------
% State space model:
% Matrix A:
A=[ 0,...
0,...
1,...
0;...
0,...
0,...
0,...
1;...
((M22*(K011+((v^2)*K211)))-(M12*(K021+((v^2)*K221))))/((M12*M21)-(M22*M11)),...
((M22*(K012+((v^2)*K212)))-(M12*(K022+((v^2)*K222))))/((M12*M21)-(M22*M11)),...
((M22*v*C111)-(M12*v*C121))/((M12*M21)-(M22*M11)),...
((M22*v*C112)-(M12*v*C122))/((M12*M21)-(M22*M11));...
((M11*(K021+((v^2)*K221)))-(M21*(K011+((v^2)*K211))))/((M12*M21)-(M22*M11)),...
((M11*(K022+((v^2)*K222)))-(M21*(K012+((v^2)*K212))))/((M12*M21)-(M22*M11)),...
((M11*v*C121)-(M21*v*C111))/((M12*M21)-(M22*M11)),...
((M11*v*C122)-(M21*v*C112))/((M12*M21)-(M22*M11))];
A=vpa(A,8);
%--------------------------------------------------------------------------------------------
% Matrix B:
B=[ 0, 0;...
0, 0;...
-M22/((M12*M21)-(M11*M22)), M12/((M12*M21)-(M11*M22));...
M21/((M12*M21)-(M11*M22)), -M11/((M12*M21)-(M11*M22))];
% B=vpa(B,5);
%--------------------------------------------------------------------------------------------
% Matrix C:
C=eye(4);
% C=vpa(C,5);
%--------------------------------------------------------------------------------------------
% Matrix D:
D=zeros(4,2);
%--------------------------------------------------------------------------------------------
144 G Anexo: Programación complementaria en MATLAB
%--------------------------------------------------------------------------------------------
function [K,P]=charatioass(n,T,a0,alpha1)
%[K,P]=charatioass(n,T,a0,alpha1)
%We begin by defining two important sets of parameters called here generalized
145
[2] L. Sciavicco and B. Siciliano. Modeling and Control of Robot Manipulators, chapter 1.
Springer, first edition, 2005.
[3] Benjamin C. Kuo. Sistemas de Control Automático, chapter 1. Prentice Hall, seventh
edition, 2005.
[5] Louis A. Bloomfield. How Things Work: The Physics of Everyday Life, chapter 4.
Wiley, fourth edition, 2009.
[6] Yasuhito Tanaka and Toshiyuki Murakami. Self Sustaining Bicycle Robot with Stee-
ring Controller. In The 8th IEEE International Workshop on Advanced Motion Con-
trol, pages 193–197, Mar 2004.
[7] D.V. Herlihy. Bicycle: The History, chapter 1-9. Yale University Press, 2004.
[9] Tony Hadland and Hans-Erhard Lessing. Bicycle Design: An Illustrated History,
chapter 1. MIT Press, 2016.
[10] Archibald Sharp. Bicycles and Tricycles: A Classic Treatise on Their Design and
Construction, chapter 14. Dover Publications, 2011.
[12] D. J. N. Limebeer and R. S. Sharp. Bicycles, Motorcycles, and Models. IEEE Control
Systems, 26(5):34–61, Oct 2006.
[14] Raymond A. Serway and John W. Jewett. Physics for Scientists and Engineers with
Modern Physics, chapter 11. Brooks Cole, eighth edition, 2010.
[18] J.P Meijaard, Jim M Papadopoulos, Andy Ruina, and A.L Schwab. Linearized Dy-
namics Equations for the Balance and Steer of a Bicycle: a Benchmark and Review.
Proceedings of the Royal Society of London A: Mathematical, Physical and Enginee-
ring Sciences, 463(2084):1955–1982, 2007.
[20] Chih-Lyang Hwang, Hsiu-Ming Wu, and Ching-Long Shih. Fuzzy Sliding Mode Unde-
ractuated Control for Autonomous Dynamic Balance of an Electrical Bicycle. IEEE
Transactions on Control Systems Technology, 17(3):658–670, May 2009.
[21] Ko Iuchi, Hiroshi Niki, and Toshiyuki Murakami. Attitude Control of Bicycle Motion
by Steering Angle and Variable COG Control. In 31st Annual Conference of IEEE
Industrial Electronics Society, pages 6 pp.–, Nov 2005.
[23] Buddy Michini and Sean Torrez. Autonomous Stability Control of a Moving Bicycle.
Technical report, Massachusetts Institute of Technology, USA, 77 Massachusetts Ave,
Rm 33-336 - Cambridge MA 02139, 2007.
[24] Chih-Keng Chen and Trung-Kien Dao. A Study of Bicycle Dynamics via System
Identification. In International Symposium on Computer, Communication, Control
and Automation (3CA), volume 2, pages 204–207, May 2010.
[25] J.A. Cortés Romero, G.A. Ramos, and H. Coral Enriquez. Generalized Proportional
Integral Control for Periodic Signals under Active Disturbance Rejection Approach.
ISA Transactions, 53(6):1901–1909, Aug 2014.
[26] Zhiqiang Gao. Active Disturbance Rejection Control: a Paradigm Shift in Feedback
Control System Design. In American Control Conference, pages 7 pp.–, June 2006.
[27] J.A. Cortés Romero, A. Luviano Juárez, R. Álvarez Salas, and H. Sira Ramı́rez.
Fast Identification and Control of an Uncertain Brushless DC Motor Using Algebraic
Methods. In 12th International Power Electronics Congress (CIEP), pages 9–14, Aug
2010.
Bibliografı́a 149
[28] John Cortés Romero, Hebertt Sira Ramirez, and Alberto Luviano Juarez. Control
Lineal Robusto de Sistemas no Lineales Diferencialmente Planos. In Revista Ibero-
americana de Automática e Informática Industrial, volume 8, pages 14–28, January
2011.
[29] R.E. Klein, L. Lieberman, P. DiRocco, and E. McHugh. Adapted Bikes Deliver New
Independence. Exceptional Parent, 32(10), Oct 2002.
[30] R.E. Klein, E. McHugh, S.L. Harrington, T. Davis, and L. Lieberman. Adapted
Bicycles for Teaching Riding Skills. Council for Exceptional Children, 37(6):50–56,
Aug 2005.
[32] Peter Corke. Robotics, Vision and Control, Fundamental Algorithms in MATLAB ®,
chapter 4, pages 67–70. Springer, first edition, 2011.
[33] Lung Wen Tsai. Robot Analysis: The Mechanics of Serial and Parallel Manipulators,
chapter 9, pages 375–386. John Wiley & Sons, Inc., first edition, 1999.
[36] Ronald N. Arnold and Leonard Maunder. Gyrodynamics and its Engineering Appli-
cations, chapter 4, pages 78–83. Academic Press, first edition, 1961.
[37] MSC. Adams. MSC.ADAMS Basic Full Simulation Package Training Guide, 2005.
[39] ADM701 Course Notes. Complete Multibody Dynamics Analysis with Adams. MSC.
Adams, 2013.
[40] David Gordon Wilson. Bicycling Science, chapter 8, pages 263–310. The MIT Press,
third edition, 2004.
[41] C. Canudas de Wit and P. Tsiotras. Dynamic Tire Friction Models for Vehicle
Traction Control. In Decision and Control, 1999. Proceedings of the 38th IEEE
Conference on, volume 4, pages 3746–3751, 1999.
[42] Karl J. Åström and Tore Hägglund. Advanced PID Control, chapter 3, pages 64–92.
ISA, first edition, 2006.
150 Bibliografı́a
[43] Karl J. Åström and Tore Hägglund. PID Controllers: Theory, Design, and Tuning,
chapter 3, pages 80–92. ISA, second edition, 1995.
[44] Hebertt Sira Ramı́rez and Sunil K. Agrawal. Differentially Flat Systems, chapter 2,
pages 11–28. Marcel Dekker, Inc, first edition, 2004.
[46] Shen Zhao and Zhiqiang Gao. An Active Disturbance Rejection Based Approach
to Vibration Suppression in Two-Inertia Systems. In American Control Conference
(ACC), pages 1520–1525, June 2010.
[47] R. Sanz, P. Garcia, and P. Albertos. Active Disturbance Rejection by State Feedback:
Experimental Validation in a 3-DOF Quadrotor Platform. In 54th Annual Conference
of the Society of Instrument and Control Engineers of Japan (SICE), pages 794–799,
July 2015.
[48] Desineni Subbaram Naidu. Optimal Control Systems, chapter 3, pages 101–147. CRC
Press, first edition, 2002.
[49] Willian S. Levine. The Control Handbook: Control System Advanced Methods, chap-
ter 17, pages 17.1–17.25. CRC Press, second edition, 2011.
[50] P. Teppa Garran and G. Garcia. ADRC Tuning Employing the LQR Approach
for Decoupling Uncertain MIMO Systems. In Information Technology and Control,
volume 43, pages 157–165, September 2014.
[51] C.A. Rabbath and N. Léchevin. Discrete-Time Control System Design with Applica-
tions, chapter 3, pages 32–38. Springer, first edition, 2014.
[52] Gene F. Franklin, J. David Powell, and Michael L. Workman. Digital Control of
Dynamic Systems, chapter 11, pages 449–461. Addison-Wesley, third edition, 1997.
[54] Yusuke Oda, Masayuki Miyamoto, Kei Uchiyama, and Gou Shimizu. Study on the
Autonomous Run by Integrated Control of Bicycle. JSME 11th Conference of Trans-
portation and Logistics Division, 2002.
[55] Enrique Palacios, Fernando Remiro, and Lucas López. Microcontrolador PIC16F84,
Desarrollo de Proyectos, chapter 31, pages 507–514. Ra-Ma, first edition, 2004.
[56] Gerald Cook. Mobile Robots, Navigation, Control and Remote Sensing, chapter 3,
pages 79–94. Wiley, first edition, 2011.
[57] Benjamin C. Kuo. Digital Control Systems, chapter 4, pages 149–173. Oxford Uni-
versity Press, second edition, 1992.
Bibliografı́a 151
[58] Wenchao Xue and Yi Huang. Stability Analysis of ADRC for Nonlinear Systems with
Unknown Dynamics and Disturbances. Technical report, Institute of Systems Science,
Academy of Mathematics and Systems Science, Chinese Academy of Sciences, Beijing
100190, 2011.
[59] Zhi-Liang Zhao and Bao-Zhu Guo. On Convergence of Nonlinear Active Disturbance
Rejection Control for SISO Nonlinear Systems. Journal of Dynamical and Control
Systems, 22(2):385–412, May 2016.
[60] T. Emaru and T. Tsuchiya. Research on Estimating Smoothed Value and Diffe-
rential Value by using Sliding Mode System. IEEE Transactions on Robotics and
Automation, 21(6):391–402, Dec 2005.
[61] Bosheng Sun and Zhiqiang Gao. A DSP-based Active Disturbance Rejection Con-
trol Design for a 1-Kw H-bridge DC-DC Power Converter. IEEE Transactions on
Industrial Electronics, 52(5):1271–1277, Oct 2005.
[62] Y. X. Su, C. H. Zheng, Dong Sun, and B. Y. Duan. A Simple Nonlinear Velocity
Estimator for High-Performance Motion Control. IEEE Transactions on Industrial
Electronics, 52(4):1161–1169, Aug 2005.
[63] Bingwei Gao, Junpeng Shao, and Xiaodong Yang. A Compound Control Strategy
Combining Velocity Compensation with ADRC of Electroydraulic Position Servo
Control System. ISA Transactions, 53(6):1910–1918, Nov 2014.
[64] Y.C. Kim, L.H. Keel, and S.P. Bhattacharyya. Transient Response Control via Cha-
racteristic Ratio Assignment. IEEE Transactions on Automatic Control, 48(12):2238–
2244, Dec 2003.
[65] John Chiasson. Modeling and High-Performance Control of Electric Machines, chap-
ter 2, pages 71–80. John Wiley & Sons, Inc., second edition, 2005.
[66] Jr. C. J. Savant, Martin S. Roden, and Gordon L. Carpenter. Diseño Electrónico,
Circuitos y Sistemas, chapter 13, pages 646–652. Prentice Hall, second edition, 2010.
[67] Wai-Kai Chen. The Circuits and Filters Handbook, chapter 79. CRC Press, second
edition, 2003.
Consideraciones finales: