Como Funciona La Bici 2017 UN PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 172

Diseño e implementación de una estrategia avanzada de

control, para resolver el problema de estabilidad de una


bicicleta durante un recorrido libre, sin conductor y a
velocidad constante

Mauro Alonso Baquero Suárez

Universidad Nacional de Colombia


Facultad de Ingenierı́a, Departamento (Ingenierı́a Eléctrica)
Ciudad, Colombia
Año 2017
Diseño e implementación de una estrategia avanzada de
control, para resolver el problema de estabilidad de una
bicicleta durante un recorrido libre, sin conductor y a
velocidad constante

Mauro Alonso Baquero Suárez

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

Universidad Nacional de Colombia


Facultad de Ingenierı́a, Departamento (Ingenierı́a Eléctrica)
Ciudad, Colombia
Año 2017
A mis padres Mauro y Luz, sin el apoyo incondicional de

ellos, nada de esto hubiera sido posible.

A mis hermanos Alibeth y Tania que siempre me motivan

para seguir adelante.


Agradecimientos
Mi más sentido aprecio y gratitud, es a mi director John Alexander Cortés Romero por
brindarme su conocimiento, cooperación y asistencia en todo momento, durante la plani-
ficación y realización de este proyecto.

Un especial agradecimiento, es para el ingeniero Jaime Willington Arcos Legarda por su


colaboración y apoyo en el desarrollo instrumental del prototipo. Sus asesorı́as me fueron
útiles y beneficiosas en el montaje y correcto funcionamiento de sensores y actuadores
adheridos a la bicicleta, en el desarrollo de los experimentos y en el análisis de cada uno
de los resultados obtenidos.

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.

Estoy particularmente complacido con el profesor y director del grupo de investigación


Electrical Machines & Drives, Javier Alveiro Rosero Garcı́a, por su gestión en la adqui-
sición de instrumentos, materiales y herramientas para desarrollar este trabajo. También
le agradezco por su confianza depositada en mi.

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.

Mediante el enfoque de Control por Rechazo Activo de Perturbaciones (ADRC) y apli-


caciones de esta propuesta sobre la base de controladores y observadores Proporcional
Integral Generalizado (GPI), se sintetiza un controlador con una estructura robusta que
pueda minimizar el error de seguimiento y rechazar perturbaciones ante las incertidumbres
y dinámicas no modeladas. Además, los lazos de control que estabilizan el sistema deben
tolerar cambios suaves de velocidad de avance en el recorrido. Básicamente, el controlador
propuesto girará hacia la derecha o izquierda la dirección de la bicicleta para contrarres-
tar su inclinación de forma similar a un péndulo invertido, pero con un desplazamiento
sobre el suelo. Para determinar las condiciones y caracterı́sticas a las cuales el controlador
propuesto debe lograr un mejor desempeño, se realizan simulaciones y diferentes experi-
mentos, analizando cada uno de los resultados obtenidos, y a partir de ellos, se busca la
mejor sintonización de la estrategia.

El documento se divide en seis capı́tulos. El Capı́tulo 1 entrega una introducción que


explica la importancia de una bicicleta como medio de transporte, las invenciones que
han surgido a lo largo de la historia para mejorar este sistema y los estudios cientı́ficos
más importantes referidos a su dinámica y estabilidad.

El Capı́tulo 2 abarca el análisis de la dinámica de una bicicleta en movimiento, el mode-


lamiento matemático para la bicicleta que fue seleccionada como parte del prototipo de
x

este trabajo y los procedimientos en la construcción de su modelo virtual en ADAMS.

El Capı́tulo 3 tiene consignado el planteamiento de las estrategias de control que esta-


bilizarı́an la bicicleta bajo ciertas condiciones iniciales, el análisis de desempeño de los
controladores y su implementación en una co-simulación con ADAMS y MATLAB para
recrear el movimiento de la bicicleta con una dinámica cercanamente más aproximada a
la fı́sica del mundo real que su modelo matemático.

El Capı́tulo 4 muestra los actuadores, sensores y tarjetas controladoras que se seleccio-


naron para esta aplicación por sus caracterı́sticas de desempeño, tiempos de respuesta,
porcentaje de error, resolución, precisión, energı́a, etc. Se muestra la ubicación de estos
componentes en la bicicleta y se validan las mediciones realizadas por los sensores.

El Capı́tulo 5 explica detalladamente cómo se realizó la implementación de los controlado-


res en la bicicleta real y muestra los mejores resultados obtenidos en las experimentaciones.

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.

Palabras clave: Técnicas avanzadas de control, Control proporcional integral gene-


ralizado, Rechazo activo de perturbaciones, Bicicleta autónoma, Teorı́a de control,
Vehı́culos autónomos, Bicicleta eléctrica, Sistemas embebidos, control robusto.

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

proposal by Generalized Proportional Integral (GPI) observers and controllers, a robust


control structure is sintetized to minimize the tracking error and reject disturbances befo-
re uncertainties and non-modeled dynamics. Furthermore, the control loops that stabilize
the system must tolerate slow-rate forward speed in the bicycle movement. Basically, the
proposed controller will turn right or left the bicycle steering system to counteract the tilt
in similar way to an inverted pendulum, but with a displacement on the floor. To deter-
mine the conditions and features that allow the higher controller performance, different
simulations and experiments were developed, and the obtained results were analized to
find the correct tunning of proposed strategy.

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.

Keywords: Advanced control techniques, Generalized proportional integral controller,


Active disturbances rejection control, Autonomous bicycle, Control theory, Autono-
mous vehicles, Embedded systems, Electric bicycle.
Declaración

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.

Bogotá, D.C., 2016

(Mauro Alonso Baquero Suárez)


Contenido

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

3 Estrategias de Control y Simulaciones 35


3.1 Control de Velocidad de Avance . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2 Control de Inclinación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.1 Estrategia de Control basada en Observador GPI . . . . . . . . . . . 41
3.2.2 Controlador Estabilizador . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.3 Controlador Seguidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.4 Análisis de Desempeño del Control de Inclinación . . . . . . . . . . . 54
3.3 Co-simulación utilizando ADAMS y MATLAB . . . . . . . . . . . . . . . . . 58
°
3.3.1 Simulación No. 1 (0 de inclinación inicial) . . . . . . . . . . . . . . . 60
°
3.3.2 Simulación No. 2 (5 de inclinación inicial) . . . . . . . . . . . . . . . 63

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

5 Implementación de los Sistemas de Control 95


5.1 Resultados experimentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

6 Conclusiones y recomendaciones 103


6.1 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.2 Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

A Anexo: Método Derivador de Señales “Tracking Differentiator” 107

B Anexo: Asignación de Relaciones Caracterı́sticas 109

C Anexo: Modelamiento de los Actuadores del Prototipo 111


C.1 Modelamiento del Motor DC del Subsistema de Tracción . . . . . . . . . . . 111
C.2 Modelamiento del Motor DC del Subsistema de Dirección . . . . . . . . . . 113

D Anexo: Circuitos Eléctricos y Electrónicos Diseñados 119


D.1 Reguladores de Tensión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
D.2 Driver para el Motor DC de Matsushita . . . . . . . . . . . . . . . . . . . . . 120
D.3 Circuito Complementario para Encoder . . . . . . . . . . . . . . . . . . . . . 120
D.4 Circuito Pre-Driver para el Motor DC de Hitec . . . . . . . . . . . . . . . . . 121
D.5 Circuito de Acondicionamiento de Señal para el Sensor S22P006S05 . . . . 122
D.6 Conexiones Directas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
D.6.1 Conexiones para el Potenciómetro Acoplado al Motor de Hitec . . . 124
D.6.2 Conexiones para el Sensor YEI 3-Space . . . . . . . . . . . . . . . . . 125
D.7 Circuito de Conexiones para el Sensor S22P006S05 . . . . . . . . . . . . . . 125

E Anexo: Programación en MPIDE para la tarjeta ChipKit WF32 127

F Anexo: Programación en Simulink para la tarjeta eZDSP F28335 135

G Anexo: Programación complementaria en MATLAB 139

Bibliografı́a 151
Índice de Figuras

1-1 Primera bicicleta (Draisiana) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4


1-2 Velocı́pedo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1-3 Bicicleta Penny Farthing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1-4 Piñón libre en la rueda trasera . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1-5 Cadena de rodillo libre inventada por Hans Renold . . . . . . . . . . . . . . 6
1-6 Primer neumático inventado por John Dunlop . . . . . . . . . . . . . . . . . 6
1-7 Primera motocicleta, inventada por Sylvester Howard Roper . . . . . . . . . 7
1-8 Motocicleta patentada por Daimler . . . . . . . . . . . . . . . . . . . . . . . . 7
1-9 Primera motocicleta comercializada . . . . . . . . . . . . . . . . . . . . . . . . 8
1-10 Modelo de una bicicleta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2-1 Esquema de una bicicleta en su forma simplificada . . . . . . . . . . . . . . . 14


2-2 Geometrı́a de una bicicleta común en su forma real . . . . . . . . . . . . . . 16
2-3 Esquema de una bicicleta moviéndose en el espacio inercial . . . . . . . . . 17
2-4 Diagrama de bloques del modelo de la bicicleta de segundo orden . . . . . . 17
2-5 Ubicación de polos del modelo de la dirección en función de la velocidad . 19
2-6 Esquema de una bicicleta en su forma básica . . . . . . . . . . . . . . . . . . 20
2-7 Bicicleta dividida en 4 partes rı́gidas . . . . . . . . . . . . . . . . . . . . . . . 21
2-8 Posición de Home de la bicicleta . . . . . . . . . . . . . . . . . . . . . . . . . 23
2-9 Trayectoria de los valores propios del modelo de la bicicleta . . . . . . . . . 27
2-10 Valores propios del modelo de la bicicleta, en función de la velocidad . . . 27
2-11 Modelo CAD de la bicicleta desarrollado en Solid Edge ST4 . . . . . . . . . 29
2-12 Métodos experimentales para determinar los momentos de inercia . . . . . 30
2-13 Modelo dinámico de la bicicleta desarrollado en MSC ADAMS . . . . . . . 30
2-14 Modelo de fricción dinámica de Coulomb . . . . . . . . . . . . . . . . . . . . 32
2-15 Representación gráfica de las articulaciones creadas en ADAMS/View . . . 33
2-16 Modelo de ADAMS/View enlazado a MATLAB/Simulink . . . . . . . . . . 34

3-1 Co-simulación entre MATLAB y ADAMS . . . . . . . . . . . . . . . . . . . . 36


3-2 Diagrama de cuerpo libre de la rueda trasera de la bicicleta . . . . . . . . . 37
3-3 Diagrama de Nyquist de la función de transferencia de la tracción . . . . . 38
3-4 Diagrama de bloques del controlador en el subsistema de tracción . . . . . 39
3-5 Respuesta de lazo cerrado del sistema de control de velocidad . . . . . . . . 40
3-6 Señal de salida del controlador de velocidad de avance . . . . . . . . . . . . 40
3-7 Esquema general del sistema de control de la bicicleta . . . . . . . . . . . . 41
3-8 Esquema propuesto para el sistema de control estabilizador . . . . . . . . . 48
xviii Índice de Figuras

3-9 Variación de velocidad de avance impuesta al modelo . . . . . . . . . . . . . 48


3-10 Respuesta del modelo con el sistema de control estabilizador . . . . . . . . . 48
3-11 Referencia generada por el controlador estabilizador . . . . . . . . . . . . . . 49
3-12 Matriz de transferencia del lazo LQR . . . . . . . . . . . . . . . . . . . . . . . 51
3-13 Esquema propuesto para el sistema de control seguidor . . . . . . . . . . . . 53
3-14 Respuesta de la inclinación de la bicicleta modelada, con el controlador . . 53
3-15 Perturbación, agregada al modelo de la bicicleta de cuarto orden . . . . . . 54
3-16 Seguimiento impuesto por el control seguidor, al modelo de la bicicleta . . 54
3-17 Señal de control aplicada al modelo de la bicicleta de cuarto orden . . . . . 54
3-18 Respuestas de la inclinación ante variaciones del modelo . . . . . . . . . . . 55
3-19 Respuestas de la dirección ante variaciones del modelo . . . . . . . . . . . . 56
3-20 Respuestas del control de inclinación ante variaciones del modelo . . . . . . 56
3-21 Integral cuadrática del error para el controlador estabilizador . . . . . . . . 57
3-22 Integral cuadrática del error para el controlador seguidor . . . . . . . . . . . 57
3-23 Simulación interactiva de la bicicleta en ADAMS . . . . . . . . . . . . . . . . 58
3-24 Polos del lazo cerrado del sistema con una velocidad de 0.9 m/s . . . . . . . 59
3-25 Polos del lazo cerrado del sistema con una velocidad de 3.5 m/s . . . . . . . 60
3-26 Esquema detallado del sistema de control de la bicicleta . . . . . . . . . . . 61
3-27 Simulación interactiva No. 1, salidas del sistema . . . . . . . . . . . . . . . . 62
3-28 Simulación interactiva No. 1, entradas del sistema . . . . . . . . . . . . . . . 62
3-29 Simulación interactiva No. 1, derivadas de las salidas del sistema . . . . . . 63
3-30 Simulación interactiva No. 2, salidas del sistema . . . . . . . . . . . . . . . . 64
3-31 Simulación interactiva No. 2, entradas del sistema . . . . . . . . . . . . . . . 64
3-32 Simulación interactiva No. 2, derivadas de las salidas del sistema . . . . . . 65

4-1 Motor DC que trabaja en el sistema de tracción . . . . . . . . . . . . . . . . 69


4-2 Sistema de tracción de la bicicleta . . . . . . . . . . . . . . . . . . . . . . . . . 69
4-3 Servomotor Hitec HS-1000SGT . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4-4 Estructura interna de un servomotor convencional . . . . . . . . . . . . . . . 70
4-5 Sistema de dirección del prototipo . . . . . . . . . . . . . . . . . . . . . . . . 71
4-6 Sensor YEI 3-Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4-7 Procesamiento embebido del sensor YEI 3-Space . . . . . . . . . . . . . . . . 72
4-8 Localización del sensor YEI 3-Space en el prototipo . . . . . . . . . . . . . . 73
4-9 Sensor de corriente ACS712 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4-10 Diferentes valores de corriente medidos con el módulo ACS712 . . . . . . . 74
4-11 Ruido presente en la salida del módulo ACS712 . . . . . . . . . . . . . . . . 74
4-12 Sensor de corriente Tamura S22P006S05 . . . . . . . . . . . . . . . . . . . . . 75
4-13 Diferentes valores de corriente medidos con el sensor S22P006S05 . . . . . . 75
4-14 Ruido presente los sensores ACS712 y S22P006S05 . . . . . . . . . . . . . . 76
4-15 Potenciómetro lineal ensamblado a la caja reductora del Hitec . . . . . . . . 77
4-16 Encoder para medir la velocidad angular de la rueda trasera . . . . . . . . . 77
4-17 Encoder ensamblado a la llanta trasera . . . . . . . . . . . . . . . . . . . . . . 78
4-18 Tarjeta de interconexión de dispositivos . . . . . . . . . . . . . . . . . . . . . 79
4-19 Puente H que controla el motor acoplado al manubrio . . . . . . . . . . . . . 80
Índice de Figuras xix

4-20 eZDSP F28335 de Spectrum Digital . . . . . . . . . . . . . . . . . . . . . . . 81


4-21 Tarjeta ChipKit WF32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4-22 Baterı́a para energizar los actuadores . . . . . . . . . . . . . . . . . . . . . . . 83
4-23 Baterı́a ensamblada en el marco de la bicicleta . . . . . . . . . . . . . . . . . 83
4-24 Baterı́a para energizar los dispositivos de control . . . . . . . . . . . . . . . . 84
4-25 Tarjeta reguladora de carga DC - DC (Step Down) . . . . . . . . . . . . . . 84
4-26 Prototipo completado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4-27 Sistema mecatrónico del prototipo . . . . . . . . . . . . . . . . . . . . . . . . 86
4-28 Caja sujetadora armada con todas las tarjetas . . . . . . . . . . . . . . . . . 87
4-29 Rueda trasera siguiendo un perfil de velocidad . . . . . . . . . . . . . . . . . 88
4-30 Alcance de posición angular del motor DC de Hitec . . . . . . . . . . . . . . 89
4-31 Circuito de prueba para el sensor S22P006S05 . . . . . . . . . . . . . . . . . 90
4-32 Herramientas de calibración para el sensor YEI 3-Space . . . . . . . . . . . 91
4-33 Orientación de la bicicleta en Home y del sensor YEI 3-Space . . . . . . . . 92

5-1 Sistema discreto con multitasa de muestreo . . . . . . . . . . . . . . . . . . . 96


5-2 Entrada en la simulación del observador GPI con multitasa . . . . . . . . . 97
5-3 Comparación No. 1 del observador GPI con multitasa de muestreo . . . . . 97
5-4 Comparación No. 2 del observador GPI con multitasa de muestreo . . . . . 97
5-5 Comparación No. 3 del observador GPI con multitasa de muestreo . . . . . 98
5-6 Transición suave para las estimaciones de las perturbaciones . . . . . . . . . 98
5-7 Velocidad de avance alcanzada por la bicicleta controlada . . . . . . . . . . 99
5-8 Evolución del ángulo de inclinación de la bicicleta controlada . . . . . . . . 100
5-9 Evolución del ángulo de dirección de la bicicleta controlada . . . . . . . . . 100
5-10 Prototipo en movimiento, balanceando su postura vertical . . . . . . . . . . 100

A-1 Esquemático del tracking differentiator . . . . . . . . . . . . . . . . . . . . . . 107

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

D-1 Reguladores de tensión para voltaje DC . . . . . . . . . . . . . . . . . . . . . 119


D-2 Driver para el motor DC Matsushita . . . . . . . . . . . . . . . . . . . . . . . 120
D-3 Circuito para adquisición de salida del Encoder . . . . . . . . . . . . . . . . 120
D-4 Circuito Pre-Driver para el control del motor DC de Hitec . . . . . . . . . . 121
D-5 Circuito para adquisición de la señal del sensor S22P006S05 . . . . . . . . . 123
D-6 Diagrama de bode del filtro Sallen and Key de segundo orden . . . . . . . . 124
xx Índice de Figuras

D-7 Conexiones para el potenciómetro acoplado al motor DC de Hitec . . . . . 124


D-8 Conexiones para el sensor YEI 3-Space . . . . . . . . . . . . . . . . . . . . . . 125
D-9 Conexiones para el sensor de corriente S22P006S05 . . . . . . . . . . . . . . 125

F-1 Esquema completo de control en Simulink . . . . . . . . . . . . . . . . . . . . 135


F-2 Controlador de la velocidad de avance en Simulink . . . . . . . . . . . . . . . 136
F-3 Controlador de la inclinación en Simulink . . . . . . . . . . . . . . . . . . . . 136
F-4 Programación del método Tracking Differentiator en Simulink . . . . . . . . 136
F-5 Programación de la función Clutch en Simulink . . . . . . . . . . . . . . . . 137
Índice de Tablas

2-1 Parámetros de la bicicleta para el Modelo de Segundo Orden . . . . . . . . 15


2-2 Dimensiones y propiedades mecánicas de la bicicleta . . . . . . . . . . . . . 22
2-3 Dimensiones y propiedades mecánicas de la bicicleta como un todo . . . . . 23
2-4 Parámetros para modelar las fuerzas de contacto entre los cuerpos . . . . . 33

4-1 Especificaciones técnicas del encoder. . . . . . . . . . . . . . . . . . . . . . . . 78


4-2 Medición experimental de la velocidad lineal de la rueda trasera . . . . . . 88
4-3 Valores obtenidos en la medición de posición angular . . . . . . . . . . . . . 89
4-4 Valores obtenidos en la medición de corriente . . . . . . . . . . . . . . . . . . 90

C-1 Valores experimentales del brazo en diferentes posiciones angulares . . . . . 116


C-2 Parámetros del motor DC acoplado al subsistema de dirección . . . . . . . 117
1. Introducción

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].

Recientemente las bicicletas atraen mucho la atención, porque es un medio de transporte


que no deteriora el medio ambiente, no depende de ningún suministro de energı́a, tiene
una alta eficiencia y es de fácil mantenimiento. Sin embargo, es un sistema inestable que
necesita de la asistencia humana, como dirigir el manubrio y balancear el cuerpo del con-
ductor para dirigir y estabilizar la bicicleta. Los triciclos también son bastante amigables
con el medio ambiente y su manejo es más fácil que el de las bicicletas, pero el problema
fundamental del triciclo, es la imposibilidad de conducirlo a altas velocidades debido a un
problema estructural que vuelve insuficiente la maniobrabilidad [5]. Se han diseñado y fa-
bricado muchas bicicletas con asistencia eléctrica que suprimen en la persona la necesidad
de pedalear para desplazarse, pero no ayudan en ninguna forma a la estabilización de su
postura mientras la maneja. Entonces se ha investigado el tema de realizar una bicicleta
auto-estable [6].

A continuación, en la Sección1.1, se presentan los antecedentes de mayor relevancia históri-


ca que describen la evolución de la bicicleta hasta la actualidad. Posteriormente, en la
Sección 1.2, se exponen los reportes cientı́ficos dirigidos hacia el modelamiento y control
del movimiento de este vehı́culo.

1.1. Antecedentes Históricos de la Bicicleta


Estudios históricos relatan la importancia cientı́fica y el impacto social que ha tenido este
medio de transporte. La primera invención de la bicicleta, apodada “Draisiana”, fue en
1817 por el investigador alemán Baron Karl von Drais, inspirado por la idea “deslizarse sin
4 1 Introducción

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].

Fig. 1-1.: Primera bicicleta (Draisiana)1 .

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].

Fig. 1-2.: Creación de Pierre Michaux en 1861 llamada “Velocı́pedo”2 .

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.

Fig. 1-3.: Bicicleta Penny Farthing3 .

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 .

La motocicleta también es un invento con un impacto relevante en la historia, originada


por ingenieros e investigadores que trabajaron en la idea de acoplarle una máquina rotati-
va alterna a la bicicleta para que sea impulsada, y ası́, brindarle una innovada y asequible
solución a las personas que se desplazaban por recorridos muy extensos. La primera in-
vención que materializa esta idea, fue construida por Sylvester Howard Roper en el año
1867, quién logró acoplarle al velocı́pedo de Michaux, un motor a vapor de dos cilindros
que trabajaba con carbón encendido.

Fig. 1-6.: Primer neumático inventado y patentado por John Dunlop6 .

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

Fig. 1-7.: Primera motocicleta, inventada por Sylvester Howard Roper7 .

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].

Fig. 1-8.: Motocicleta patentada por Gottlieb Daimler8 .

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

Fig. 1-9.: Primera motocicleta producida y comercializada “Hildebrand and Wolfmüller”9 .

¿cómo incrementar la eficiencia?, ¿cómo minimizar la contaminación del medio ambiente?,


¿cómo diseñar para mejorar la confortabilidad en los conductores?, ¿cómo optimizar los
procesos automatizados de sus máquinas?, ¿cómo potenciar la maniobrabilidad y el control
de sus vehı́culos?, ¿cómo adquirir más clientes?, entre otras.

1.2. Antecedentes sobre Modelamiento y Control de la


Bicicleta
Ingenieros expertos en control y automatización han dedicado bastante de su tiempo ge-
nerando aportes académicos y aplicaciones tecnológicas, esencialmente hacia el campo
del control de movimiento de los diferentes vehı́culos que hoy existen. En su mayorı́a,
los planteamientos propuestos para solucionar la estabilidad y maniobrabilidad en un
vehı́culo propiamente inestable, se relacionan en que son analizados teóricamente como
un problema de control. Investigaciones recientemente documentadas, abordan el proble-
ma de estabilidad en una bicicleta definiendo y asumiendo los siguientes aspectos generales
pero fundamentales: 1) Definición de un modelo matemático, que represente las dinámicas
gravitacional y centrı́fuga que intervienen en la bicicleta, asumiendo que es un sistema
no-holonómico, que sólo realiza movimientos de traslación y rotación sobre un sistema
de referencia y que no existen deslizamientos, deformaciones ni efectos giroscópicos en
sus ruedas cuando se mueve [13, 14]. 2) Identificación de parámetros en el sistema, que
permitan la obtención de aquellas cantidades que hacen parte del modelo y que no son
medibles de forma directa. 3) Validación del modelo no-holonómico [15], con el fin de com-
probar que sus respuestas en simulaciones ante ciertas condiciones de operación, tengan
relación con resultados reales obtenidos de forma experimental, y establecer las posibles
condiciones en las cuales su dinámica podrı́a ser estable [16]. 4) Diseño de una estrategia
avanzada de control, que sea robusta ante diferentes perturbaciones e incertidumbres y
pueda estabilizar con un buen desempeño el sistema, bajo las condiciones de operación
establecidas. 5) Implementación instrumental de la estrategia de control, para analizar y
9
Fuente de la imagen: Bicycles, Motorcycles, and Models, [12].
1.2 Antecedentes sobre Modelamiento y Control de la Bicicleta 9

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.

Fig. 1-10.: Modelo de una bicicleta10 .

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.

Otro estudio importante en lo que se refiere al modelamiento y análisis de estabilidad de


una bicicleta en movimiento, fue realizado por J. P. Meijaard, Jim M. Papadopoulos, Andy
Ruina y A. L. Schwab [18]. En este trabajo se propone un modelamiento más complejo de
la bicicleta, en donde parametrizan el sistema dividiéndolo en 4 partes rı́gidas, especı́fica-
mente 2 ruedas, el cuerpo en forma de marco y el tenedor frontal ensamblado al manubrio.
Asumen en su modelo que las otras partes móviles como los pedales, cadena y frenos son
despreciables en la dinámica. Posteriormente, se definen mediante una representación en
espacio de estado las ecuaciones diferenciales que involucran los ángulos de inclinación y
dirección, el par aplicado en el manubrio y las velocidades angular y lineal de la rueda
trasera de la bicicleta. Por último, se realizan simulaciones que muestran su dinámica no
lineal y se calculan las condiciones para que el sistema tenga estabilidad asintótica. Los
resultados obtenidos son comparados con los de otros reportes anteriores.
10
Fuente de la imagen: Dynamics of Nonholonomic Systems (Translations of Mathematical Monographs,
V. 33), [15].
10 1 Introducción

En el trabajo de tesis de maestrı́a de J. D. G. Kooijman [19], se realizó una validación


experimental del modelo propuesto en [18]. Aquı́, inician realizando las mediciones de los
parámetros fı́sicos de una bicicleta adaptada con sensores para la medición de las variables
dinámicas relevantes, y un laptop para la adquisición y procesamiento de estas variables
mediante un algoritmo implementado en “LabView”, que se ejecuta en tiempo real; luego
se realizan varios experimentos con la bicicleta desplazándose sobre el suelo y cayendo
desde el reposo; y al final, se desarrollan varios análisis estadı́sticos y determinı́sticos
con los resultados obtenidos, los cuales, concluyen que el modelo seleccionado está bien
planteado y coincide claramente con la dinámica de la bicicleta real.

En la implementación de técnicas avanzadas de control para la auto-estabilización de


la bicicleta, un trabajo sugestivo es presentado por Chih-Lyang Hwang, Hsiu-Ming Wu
y Ching-Long Shih [20], en donde abordan el problema de estabilidad empleando dos
estrategias de control, una se encarga de dirigir la posición angular de un péndulo que varı́a
el centro de gravedad, y la otra, gobierna el ángulo de dirección de la rueda frontal. Ambas
estrategias están agrupadas dentro de una técnica nueva de control denominada “Control
Subactuado Difuso por Modos Deslizantes (FSMUAC)” y trabajan en cooperación para
compensar el balance de momentos que intervienen en la bicicleta cuando se desplaza. En
las simulaciones de esta técnica sobre un modelo de la bicicleta representado como una
ecuación dinámica en espacio de estado, se muestra su desempeño en la estabilización,
haciéndole frente a las incertidumbres y perturbaciones consideradas en el modelo.

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.

Otra estrategia en el tema de control de estabilidad se explica en el documento publicado


por Chih-Keng Chen y Trung-Kien Dao [24]. Aquı́, es estudiada la dinámica de la bicicleta
por el enfoque de identificación de sistemas, en el cual, se recopilan los datos de entrada y
salida del sistema para utilizarlos en un proceso que identifica los parámetros requeridos
por la estructura de un modelo lineal seleccionado de una entrada y dos salidas. Luego se
realizan varios experimentos con diferentes velocidades de desplazamiento de la bicicleta,
y con los resultados, se valida el modelo lineal obtenido con el proceso de identificación y
se analiza bajo que condiciones hay estabilidad en el sistema. Al final, se diseñan varias
estrategias de control y se compara el desempeño de cada una mediante simulaciones que
utilizan el modelo lineal obtenido y un modelo no lineal tomado de otro reporte, para
1.2 Antecedentes sobre Modelamiento y Control de la Bicicleta 11

luego implementar en la bicicleta real la estrategia de control más eficiente.

Se puede observar en general, que el tema propuesto de resolver el problema de estabilidad


de una bicicleta es un reto multidisciplinario que puede enfocarse hacia un problema de
control. La construcción de un modelo que describa acertadamente la dinámica de este
sistema y el planteamiento de alguna técnica de control avanzada, diseñada para dar una
solución efectiva a este problema, entregando un buen desempeño ante las incertidum-
bres y perturbaciones presentes en su recorrido, es un tema de estudio serio que servirı́a
para estabilizar otros sistemas de transporte más complejos, ya sean terrestres, aéreos
o acuáticos, y controlar el movimiento de algunos sistemas especiales como los robots
manipuladores de configuración paralela, robots móviles, y/o robots bio-inspirados.

En esta tesis, el problema de estabilización de una bicicleta en movimiento y sin conductor,


fue abordado proponiendo una estrategia de control basada en la metodologı́a de Rechazo
Activo de Perturbaciones, aplicada a un amplio número sistemas inciertos perturbados
para el seguimiento robusto de referencias a la entrada [25, 26]. El Rechazo Activo de
Perturbaciones es un enfoque radicalmente diferente en donde las dinámicas no modeladas
y perturbaciones externas asociadas a un modelo lineal de la planta, simplificado por
una cadena de integradores, son agrupadas dentro de una función desconocida que es
estimada mediante un observador Proporcional Integral Generalizado (GPI), y rechazada
en lı́nea por medio de una ley de control lineal por realimentación de estado, en función
de esta estimación [27, 28]. La estrategia de control basada en observador GPI logra que
el sistema de lazo cerrado recupere el desempeño del modelo lineal nominal tanto como
la sintonización de sus ganancias lo permitan. También, la estrategia tiene una propiedad
de acción integral que asegura la regulación del error de seguimiento a cero, permitiendo
una estabilización robusta de la bicicleta en su posición vertical.

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.

Actualmente, en el laboratorio de Sistemas de Control de la Universidad Nacional se


encuentra el prototipo construido, el cual, está constituido básicamente por una bicicleta
con dos motores acoplados a la rueda trasera y la dirección, varios sensores, tarjetas
electrónicas y dos baterı́as para alimentar de manera independiente al sistema de control
y de potencia respectivamente. Por el requerimiento de su funcionamiento autónomo, este
prototipo fue diseñado evaluando los diferentes componentes que posee y ajustándolos a las
exigencias que implican el desarrollo de un equipo didáctico académico. Por la necesidad
12 1 Introducción

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

Cualquier tentativa de diseño de un sistema, debe empezar a partir de una predicción de


su funcionamiento, antes de que el sistema pueda diseñarse en detalle o construirse fı́sica-
mente. Podrı́amos predecir el movimiento que realiza una bicicleta sin conductor cuando
parte desde una velocidad inicial de avance, basándonos en una descripción matemáti-
ca de sus caracterı́sticas dinámicas más relevantes. Para los sistemas fı́sicos, la mayorı́a
de los modelos matemáticos que resultan útiles, se describen en términos de ecuaciones
diferenciales, estableciendo una relación de sus entradas y salidas.

Es posible desarrollar un modelo matemático que describa la dinámica de un sistema a


partir de las leyes fı́sicas que actúan sobre el. Tal modelo puede incluir algunos parámetros
desconocidos que sólo podrán determinarse mediante pruebas reales. Algunas veces las le-
yes fı́sicas que gobiernan el comportamiento de un sistema no son evidentes o entendibles,
y la formulación de un modelo matemático resulta imposible de realizar, lo que conlleva
a utilizar algún procedimiento de modelado experimental. La importancia de obtener un
modelo aproximado del sistema, ya sea mediante formulación matemática o métodos expe-
rimentales, es que se pueden realizar varias simulaciones probando el efecto de diferentes
condiciones iniciales, entradas y perturbaciones, y a partir de los resultados, construir un
prototipo del sistema y plantear alguna estrategia de control para manipularlo como se
desee.

2.1. Ecuaciones del Movimiento de la Bicicleta


En la definición de las ecuaciones que describen a una bicicleta en movimiento y sin con-
ductor, es importante considerar que su comportamiento es similar a un péndulo invertido,
pero con una velocidad de avance sobre el suelo que interviene en las fuerzas que actúan
sobre ella. Básicamente, su inclinación es afectada por la gravedad, la velocidad con que
se desplaza y la posición angular de la rueda frontal. Orientando la dinámica de una bici-
cleta como un problema de control, estas tres componentes impondrán en el sistema cierta
complejidad que dificultará su estabilización. Definida la inclinación de la bicicleta como
la salida que se desea controlar, y el par aplicado sobre el eje de giro del manubrio como la
entrada, la estrategia de control planteada debe gobernar esta salida con un buen desem-
peño, rechazando perturbaciones y tolerando las incertidumbres y algunas dinámicas no
contempladas en las ecuaciones del modelo.

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.

2.1.1. Modelo Simple de Segundo Orden


En este modelo, se asume que la bicicleta se desplaza en un plano horizontal uniforme, que
el conductor tiene una posición y orientación fija relativa al marco de la bicicleta y que el
eje de dirección es vertical, lo que implica, que el ángulo α que forma con la horizontal es
°
90 (ángulo del cabezal) y que la distancia horizontal c con respecto al punto de contacto
de la rueda frontal es 0 (paso). El grado de libertad rotacional asociado al tenedor frontal
desaparece, dejando al sistema con el ángulo de inclinación ϕ como el único grado de
libertad, y el ángulo de dirección δ, es tomado como la variable de control.

h δ

x
b w
z y
ψ

Fig. 2-1.: Esquema de una bicicleta en su forma simplificada.

En la bicicleta simplificada de la Fig. 2-1, el sistema de coordenadas x, y, z rota alrededor


del eje vertical con una velocidad angular ω = v tan(δ)/w, [32], que puede simplificarse
por ω = vδ/w, considerando el ángulo δ como pequeño. w, serı́a la longitud de la distancia
entre las dos ruedas, y v, la velocidad lineal de avance horizontal. Un observador fijo en el
sistema de coordenadas x, y, z, experimenta fuerzas debido a la aceleración relativa, con
respecto a un sistema de coordenadas fijo en el espacio inercial.

Sea mt la masa total de la bicicleta, asumiendo que está concentrada en su centro de


masa (COG). Cuando δ = 0, la bicicleta puede imaginarse como un cuerpo rı́gido, con las
ruedas, el conductor, y el tenedor frontal, fijados al marco, como si todo fuera un sólo
elemento. En esa posición angular de la dirección, se define J como el momento de inercia
de este cuerpo con respecto al eje x, y D = −Jxz , como el producto de inercia con respecto
a las abscisas xz. Además sean b y h los valores de localización del COG en los ejes x
2.1 Ecuaciones del Movimiento de la Bicicleta 15

y z respectivamente. El momento angular con respecto al eje x según [13], es expresado


como:
vD
Lx = J ϕ̇ − Dω = J ϕ̇ − δ. (2-1)
w
Los pares actuando en el sistema debido a la gravedad y fuerzas centrı́fugas, junto con el
balance de momento angular, convierten la ecuación anterior en:

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.

Tabla 2-1.: Parámetros de la bicicleta para el modelo simple de segundo orden.

Item Sı́mbolo Valor Unidad


Masa total de la bicicleta mt 19.42684 Kg
Momento de inercia con respecto al eje x J 7.42366 Kg ⋅ m2
Producto de inercia con respecto a los ejes x, z D 5.69183 Kg ⋅ m2
Longitud entre los puntos de contacto de las ruedas w 1.06016 m
Altura del COG h 0.56320 m
Distancia horizontal desde el marco (x, y, z) hasta el COG b 0.49501 m
Gravedad g 9.807 m/s2
Velocidad de avance v Variable m/s
16 2 Modelamiento de la Bicicleta

Tenedor Frontal

El diseño del tenedor frontal de dirección, tiene un gran impacto en la dinámica de la


bicicleta. En nuestro modelo anterior, no se consideró este efecto porque se asumió la
°
distancia c = 0, y el ángulo α = 90 . Para modelar el efecto del tenedor frontal, se empieza
definiendo el par aplicado al manubrio en lugar del ángulo de dirección, como la variable
de control. Las fuerzas de contacto entre las ruedas y el suelo, ejercen un par en el tene-
dor frontal de la bicicleta cuando hay una inclinación. Bajo ciertas condiciones, este par
gira el tenedor frontal hacia la inclinación. La fuerza centrı́fuga actuando en la bicicleta
contrarresta esta inclinación y puede en algunos casos estabilizar el sistema.

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)

Aquı́, se ha modelado el tenedor frontal simplemente por un balance estático de momentos.


Sean Nf y Ff las componentes vertical y horizontal de las fuerzas que actúan sobre la
rueda frontal, originadas del contacto con el suelo. Despreciando las dinámicas de los
efectos giroscópicos, deformación y deslizamiento de las ruedas y contacto con un suelo
no uniforme, se tiene que:
bmt g bmt v 2 bmt v 2 sin α
Nf = , Ff = = δ. (2-8)
w w2 w2

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:

Tδ − (Ff + Nf ϕf ) c sin α = 0. (2-9)


2.1 Ecuaciones del Movimiento de la Bicicleta 17

ϕ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 χ, γ, ς.

Ahora, combinando esta expresión con las anteriores para Ff , Nf , δf y ϕf se obtiene:

bmt gc sin α bmt c sin α 2


Tδ − ϕ− (v sin α − wg cos α) δ = 0. (2-10)
w w2
El signo del término proporcional a δ en (2-10), será negativo si v > vsa , en donde, vsa =

wg cot α es la velocidad de auto-estabilización.

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:

Dv sin α mt (v 2 h − bgc) sin α


J ϕ̈ − mt ghϕ = δ̇ + δ. (2-15)
w w
Agregando dentro de (2-15) la expresión para el ángulo de dirección δ (2-11), se obtiene:

Dvg mt g 2 (wh cos α − bc sin α)


J ϕ̈ + ϕ̇ + ϕ
v 2 sin α − wg cos α v 2 sin α − wg cos α
(2-16)
Dvw w (v 2 h − bgc)
= Ṫδ + Tδ .
bmt c (v 2 sin α − wg cos α) bc (v 2 sin α − wg cos α)

Este sistema es estable si, v > vsa y wh > bc tan α.

Maniobra

Es importante determinar como el par aplicado sobre el manubrio, afecta la trayectoria


que recorre la bicicleta en movimiento. Para el modelo (2-2) y la dinámica expresada
mediante (2-11), la función de transferencia desde el par de dirección hasta el ángulo de
rotación en el manubrio, se describe ası́:

K1 (v)
GδT (s) = ,
1 + K2 (v)Gϕδ (s)

donde Gϕδ (s) es entregada por (2-3), entonces:

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.

La Fig.2-5, muestra la 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, en un intervalo de [0, 10] m/s. En estado
de reposo, cuando v = 0, este sistema es inestable debido a que tiene sus dos polos ubicados
en p1 = 3.8 y p2 = −3.8. A medida que aumenta la velocidad, p1 comienza a incrementarse
de forma parabólica, hasta alcanzar un valor de 188.29 cuando v = 1.7 m/s. Cuando la
velocidad sobrepasa 1.74 m/s, p1 cambia su signo de positivo a negativo, convirtiendo
en estable la dinámica de la dirección de la bicicleta cuando recibe el par de entrada
Tδ . Incrementando la velocidad por encima de 1.74 m/s, hasta alcanzar 10 m/s, la parte
real e imaginaria de los polos, disminuirá acercándose cada vez más al origen del plano
complejo. Cuando la velocidad alcanza 2.1 m/s, p1 y p2 se convierten de reales a complejos
conjugados.

2.1.2. Modelo de Cuarto Orden con Tres Grados de Libertad

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.

La bicicleta es simétrica con respecto a su eje longitudinal.

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.

No hay efectos de precesión giroscópica. Normalmente este efecto ocurre en las


ruedas de la bicicleta y la hace girar en la dirección en donde ella se está cayendo.

O
x
y
θf

θr δ

Head Angle
O
x ϕ
Trail
z
Wheel Base

Fig. 2-6.: Esquema de una bicicleta en su forma básica.

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

(a) Rueda frontal. (b) Rueda trasera.

(c) Marco trasero. (d) Marco frontal.

(e) Ensamble frontal.

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.

Ecuaciones Linealizadas del Movimiento de la Bicicleta

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

2.1 Ecuaciones del Movimiento de la Bicicleta 23

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

UNLESS OTHERWISE SPECIFIED SIZE DWG NO REV

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

y δ0 = 0, a cierta velocidad de avance definida como v = −θ̇r Rrw .

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.

Tabla 2-3.: Dimensiones y propiedades mecánicas del modelo de la bicicleta, imaginándola


como un sólo cuerpo rı́gido.
Bicicleta completa (Whole bicycle):
Posición de su centro de masa (xt , yt , zt ) (0.4950132, 0.0050044, −0.5632003) m
Masa mt 19.42683703 kg
⎡ T 0 Txz ⎤ ⎡ 7.4236555 0 5.6918344 ⎤⎥
⎢ xx ⎥ ⎢
⎢ ⎥ ⎢ ⎥
Momentos de inercia ⎢ T yy 0 ⎥ ⎢ 14.4191844 0 ⎥ kg ⋅ m2
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢ sym. Tzz ⎥ ⎢ sym. 7.0792746 ⎥⎦
⎣ ⎦ ⎣

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)

y u, la distancia perpendicular entre el eje de la dirección y el centro de masa del


ensamble frontal.
u = (xf − w − c) cos λ − zf sin λ. (2-19)

3. A partir de λ y u, se calculan para el ensamble frontal, el momento de inercia a


lo largo del eje de dirección y los productos de inercia en los puntos donde x y z
se interceptan con este mismo eje. Estos términos se determinan con las siguientes
ecuaciones:

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

4. Se define la distancia perpendicular que el punto de contacto de la rueda frontal


está detrás del eje de dirección como:

f = (c cos λ) /w. (2-23)

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.

Sr = Ayy /Rrw , (2-24)


Sf = Dyy /Rf w , (2-25)
St = Sr + Sf . (2-26)

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.

Mq̈ + vC1 q̇ + (K0 + v 2 K2 ) q = f , (2-28)

En donde,
T T
q=[ ϕ δ ] y f = [ Tϕ Tδ ] .

Tϕ es el par en la inclinación considerado como una perturbación exógena, Tδ es el


par de dirección aplicado por el actuador sobre el eje de giro del ensamble frontal.
Los otros parámetros están en función de los valores de diseño depositados en la
Tabla 2-2 y son calculados como indica el apéndice A de [18] ası́:

Los elementos de la matriz de masa son:

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 ,

los elementos de la matriz de rigidez independientes a la velocidad de avance son:

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

y los elementos de la matriz de rigidez que están multiplicados por el cuadrado de


la velocidad de avance son:
K2 (1, 1) = 0,
K2 (1, 2) = (St − mt zt ) cos λ/w,
(2-31)
K2 (2, 1) = 0,
K2 (2, 2) = (Su + Sf sin λ) cos λ/w.

Los elementos de la matriz de amortiguamiento, los cuales son multiplicados por la


velocidad de avance son:
C1 (1, 1) = 0,
C1 (1, 2) = f St + Sf cos λ + Txz cos λ/w − f mt zt ,
(2-32)
C1 (2, 1) = − (f St + Sf cos λ) ,
C1 (2, 2) = Fλz cos λ/w + f (Su + Tzz cos λ/w) .

La matriz simétrica de masa M , entrega la energı́a cinética resultante de la inclinación de


la bicicleta, sin necesidad de una velocidad de avance v. La matriz de amortiguamiento
dependiente de la velocidad C = vC1 , captura los momentos de los efectos giroscópicos
asimétricos que se originan por las variaciones de inclinación y dirección de la bicicleta
en movimiento. C1 también añade al modelo las reacciones inerciales que se dan debido a
las aceleraciones laterales por variaciones de ψ. Y la matriz de rigidez K, la cual resulta
de la suma de la parte simétrica independiente de la velocidad K0 , proporcional a la
aceleración gravitacional (Cada término de la matriz multiplicado por g), que es usada
para calcular cambios de energı́a potencial; y la otra parte v 2 K2 dependiente del cuadrado
de la velocidad que se origina por efectos centrı́fugos y giroscópicos. Los siguientes valores
para cada una de estas matrices, son los resultados obtenidos de las operaciones anteriores.

7.4236555 0.4381296 0 6.3622089


M=[ ], C1 = [ ],
0.4381296 0.1670309 −0.5851104 0.6071842

−107.4382119 −6.5342155 0 10.9152498


K0 = [ ] , K2 = [ ].
−6.5342155 −1.7902687 0 0.7390443

El modelo expresado mediante la ecuación diferencial linealizada (2-28), se puede escribir


en la forma de un sistema en espacio de estado, seleccionando ϕ, δ y sus derivadas ϕ̇ y δ̇,
como las variables de estado; la entrada de control es el par Tδ aplicado sobre el eje de
dirección; Tϕ es una perturbación exógena; y la salida del sistema puede incluir todas las
variables de estado debido a que son factiblemente asequibles. Entonces, las ecuaciones
en espacio de estado son:

ẋ =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

La ventaja de tener un sistema representado en espacio de estado, es que las ecuaciones


diferenciales resultantes de n-ésimo orden, ahora son escritas como un conjunto de ecuacio-
nes diferenciales de primer orden, lo cual, su estudio resulta más sencillo. Esta realización
en espacio de estado resulta conveniente, ya que las variables que se han seleccionado
y definido como [x], pueden ser medidas fı́sicamente con facilidad. Con las operaciones
algebraicas tomadas de [35], obtenemos las siguientes expresiones para los parámetros de
la ecuación en espacio de estado:
0 I
A =[ 2 ],
−M (K0 + v K2 ) −M (vC1 )
−1 −1

⎡ 0 0 ⎤
⎢ ⎥
⎢ ⎥ (2-35)

B =⎢ 1 0 ⎥⎥ ,
⎢ M [ ], M [ ] ⎥
−1 −1

⎣ 0 1 ⎥⎦
C = I y D = 0.

La dependencia de A sobre la velocidad v, califica al modelo expresado mediante (2-33)


como un sistema LPV (linear-parameter-varying system). Para cada valor instantáneo del
parámetro variante v, resulta un sistema LTI (linear-time-invariant) diferente. Los valores
numéricos de las matrices A, B, C y D para el modelo del prototipo son los siguientes:
⎡ 0 0 1 0 ⎤⎥

⎢ ⎥
⎢ 0 0 0 1 ⎥⎥
A = ⎢⎢ ,
⎢ 14.39155 0.29298 − 1.43068v 2 −0.24461v −0.76016v ⎥⎥
⎢ ⎥

⎣ 1.37011 9.94970 − 0.67185v 2 4.14462v −1.64124v ⎥⎦
⎡ 0 0 ⎤
⎢ ⎥
⎢ ⎥
⎢ 0 0 ⎥
⎥,
B = ⎢⎢ (2-36)
⎢ 0.15938 −0.41805 ⎥⎥
⎢ ⎥

⎣ −0.41805 7.08349 ⎥⎦
⎡ 1 0 0 0 ⎤⎥ ⎡ 0 0 ⎤
⎢ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢ 0 1 0 0 ⎥⎥ ⎢ 0 0 ⎥
C = ⎢⎢ ⎥ y D = ⎢⎢ ⎥.

⎢ 0 0 1 0 ⎥ ⎢ 0 0 ⎥
⎢ ⎥ ⎢ ⎥

⎣ 0 0 0 1 ⎥⎦ ⎢ 0 0



Las localizaciones de los valores propios del sistema (2-36), se muestran en la Fig. 2-9
para valores de v en un intervalo de [0, 10] m/s. Cuando la velocidad v es cero, el sistema
tiene cuatro valores propios reales ubicados en λ1 = 3.7961, λ2 = 3.1017, λ3 = −3.8076 y
λ4 = −3.1846, los cuales están marcados con cı́rculos rojos en la Fig. 2-9. La ubicación de
λ1 y λ2 en el semiplano derecho cuando v = 0, explican la inestabilidad de la bicicleta sobre
su plano vertical longitudinal x, z cuando se encuentra en reposo. Este serı́a el estado más
crı́tico para controlar su inclinación ϕ, actuando solamente sobre su dirección δ. A medida
que aumenta la velocidad en el modelo, λ1 y λ2 se convierten en complejos conjugados
y sus partes reales comienzan a decrecer hasta ubicarse dentro del semiplano izquierdo
cuando v = 3.5 m/s, convirtiendo el sistema en estable. A medida que la velocidad aumente,
λ4 se incrementará desplazándose hacia el semiplano derecho, retornando el sistema a su
condición inestable desde que v = 4.25 m/s.
2.1 Ecuaciones del Movimiento de la Bicicleta 27

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).

Claramente, la dinámica de la planta depende fuertemente de su velocidad de avance,


por lo que se hace evidente que controlar una bicicleta sin conductor es un desafı́o. En
28 2 Modelamiento de la Bicicleta

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.

2.2. Construcción de un Modelo Virtual en ADAMS


Por la motivación de estabilizar la inclinación de una bicicleta real, actuando solamente
sobre su dirección (manubrio y tenedor que guı́an el giro de la rueda frontal), se construyó
un prototipo mecatrónico con todos los aditamentos necesarios para llevar a cabo la tarea
de control requerida. Las ecuaciones del movimiento de una bicicleta necesitan de ciertos
valores geométricos y fı́sicos para revelar su dinámica, los cuales son: longitudes y masas
de sus componentes, momentos de inercia y posición de sus centros de masa sobre algún
sistema de coordenadas especı́fico. Lógicamente, son consideradas ciertas condiciones ini-
ciales y se desprecian algunas dinámicas que se originan en la realidad y que resultan muy
difı́cil expresarlas analı́ticamente.

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

1 21 1 0.056 kg Pinion Set Housing


5
1 20 22 1 0.014 kg Encoder Pinion 1
1 23 1 0.012 kg Encoder Pinion 2
19 24 1 0.004 kg Encoder Pinion 3
1
25 1 0.198 kg Encoder
26 1 0.283 kg Electronic Box
27 1 0.124 kg eZDSP F28335
3
1 DETAIL B 28* 1 0.139 kg Support Card
29 29* 1 0.036 kg ChipKit WF32
10 1 1
8 1 30 1 0.068 kg DC-DC Converter
2
12 1
7 9 6 1 31 1 2.505 kg Battery
2 2 2
32 1 0.363 kg Servomotor
33 1 0.008 kg Horn
34 1 0.011 kg Acrylic Coupler

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

llamado ADAMS/View1 . La herramienta ADAMS, fue creada para simular la dinámica de


sistemas de multicuerpos, y hoy en dı́a, es una de las más usadas en el mundo para entregar
soluciones contundentes a problemas reales de alto nivel ingenieril, mediante su plataforma
que realiza simulaciones aproximadas de la fı́sica del mundo real. En ADAMS/View se
construyó el modelo dinámico del prototipo tal y como se muestra en la Fig. 2-13, para
simular los efectos más relevantes que se originan en este sistema cuando se desplaza
horizontalmente y sin conductor. Para esto, se completaron cada uno de los siguientes
procedimientos:

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.

2. Conectores de cada cuerpo: Se interconectan todos los cuerpos pertenecientes


al prototipo, teniendo en cuenta que todos los elementos que se mueven en una bici-
cleta son rotativos, por ejemplo, las ruedas, el manubrio, los platos y los elementos
acoplados a los motores como piñones y poleas. Es por esto, que la bicicleta es con-
figurada como un mecanismo libre con las piezas inmóviles fijadas al marco trasero,
y la móviles unidas a las fijas por medio de articulaciones de revolución.

3. Acoples entre articulaciones: Se construyen acoples virtuales en las articulacio-


nes enlazadas para darle al modelo un comportamiento dinámico similar al prototipo
real, con respecto a la energı́a que deben entregar los actuadores para generar movi-
miento en el sistema. Con estos acoples se forman dos subsistemas que se encargan
del movimiento en la rueda trasera, para desarrollar la tracción que desplaza a la
bicicleta sobre el suelo, y el movimiento de la dirección para girar hacia la derecha
e izquierda la rueda frontal. Los acoples virtuales simulan el aumento del par que
deben producir los actuadores para generar movimiento en estos subsistemas, de-
bido a que se debe vencer el incremento de la inercia y las fuerzas de fricción por
contacto en cada conjunto de las articulaciones enlazadas.
En el susbsistema de tracción, el prototipo tiene las estrellas fijas a la rueda trasera,
y estas a su vez, están acopladas a los platos y bielas por medio de una cadena; y
otra cadena, acopla los platos con el piñón que está fijado en el eje del motor DC,
el cual, es el actuador encargado de darle movimiento al subsistema.
Para el subsistema de dirección, otro motor DC mueve hacia la derecha y hacia la
izquierda el ensamble frontal de la bicicleta, por medio de una correa dentada que
acopla una polea fijada en el eje del motor mediante un sujetador (horn arm) y otra
polea fijada en el eje del manubrio.

4. Fricción de las partes móviles: Se establece un modelo de fricción dinámica tal


y como se muestra en la Fig. 2-14, para simular aproximadamente las velocidades
1
ADAMS/View es uno de los paquetes de programas que contiene MSC ADAMS. Ver: http://www.
mscsoftware.com/product/adams
32 2 Modelamiento de la Bicicleta

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 .

La transición de velocidad dinámica vd , depende de la máxima deformación estática


(Stiction), el cual define el máximo arrastre durante la transición estática. Este
arrastre le permite a ADAMS/Solver(C++) imponer las condiciones de Coulomb
para la fricción estática. Para este modelo se tomó una máxima deformación estática
de δs = 0.01.

µ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.

6. Actuadores del modelo: El prototipo poseerá dos motores o actuadores para


manipular los subsistemas de tracción y dirección respectivamente. De esta mis-
ma forma se agregaron los actuadores al modelo dinámico virtual desarrollado en
ADAMS/View. La Fig.2-15 muestra la forma como ADAMS/View representa gráfi-
2
El coeficiente µs , corresponde al coeficiente de fricción calculado por la herramienta SKF Bearing
Calculator. Ver: http://www.skf.com/us/products/.
2.2 Construcción de un Modelo Virtual en ADAMS 33

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.

Impact Normal Force


Materials steel vs asphalt rubber vs asphalt
Stiffness 1.0E+008 1.0E+008
Force exponent 2.2 2.2
Damping 1.0E+004 1.0E+004
Penetration depth 1.0E-004 1.0E-004
Coulomb Friction Force
Materials steel vs asphalt rubber vs asphalt
Static coefficient 0.6 0.72
Dynamic coefficient 0.4 0.72
Stiction transition velocity 0.1 0.1
Friction transition velocity 1.0 1.0

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

Fig. 2-15.: Acople del actuador en el subsistema de dirección creado en ADAMS/View. Se


observa que hay dos articulaciones acopladas y cada una de ellas tiene agregada la componente
de fricción. La articulación conectada con el servomotor muestra que ahı́ existe un actuador.

7. Variables de entrada y de salida del sistema: Se crea un arreglo con las


variables de entrada y de salida del modelo construido en ADAMS/View, para ma-
nipularlas de forma externa a través de otra plataforma computacional, como por
ejemplo MATLAB. El programa externo provee las señales de entrada del modelo
y adquiere las salidas correspondientes a la dinámica de su movimiento, calculadas
por medio del entorno ADAMS/Solver (C++). El conjunto de entradas y salidas
es lo que esencialmente se necesita para diseñar alguna estrategia que controle el
modelo virtual.

8. Exportar modelo a MATLAB/Simulink: Habiendo completado los procedi-


mientos anteriores, se enlaza posteriormente el modelo no lineal del prototipo con
34 2 Modelamiento de la Bicicleta

MATLAB/Simulink mediante la herramienta ADAMS/Controls. Este enlace permi-


te desarrollar una co-simulación (concurrent simulation) entre ambas plataformas,
en donde se puede implementar la estrategia de control, analizar su desempeño,
validar su efectividad en la estabilización, y visualizar de forma interactiva el mo-
vimiento del prototipo virtual, antes de ejecutarla en la planta real. En [37–39] se
explican detalladamente los procedimientos realizados anteriormente para la cons-
trucción del modelo virtual en ADAMS.

1
1 ADAMS_uout Rear Wheel Angular Speed

Forward Torque 2
U To Workspace
2 Steering Angular Speed

Steering Torque Mux MSC Software Demux 3


3 Lean Angular Speed
ADAMS Plant
Disturbance 1 4
4 ADAMS_yout Steering Angle

Disturbance 2 5
Mux Y To Workspace
Lean Angle
ADAMS_tout Demux

Clock T To Workspace

Fig. 2-16.: Modelo desarrollado en ADAMS/View y enlazado a MATLAB/Simulink mediante


la herramienta ADAMS/Controls. Este diagrama de bloques permite la co-simulación entre
ADAMS y MATLAB.
3. Estrategias de Control y Simulaciones
El objetivo principal de esta tesis es plantear e implementar una estrategia de control que
logre estabilizar automáticamente la inclinación de una bicicleta, para que se desplace
a cierta velocidad de avance constante, moviéndose libremente sin conductor sobre una
superficie considerada como plana y uniforme.

En el Capı́tulo 2 se explicó que la dinámica de una bicicleta y su naturaleza inestable


modelándola como un ensamble de cuatro cuerpos rı́gidos, se forma por el desbalance
de fuerzas y momentos que se originan generalmente por la reacción que ejerce el suelo
en dirección contraria de su peso, su velocidad de desplazamiento horizontal y los giros
producidos por la dirección del manubrio, además de otros efectos tales como, precesión
giroscópica, deformación, deslizamiento y fricción dinámica, que se producen por el movi-
miento giratorio de las ruedas y el contacto continuo que existe entre ellas y la superficie
del suelo. Las dos ecuaciones definidas en (2-28), se describen como un acople dinámico
de ecuaciones diferenciales lineales con coeficientes dependientes de la velocidad de avan-
ce, que predicen el comportamiento de la inclinación de la bicicleta ϕ por causa de su
velocidad de avance v y el ángulo de dirección δ resultante del par aplicado en el eje de
giro del ensamble frontal Tδ [40].

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

independiente, logrando en ella un valor constante, transformarı́a los coeficientes de las


ecuaciones del movimiento de (2-28) en valores constantes, permitiendo que sea más fácil
de estabilizar la inclinación.

ϕ 1

[Actuator_1] Trw ϕ̇ 2

[Disturbance] Tϕ δ 3

δ̇ 4
[Actuator_2] Tδ
v 5
Actuator_2

Disturbance

Actuator_1

y x
z

gravity

Fig. 3-1.: Co-simulación entre MATLAB/Simulink y ADAMS/View. El modelo construi-


do en ADAMS/View es enlazado con MATLAB/Simulink, para crear entre los dos una co-
simulación, en donde ADAMS/Solver C++ realiza los cálculos de la dinámica del sistema y
MATLAB/Simulink los cálculos del controlador.

Para observar y analizar el desempeño de los controladores sobre la bicicleta modelada,


se creó una co-simulación que enlaza los entornos MATLAB/Simulink y ADAMS/View,
permitiendo visualizar de forma interactiva el movimiento de la bicicleta, mientras se
ejecutan simultáneamente las soluciones numéricas del sistema de control en MATLAB y
las soluciones numéricas del modelo dinámico en ADAMS/Solver C++, ya sea de forma
continua o discreta.

3.1. Control de Velocidad de Avance


En la Subsección 2.1.2, la velocidad de avance de la bicicleta fue aproximada como
v = −θ̇r Rrw . Entonces, se propone controlar la velocidad angular de la rueda trasera
θ̇r , aplicándole el par requerido a su eje de giro. La dinámica de la tracción en la bicicleta,
puede simplificarse analizándola como un conjunto de fuerzas y momentos que intervienen
en la rueda trasera para generar su movimiento desde su estado de reposo. La Fig. 3-2,
muestra en un diagrama simplificado de cuerpo libre, la rueda trasera con las fuerzas y
momentos concentrados, en donde v es la velocidad lineal del centro de masa, Fn es la
fuerza normal concentrada en el eje de giro, la cual, es exactamente el peso de la bicicleta,
asumiendo que se mueve sobre una superficie plana, Ff es la fuerza de fricción que ejerce
3.1 Control de Velocidad de Avance 37

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

Fig. 3-2.: Diagrama de cuerpo libre de la rueda trasera de la bicicleta.

A partir de las fuerzas y momentos definidos en el movimiento de la rueda trasera, se


deriva el siguiente modelo lineal de parámetros concentrados:

Ff (t) = mt Rrw θ̈r (t),


(3-1)
Trw (t) = Ayy θ̈r (t) + µd θ̇r (t) + Rrw Ff (t),

en donde mt es la masa total de la bicicleta, Ayy es el momento de inercia de la rueda con


respecto a su eje de giro, y µd = 0.03, es el coeficiente de fricción dinámico establecido en
la articulación rotativa de la rueda, el cual, fue definido en la Sección 2.2. Combinando
estas dos ecuaciones se tiene que:

(Ayy + mt Rrw ) v̇ + µd v = Trw Rrw . (3-2)

Este modelo de 1er orden no considera deslizamiento ni deformación de la rueda trasera


cuando hay tracción, es decir, que no hay fricción dinámica entre el suelo y la rueda, por lo
tanto, el coeficiente de deslizamiento del suelo siempre es constante, independientemente
del par aplicado en su eje [41]. El modelo tampoco tiene en cuenta los componentes de la
bicicleta que están acoplados a la rueda trasera y se oponen a su movimiento. La función
de transferencia desde el par aplicado a la rueda trasera Trw , hasta su velocidad lineal v,
se describe ası́:
Rrw
GvT (s) = . (3-3)
(Ayy + mt Rrw ) s + µd
La función de transferencia GvT (s), es el modelo seleccionado para establecer una estra-
tegia de control que logre mover la bicicleta a una velocidad de avance deseada.

Diseño del Controlador

Considerando que la dinámica del subsistema de tracción está expresada mediante la


función de transferencia GvT (s), una acción de control PI es adecuada para gobernar
su salida v(t) (velocidad de avance en función del tiempo) bajo variaciones suaves de la
referencia. Debido a que GvT (s) es esencialmente un sistema estable de 1er orden, con
una curva de nyquist localizada dentro del 1er y 4to cuadrante del plano complejo, un
controlador PI con una buena sintonización de sus ganancias, proveerá en estado estable
38 3 Estrategias de Control y Simulaciones

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

Fig. 3-3.: Diagrama de Nyquist de la función de transferencia del subsistema de tracción


GvT (s).

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:

Trw (t) = −Kp ev (t) − Ki ∫ ev (t)dt, (3-4)

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

entonces, la función de transferencia de lazo cerrado desde la referencia v ∗ (t), hasta la


salida v(t) nos resulta:

No (s) C(s)GvT (s) Kp s + Ki


To (s) = = = . (3-6)
Do (s) 1 + C(s)GvT (s) Ayy + m R
t rw Kp Rrw + µd
( ) s2 + ( ) s + Ki
Rrw Rrw

La sintonización de las ganancias Kp y Ki , puede realizarse mediante una localización


arbitraria de los dos polos de To (s). Estos polos son entregados por la ecuación carac-
3.1 Control de Velocidad de Avance 39

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 +
‡
+ + +nˆt Trw ˆt Rrw v ˆt
Ki
+ R ˆAyy  mt Rrw  s  µd

+
1st Order Traction Model

Ka

Fig. 3-4.: Diagrama de bloques del controlador en el subsistema de tracción.

La respuesta de GvT (s) con la estructura de control PI + Anti-Windup y para una


referencia constante v ∗ (t) = vm = 1.5 m/s, se muestra en la Fig. 3-5. Las ganancias Kp y
Ki fueron calculadas a partir de los valores ζ = 1 y ω0 = 2, los cuales, ubican las raı́ces
de la ecuación caracterı́stica (3-8) en s1,2 = −2. Los lı́mites de saturación del actuador
fueron establecidos entre 0 y 30 Nm; y la ganancia Ka fue calculada con la operación

Ka = 4/ ( Ki /2Kp ).

En la Fig. 3-6 se muestra la salida del controlador PID + Anti-Windup. La gráfica de


color rojo muestra la salida del controlador n(t); y la de azul, la salida del saturador
Trw (t) o el par que debe generar el actuador del subsistema de tracción para alcanzar la
velocidad de referencia mı́nima de estabilización considerada como vm = 1.5 m/s.
40 3 Estrategias de Control y Simulaciones

Closed loop response with forward speed controller


1.6

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 nˆt
100
Saturated control signal Trw ˆt
Rear wheel torque generated by forward speed controller
120
80
Torque (Nm) Torque (Nm)

Control signal nˆt


100
60 Saturated control signal Trw ˆt

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-6.: Señal de salida del controlador PI + Anti-windup.

3.2. Control de Inclinación


Para controlar la inclinación de la bicicleta, se proponen dos estrategias de control en
cascada basadas en la metodologı́a de Rechazo Activo de Perturbaciones (ADRC), las
cuales, se constituyen básicamente de un sistema de control que realimenta las variables
de estado de un modelo lineal simplificado, estimadas mediante un observador extendido
Proporcional Integral Generalizado (GPI) que tiene la particularidad especial de estimar
en un estado adicional, las dinámicas no modeladas y las perturbaciones endógenas y
exógenas que afectan a la planta. La Fig. 3-7 muestra un esquema general del sistema
de control propuesto para estabilizar la bicicleta. En esta figura, pueden apreciarse las
dos estrategias de control basadas en observador GPI que conforman al controlador de
inclinación.

La primera estrategia o lazo de control llamado controlador estabilizador, tiene la función


de generar la referencia de posición angular necesaria en la dirección, para contrarrestar
la inclinación producida por su inestabilidad y desbalance. El segundo lazo de control
llamado controlador seguidor, es el encargado de seguir la referencia generada por el con-
trolador estabilizador. Este seguidor debe comandar el actuador acoplado en el manubrio,
obligándolo a producir el par requerido para dirigir de forma efectiva el subsistema de
dirección a la posición angular que indica la referencia.

En la Subsección 3.2.1, se explica detalladamente la estrategia de un sistema de control


basado en observador GPI. Luego, en la Subsección 3.2.2 y la Subsección 3.2.3 se describe
3.2 Control de Inclinación 41

Lean Controller Tϕ ˆt


GPI Observer-Based
Controller GPI Observer-Based Disturbance
ϕ ˆt
‡
Controller
Stabilizer δ ˆt
‡

Controller Tracker Tδ ˆt ϕˆt


Controller
Bicycle δ ˆt
Model
v ˆt +
‡ Forward Trw ˆt v ˆt
Speed
Controller
PI Controller

Fig. 3-7.: Esquema general del sistema de control propuesto para estabilizar la bicicleta.

como es aplicada esta estrategia en los controladores estabilizador y seguidor, pertene-


cientes al control de inclinación.

3.2.1. Estrategia de Control basada en Observador GPI


La clave en ADRC, es diseñar un observador extendido (ESO) para la estimación “online”
de las dinámicas no modeladas y perturbaciones, las cuales generan incertidumbre cuando
se propone una estrategia de control basándose en el modelo de la planta. La metodologı́a
GPI consiste en ver la representación de un sistema lineal o no lineal de la forma (entrada-
salida), como un sistema lineal perturbado por un término aditivo, el cual, sólo el orden
de integración del sistema y la ganancia que acompaña a su entrada, son considerados
relevantes para el diseño de la estrategia de control. El término aditivo unificado en la
dinámica (entrada-salida), puede ser efectivamente estimado a través de un observador
GPI. En la estimación, el efecto de la perturbación concentrada, es modelada como un
polinomio en función del tiempo y embebido en el modelo interno del observador. Con
esta información, el controlador es diseñado para cancelar este término de perturbación y
regular el sistema lineal resultante.

Formulación del Problema

Considerando un modelo matemático expresado como el siguiente sistema:

y (n) (t) = %u(t) + φ(t, y(t), ẏ(t), . . . y (n−1) (t)) + ζ(t), (3-10)

en donde se define la constante %, como la ganancia que acompaña a la entrada del


sistema; el término φ(t, y(t), ẏ(t), . . . y (n−1) (t)), como una función que reúne el resto de
las dinámicas internas que hacen parte del modelo, ya sean lineales o no lineales; y último
término ζ(t), como la función que representa las perturbaciones externas. Este sistema
sin perturbaciones, ζ(t) = 0, es diferencialmente plano, debido a que internamente sus
variables son expresadas como funciones diferenciales de la salida y(t). Entonces, y(t) es
una salida plana porque está constituida naturalmente de una representación canónica
controlable en espacio de estado [44]. Bajo el enfoque ADRC, las dinámicas internas y las
perturbaciones externas del sistema (3-10), son asociadas en un término aditivo unificado,
42 3 Estrategias de Control y Simulaciones

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:

1 La función de perturbación ξ(t) es completamente desconocida, mientras que la


ganancia % que está multiplicándose por la entrada, es perfectamente conocida.

2 Siendo m un número entero positivo, la m-ésima derivada con respecto al tiempo


de ξ(t) es uniformemente y absolutamente acotada. Es decir, que existe un valor
constante Km tal que supt ∣ξ (m) (t)∣ ≤ Km .

La caracterı́stica 1 , asegura la independencia de ξ(t) con respecto a u(t). Esto permite


proponer una ley de control sin limitaciones que sea robusta aunque haya incertidumbre
en el valor real del parámetro %. La caracterı́stica 2 , fue definida para establecer la
existencia de una solución para la ecuación diferencial (3-11).

Observador Extendido GPI

Teniendo en cuenta el sistema lineal simplificado (3-11), se propone un observador al


estilo Luenberger para la estimación del estado relacionado al sistema y de la función
de perturbación ξ(t). El esquema de estimación consiste de una copia de la planta lineal
simplificada, pero aumentada por un modelo aproximado de la función de perturbación
y con inyecciones ponderadas del error de estimación (y(t) − ŷ(t)). Este esquema debe
garantizar una dinámica estable y arbitrariamente gobernada por el error de estimación.

Si la función de perturbación ξ(t) puede aproximarse a un modelo lineal, entonces, una


estimación asintótica de ξ(t) es posible mediante un observador lineal. Por otro lado, si
el modelo lineal con el cual fue aproximado ξ(t), es válido sólo localmente, entonces, su
estimación obtenida por medio del observador lineal, es asintóticamente convergente hacia
un valor estimado localmente válido. Por consiguiente, se asume que la función ξ(t), puede
ser localmente modelada como un polinomio en función del tiempo de grado (m − 1), más
un término residual r(t), es decir,

ξ(t) = z(t) + r(t) = b0 + b1 t + . . . + bm−1 tm−1 + r(t), ∀t. (3-12)

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

Considerando la aproximación de dm ξ(t)/dtm = r(m) (t) ≈ 0, el modelo de la función de


perturbación es embebido dentro del modelo aumentado del sistema, el cual, es caracte-
rizado por el siguiente vector de estado extendido, x(t) = [x1 (t) x2 (t) . . . xn+m (t)]T con
x1 (t) = y(t), x2 (t) = ẏ(t), . . . , xn (t) = y (n−1) (t), xn+1 (t) = ξ(t), . . . , xn+m (t) = ξ (m−1) (t).
Entonces, el modelo aumentado del sistema en espacio de estado, resulta ası́:

ẋ(t) = Ax(t) + B%u(t) + Eξ (m) (t), y(t) = Cx(t), (3-13)


⎡ 0 1 0 ... ⎤0 ⎡ 0 ⎤
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢ 0 0 1 ... ⎥0 ⎢ ⋮ ⎥
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
con A = ⎢ ⋮ ⋱ ⎥ ∈ R
⋮ (n+m)×(n+m)
, B = ⎢ 1(n-ésima posición) ⎥ ∈ R(n+m)×1 ,
⎢ ⎥ ⎢ ⎥
⎢ 0 0 0 ... ⎥1 ⎢ ⋮ ⎥
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢ 0 0 0 ... ⎥0 ⎢ 0 ⎥
⎣ ⎦ ⎣ ⎦
1×(n+m) T
C=[ 1 0 ... 0 ] ∈ R y E = [ 0 0 ... 1 ] ∈ R (n+m)×1
.
Ahora, denotando x̂j (t) como la estimación de xj (t) para j = 1, 2, . . . , n+m, el observador
extendido GPI propuesto para la estimación del estado x(t), es planteado de la siguiente
manera:
ˆ = z(t),
ξ(t)

x̂˙ 1 (t) = x̂2 (t) + ln+m−1 (y(t) − x̂1 (t)) ,


x̂˙ 2 (t) = x̂3 (t) + ln+m−2 (y(t) − x̂1 (t)) ,

ξ̂(t)
³¹¹ ¹ ¹ ¹ ·¹ ¹ ¹ ¹ ¹ µ
x̂˙ n (t) = x̂n+1 (t) +%u(t) + lm (y(t) − x̂1 (t)) , (3-14)
x̂˙ n+1 (t) = x̂n+2 (t) + lm−1 (y(t) − x̂1 (t)) ,

˙x̂n+m−1 (t) = x̂n+m (t) + l1 (y(t) − x̂1 (t)) ,
x̂˙ n+m (t) = l0 (y(t) − x̂1 (t)) .

El sistema de ecuaciones lineales (3-14), puede entonces expresarse ası́:


˙
x̂(t) = Ax̂(t) + B%u(t) + L(y(t) − ŷ(t)), ŷ(t) = C x̂(t), (3-15)

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)

con Ae ∈ R(n+m)×(n+m) y su polinomio caracterı́stico en función de la variable compleja s,


que está dado por:

Pẽx (s) = det(sI − Ae ) = sn+m + `n+m−1 sn+m−1 + . . . + `1 s + `0 . (3-17)


44 3 Estrategias de Control y Simulaciones

Los coeficientes `n+m−1 , . . . , `1 y `0 de la función polinomial Pẽx (s), deben seleccionarse


para que todas sus raı́ces estén ubicadas a la izquierda del eje imaginario del plano com-
plejo C. Entonces, todas las trayectorias de los errores de estimación ẽx1 (t), ẽx1 (t), . . . ,
ẽx(n+m−1) (t) y ẽx(n+m) (t), convergen globalmente a una pequeña vecindad de cero donde
permanecerán acotadas. Esta vecindad puede ser tan pequeña como se desee, mediante
una adecuada selección de las ganancias `n+m−1 , . . . , `1 y `0 .

Controlador basado en Observador GPI

El controlador es diseñado con el objetivo de establecer de una manera dominante, un


polinomio caracterı́stico del error de seguimiento de alguna trayectoria deseada. Para
realizar esto, la ley de control debe estar compuesta por:

Un término “feed forward ”, para los casos cuando la trayectoria de referencia de la


salida plana, puede conocerse y/o manipularse.

La realimentación del estado x̂(t), estimado por el observador GPI y ponderado por
las ganancias del controlador.

Un término de rechazo activo de las perturbaciones, el cual, es básicamente la esti-


ˆ = z(t), que también entrega
mación aproximada de la función de perturbación ξ(t)
el observador GPI.

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.

3.2.2. Controlador Estabilizador


Este controlador debe generar la referencia de posición angular en el manubrio δ ∗ (t), que
dirija el ángulo de inclinación de la bicicleta hacia la referencia ϕ∗ (t) = 0. Para diseñar la
estrategia, se asume una velocidad de avance constante v(t) = vm ∀t, y se utiliza la función
3.2 Control de Inclinación 45

de transferencia Gϕδ (s) formulada en (2-3), con la cual, es posible realizar el siguiente
análisis algebraico:

ϕ(s) = Gϕδ (s)δ ∗ (s),


2
⎛ vm D s + mt vm h ⎞
(3-20)
ϕ(s) = ⎜ wJ wJ ⎟

⎟ δ ∗ (s),
⎜ 2
mt gh ⎟
⎝ s − J ⎠

en donde se define una variable intermedia del sistema us (s),


2
vm D mt vm h ∗
us (s) = ( s+ ) δ (s), (3-21)
wJ wJ
entonces,
⎡ ⎤
⎢ ⎥
⎢ wJ ⎥
⎢ ⎥
δ (s) = ⎢

⎥ us (s) (3-22)
⎢ 2 D ⎥
⎢ vm ( s + mt h) ⎥
⎢ vm ⎥
⎣ ⎦
y
⎛ ⎞
1
ϕ(s) = ⎜
⎜ ⎟ us (s).
⎟ (3-23)
m t gh
⎝ s2 − ⎠
J
Despejando us (s) de (3-23), tenemos la ecuación

mt gh
(s2 − ) ϕ(s) = us (s), (3-24)
J
que puede aproximarse por el siguiente sistema simplificado diferencialmente plano:

s2 ϕ(s) = us (s) + ξ1 (s), (3-25)

o en el dominio del tiempo,


ϕ̈(t) = us (t) + ξ1 (t). (3-26)
Este sistema puede verse como una planta nominal compuesta de una doble derivada en
el tiempo ϕ̈(t) = us (t), perturbada por una función desconocida y variante en el tiempo
ξ1 (t), que contiene de manera unificada, el otro término de la ecuación que depende de
ϕ(t), otras posibles dinámicas presentes en la planta que no están modeladas y alguna
perturbación exógena que también podrı́a afectar la respuesta de la planta.

Diseño del Observador GPI

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].

Una aproximación de bajo orden, requiere un diseño de un observador de alto ancho


de banda, el cual, podrı́a entregar estimaciones ruidosas en las aplicaciones prácticas.
Aumentando el orden de la aproximación se soluciona el problema de estimaciones ruidosas
y se construye una mejor aproximación de la función de perturbación, pero el problema
de localización de los valores propios del observador y las ganancias de la estrategia de
control, para que impongan sobre la planta un seguimiento óptimo de la referencia, se
vuelve más difı́cil.

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:

det (sI − (A − LC)) = s3 + l2 s2 + l1 s + l0 , (3-28)

a la izquierda del eje imaginario de C, lo cual genera, un asintóticamente, exponencial-


mente y decreciente error de estimación. Para sintonizar adecuadamente las ganancias
del observador, se utiliza el método de Asignación de Relaciones Caracterı́sticas (CRA)
explicado en el Anexo B, el cual, fue desarrollado para controlar la respuesta transitoria
de una planta arbitraria, mediante algún sistema de control lineal diseñado para ubicar
los polos de lazo cerrado en el lugar indicado por este método.

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

la constante de tiempo dominante generalizada como τ = 0.1 para establecer sobre el


observador un bajo ancho de banda (≈ 77 rad/s); y el parámetro α1 = 3.1 para mantener
una respuesta transitoria adecuadamente amortiguada. Estos dos parámetros ubican las
raı́ces del polinomio caracterı́stico del error de estimación en: [−42.475 − 31 − 22.625].

Diseño del Controlador

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:

ẽx1 (t) ẽx2 (t) ẽx3 (t)


³¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹· ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ µ ³¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ·¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹µ ³¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹·¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ µ
ëϕ (t) + K1 ėϕ (t) + K0 eϕ (t) = K0 (ϕ(t) − ϕ̂(t)) +K1 (ϕ̇(t) − ϕ̂(t)) ˙ + (ξ1 (t) − ξˆ1 (t)) . (3-30)

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).

Esquema Final del Sistema de Control Estabilizador

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.

Una caracterı́stica especial de la estrategia de control planteada basada en observador


GPI, es que tiene una propiedad similar a la acción integral que actúa para garantizar que
el ángulo de inclinación sea dirigido hacia cero. En la Fig.3-10 se muestra la simulación de
esta estrategia de control sobre el modelo simple de segundo orden de la bicicleta, tomando
como condición inicial un ángulo de inclinación de 8 (≈0.14 rad). Esta respuesta, se obtuvo °
con una velocidad de avance variante en el tiempo, tal y como se muestra en la Fig. 3-9.
Esta variación de velocidad, está en un rango entre 0.8 y 2.4 m/s, y el sistema de lazo
cerrado sigue resultando asintóticamente estable.
48 3 Estrategias de Control y Simulaciones

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

Fig. 3-8.: Esquema propuesto para el sistema de control estabilizador.

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)

Fig. 3-9.: Variación de la velocidad de avance v(t), impuesta al modelo.

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).

En la Fig. 3-11 se muestra la acción de control estabilizadora. La respuesta dibujada en


esta figura con color rojo, es la referencia real de posición angular en la dirección generada
por el controlador, y la de color azul, es la misma referencia, pero saturada o limitada
desde -1.3 a 1.3 radianes.

3.2.3. Controlador Seguidor


El objetivo de este controlador es alcanzar un seguimiento robusto de la referencia δ ∗ (t),
entregada por el controlador estabilizador. Gobernar el subsistema de dirección para que
responda como lo indique el controlador estabilizador, es una manera de establecer en la
3.2 Control de Inclinación 49

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)

Fig. 3-11.: Referencia δ ∗ (t) generada por el controlador estabilizador.

bicicleta una dinámica semejante a la expresada por la función de transferencia (2-3), y


ası́ lograr que el lazo cerrado del sistema de control de inclinación estabilice eficientemente
la bicicleta cuando está en movimiento, a cierta velocidad de avance mı́nima.

Para iniciar con la formulación de la estrategia de control para el seguimiento de δ ∗ (t),


es considerado el modelo de cuarto orden con tres grados de libertad definido en (2-36).
Tomando la última fila de este sistema de ecuaciones representado en espacio de estado,
se tiene lo siguiente:

δ̈(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.

Aplicando la metodologı́a del enfoque ADRC, las dinámicas internas y perturbaciones


externas que están definidas en (3-31), son asociadas en un término aditivo unificado
definido como ξ2 (t) para simplificar la ecuación tal y como se muestra seguido:
ξ2 (t)
³¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ·¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ µ
δ̈(t) = κu(t) + f (v(t), v 2 (t), δ(t), δ̇(t), ϕ(t), ϕ̇(t), Tϕ (t)) . (3-32)

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).

Diseño del Observador GPI Extendido

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.

Según la metodologı́a planteada en la Subsección3.2.1, basándose en el sistema simplificado


(3-32) y la aproximación del modelo interno de la función de perturbación d4 ξ2 (t)/dt4 =
d4 r2 (t)/dt4 ≈ 0, un observador GPI extendido es formulado de la siguiente manera:
˙
x̂(t) = Ax̂(t) + Bκu(t) + F (δ(t) − δ̂(t)), δ̂(t) = C x̂(t), (3-33)

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

en donde Q, es una matriz simétrica y positiva semidefinida (Q ≥ 0), y R, es una matriz


simétrica y positiva definida (R > 0). Minimizando la función de costo cuadrática (3-34),
se logra una sintonización adecuada para que el observador pueda estimar eficientemente
el estado del modelo aumentado del sistema que incluye a la función de perturbación.
Ajustando los pesos Q y R, se hace posible garantizar algún nivel de robustez en la
estabilidad y penalizar el ruido en las estimaciones.

La solución del problema de optimización se obtiene asignando al sistema una ley de


control de la forma
u(t) = −R−1 B T P x(t), (3-35)
donde la matriz P ∈ Rn×n satisface la ecuación algebraica de Riccati definida como:

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 xˆs  uˆs
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)

que logre minimizar la siguiente función objetivo:



V̄ = ∫ [x̄T (t)Qx̄(t) + ūT (t)Rū(t)] dt. (3-38)
0

Tentativamente, las matrices Q y R fueron seleccionadas con los siguientes valores:


⎡ 100 0 0 0 0 0 ⎤
⎢ ⎥
⎢ ⎥
⎢ 0 100 0 0 0 0 ⎥
⎢ ⎥
⎢ 0 0 940E6 0 0 0 ⎥
⎢ ⎥
Q=⎢ ⎥ y R = 0.1,
⎢ 0 0 0 100 0 0 ⎥
⎢ ⎥
⎢ ⎥
⎢ 0 0 0 0 1000 0 ⎥
⎢ ⎥
⎢ 0 0 0 0 0 1000 ⎥
⎣ ⎦
con los cuales, el método de optimización LQR entrega como resultado las siguientes can-
tidades para el vector de ganancias del observador GPI extendido F = [℘5 ℘4 . . . ℘0 ]T :

F = [98.96 4396.05 97840.65 19697.99 1987.36 100]T .

Entonces, las raı́ces del polinomio caracterı́stico del error de estimación, definido como:

det (sI − (A − F C)) = s6 + ℘5 s5 + ℘4 s4 + ℘3 s3 + ℘2 s2 + ℘1 s + ℘0 , (3-39)


52 3 Estrategias de Control y Simulaciones

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.

En [50], está reportada la formulación de la estrategia de control basada en observador


GPI para sistemas MIMO, y la sintonización del observador por medio del método de op-
timización LQR. Este documento también muestra algoritmos desarrollados en MATLAB
para la selección de las matrices Q y R, los cuales, son muy útiles.

Diseño del Controlador

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:

ẽx1 (t) ẽx2 (t) ẽx3 (t)


³¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ·¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹µ ³¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ·¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹µ ³¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹· ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ µ
˙
ëδ (t) + K3 ėδ (t) + K2 eδ (t) = K2 (δ(t) − δ̂(t)) + K3 (δ̇(t) − δ̂(t)) + (ξ2 (t) − ξˆ2 (t)) . (3-41)

Asumiendo que el error de estimación, localizado a mano derecha de la igualdad en (3-


41), está a cierta vecindad de cero, entonces, la dinámica del error de seguimiento que-
dará dominantemente gobernada por eδ (t)(s2 + K3 s + K2 ) ≈ 0. Un diseño admisible de
la ley de control, se obtuvo calculando las ganancias K2 y K3 por medio del método
CRA del Anexo B, con el cual, fueron ubicadas las raı́ces del polinomio caracterı́stico
en: [−19.09 − 10.24], asignándole al método, la constante de tiempo generalizada como
τ = 0.15, y el otro parámetro requerido para sus cálculos como α1 = 4.4. Estas raı́ces
establecen un tiempo de asentamiento de 0.46 segundos en la respuesta transitoria del
error de seguimiento.

Esquema Final del Sistema de Control Seguidor

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

ξ2ˆt < =
˙ <= < = @x̂A
δ̂ ˆt @@ẋˆAA @@AF C Bκ FAA @@ AA
@A @ A @TδA
δ̂ ˆt @>δ̂A? @> C 0 0A? @@ AA
@δ A
> ?

Extended GPI Observer

Fig. 3-13.: Esquema propuesto para el sistema de control seguidor.

Seguido al controlador estabilizador están dos bloques que representan la derivada y la


segunda derivada de la referencia, las cuales, son utilizadas de la forma como se indica en
la ley de control (3-40). El observador GPI extendido también se encuentra en el esquema
con la función de estimar en lı́nea la función de perturbación, la salida del subsistema
de dirección y su respectiva derivada. El modelo no lineal de cuarto orden de la bicicleta
hace referencia al sistema de ecuaciones en espacio de estado formulado en (2-36). En la
entrada de este sistema hay un saturador que caracteriza la limitación fı́sica del par capaz
de generar el actuador sobre el manubrio, la cual, está en un rango entre -10 a 10 Nm.

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.

Steering output δ ˆt


‡
1.2 Steering reference δ ˆt

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-16 se muestra el seguimiento de la referencia δ ∗ (t) que le impone el controlador


seguidor al modelo de la bicicleta de cuarto orden. La señal de control Tδ (t) que permite
este eficiente seguimiento se muestra en la Fig. 3-17.

3.2.4. Análisis de Desempeño del Control de Inclinación


Con el objetivo de analizar el desempeño de la estrategia de control propuesta, se realizó un
conjunto de simulaciones similares a la subsección anterior, en donde el sistema de control
3.2 Control de Inclinación 55

de inclinación fue implementado al modelo de la bicicleta de cuarto orden, incluyéndole


las variaciones de velocidad de avance de la Fig. 3-9 y el par de perturbación de la
Fig. 3-15. Los parámetros del modelo seleccionado, los cuales resultan de los valores de
las masas y los momentos de inercia depositados en la Tabla 2-2 y la Tabla 2-3, fueron
variados realizando todas las combinaciones posibles que surjan de modificar la masa de
cada cuerpo, multiplicando su valor nominal por 0.7, 0.85, 1, 1.15 y 1.3 en cada iteración.
El propósito, es representar las incertidumbres mediante esta variación paramétrica y
analizar el desempeño de la estrategia de control.

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.

El peor caso de respuesta se obtuvo al multiplicar la masa nominal de cada cuerpo de la


bicicleta por 0.7, a excepción del ensamble frontal (tenedor frontal + manubrio + rueda
frontal), el cual, fue multiplicado por 1.3. Esto quiere decir, que un aumento considerable
de la masa del ensamble frontal con respecto a los demás cuerpos de la bicicleta, empeoran
el desempeño del sistema de control.
56 3 Estrategias de Control y Simulaciones

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

Para cuantificar el desempeño de los controladores (estabilizador y seguidor), se calculó el


ı́ndice de la integral cuadrática del error (ISE) para cada variación paramétrica del modelo,
con el cual, es posible evaluar sus respuestas transitorias, indicando que tan acertado está
siendo el seguimiento de la referencia.

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.

3.3. Co-simulación utilizando ADAMS y MATLAB


De manera complementaria, pudieron evaluarse las estrategias de control de velocidad
de avance e inclinación por medio de simulaciones mejor elaboradas, recreando con las
herramientas ADAMS/View y MATLAB/Simulink una dinámica del movimiento de la bi-
cicleta robot más real que su modelo matemático. ADAMS/View permitió la construcción
de dos modelos virtuales tal y como se ilustra en la Fig. 3-23, para inclinar la bicicleta a
dos posiciones angulares diferentes como condición inicial. Uno de ellos sitúa la bicicleta a
°
0 del plano vertical longitudinal formado por los ejes x y z, mientras que el otro la sitúa
°
a 5 con respecto a este mismo plano.

Fig. 3-23.: Simulación interactiva de la bicicleta en ADAMS.

En MATLAB/Simulink se implementaron los controladores de velocidad de avance e in-


clinación, los cuales, reciben las salidas del modelo de ADAMS y generan sus respectivas
señales de entrada. Por requerimientos de implementación instrumental en el prototipo, los
controladores fueron transformados del dominio continuo del tiempo al discreto por medio
del método de discretización de Tustin, el cual, puede definirse como una aproximación
trapezoidal de integración [51].

Ahora, una selección apropiada de la frecuencia de muestreo adquiere un compromiso para


el sistema de control digital obtenido mediante el método de discretización de Tustin. Se
sabe que el desempeño de un controlador digital mejora a medida que se incremente
la tasa de muestreo, pero los requerimientos del costo computacional, la velocidad de
procesamiento y la resolución numérica pueden incrementarse hasta el punto en que el
sistema pierde la estabilidad. Entonces la frecuencia de muestreo debe seleccionarse con
3.3 Co-simulación utilizando ADAMS y MATLAB 59

el propósito de que todas las especificaciones de desempeño sean cumplidas considerando


el más bajo costo en el producto.

Un criterio admisible para seleccionar la frecuencia de muestreo de los controladores de


velocidad de avance e inclinación en su versión digital, es el presentado en [52]. Según este
criterio, una frecuencia de muestreo ωs que reconstruya el desempeño de la respuesta del
sistema continuo de lazo cerrado puede encontrarse con la siguiente relación:
ωs
25 < < 100. (3-42)
ωb
Para los sistemas de control basados en observador GPI, ωb será el ancho de banda del
observador en la dinámica del error de estimación, con el objetivo de que el desempeño en
la regulación del error de estimación a cero no disminuya por alguna reducción de orden
que se origine en la discretización del observador. En esta aplicación, ωb fue definido
como el mayor ancho de banda entre los dos observadores con los cuales está constituido
el controlador de inclinación, (ωb = 94 rad/s). Entonces, la frecuencia de muestreo debe
seleccionarse dentro de:

2350 rad/s (375 Hz) < ωs < 9400 rad/s (1500 Hz).

Tentativamente se seleccionó una frecuencia de muestreo ωs = 1 KHz, para los controla-


dores de velocidad de avance e inclinación. Esta frecuencia asegura la estabilidad del lazo
cerrado del sistema de control con el modelo LPV de cuarto orden (2-36), para un rango
de velocidad de avance de 0.9 a 3.5 m/s. En la Fig. 3-24 y la Fig. 3-25 se muestra la
localización de los polos del lazo cerrado del sistema, estableciéndole una velocidad de 0.9
y 3.5 m/s respectivamente.
Pole-Zero Map

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

-1 -0.5 0 0.5 1 1.5


Real Axis

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.997 0.998 0.999 1 1.001


Real Axis
0.2
Imaginary Axis

-0.2

-0.4

-0.6

-0.8

-1

-1 -0.5 0 0.5 1 1.5


Real Axis

Fig. 3-25.: Polos del lazo cerrado del sistema con una velocidad de 3.5 m/s.

La Fig.3-26 muestra en un diagrama de bloques los dos controladores digitales trabajando


sobre el mismo modelo virtual. Para la mayorı́a de los sistemas de control, una acción
derivativa no es tan fácil de implementar debido a la sensibilidad al ruido que a ellas
las caracteriza. Es por esto que para calcular las derivadas en el dominio del tiempo
discreto de la referencia generada por el controlador estabilizador δ ∗ (k), se propone usar
el método seguidor y derivador de señales del Anexo A, llamado “Tracking Differentiator
(TD)”, sintonizado con el factor de velocidad r = 800 y el factor de filtrado h = 0.001.

3.3.1. Simulación No. 1 (0° de inclinación inicial)


En esta simulación se demuestra que las estrategias de control de velocidad e inclinación,
logran estabilizar la bicicleta modelada en ADAMS, actuando en ella desde el reposo
(v(0) = 0 m/s) y con una inclinación inicial de ϕ(0) = 0 rad. La Fig. 3-27, muestra la
respuesta de la salida ϕ(k) regulada a cero, el seguimiento de la referencia δ ∗ (k) que el
controlador seguidor basado en observador GPI le impone al subsistema de dirección, y
el seguimiento de la referencia constante v ∗ (k) que establece el controlador PI sobre el
subsistema de tracción. En esta figura también están presentes las estimaciones ϕ̂(k) y
δ̂(k) generadas por los observadores GPI y GPI extendido del controlador de inclinación.

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  4ˆz  1 Tracking δ̂ ˆk + + Tδ ˆk  ϕˆk 
K1 K3 1~κ
P 2ˆz  0.9971 Differentiator P
‡
δ̂ ˆk + +
K2 Adams δ ˆk 
Us ˆk  Kp
Bicycle
‡ Model v ˆk 
v ˆk  + + Tsˆz  1 + + Trwˆk
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.03 Lean output ϕˆk 


Lean estimation ϕ̂ˆk 
-0.04

-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
‡

2.5 Forward speed reference v ˆk 


Forward speed (m/s)

Forward speed output v ˆk 


2

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)

Rear wheel torque


30

25
Torque (Nm)

20

15

10

0
0 5 10 15 20 25 30 35 40
Time (sec)

Applied force above rear frame


40

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.

3.3.2. Simulación No. 2 (5° de inclinación inicial)


En esta segunda simulación, situando inicialmente la bicicleta a una inclinación de 5 con °
respecto al plano formado por los ejes x y z (ϕ(0) = 0.087 rad), y actuando en ella desde
el reposo (v(0) = 0 m/s), se someten las estrategias de control de velocidad de avance e
inclinación a condiciones iniciales menos favorables que la simulación anterior, pero aún
ası́, las estrategias son capaces de estabilizar el sistema.

En la Fig. 3-30, se muestra la respuesta de la salida ϕ(k) regulada a cero, y el desempeño


en el seguimiento de los perfiles de referencia δ ∗ (k) y v ∗ (k), alcanzado por el controlador
seguidor y de velocidad de avance sobre los subsistemas de dirección y tracción respecti-
vamente. En la figura también pueden apreciarse las correctas estimaciones ϕ̂(k) y δ̂(k)
que proveen los dos observadores del control de inclinación.

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.15 Lean output ϕˆk 


Lean estimation ϕ̂ˆk 

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 
‡

2.5 Forward speed output v ˆk 


Forward speed (m/s)

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)

Rear wheel torque


30

25
Torque (Nm)

20

15

10

0
0 5 10 15 20 25 30 35 40
Time (sec)

Applied force above rear frame


30

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.2 Lean angular speed output ϕˆk  1


Lean angular speed estimation ϕ̂ˆk  1
-0.3

-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].

Habiendo diseñado las estrategias de control en el capı́tulo anterior y encontrado la sin-


tonización que entrega el mejor desempeño a partir de las respuestas generadas por el
modelo construido en ADAMS/View, surge la necesidad de realizar la implementación
instrumental de las técnicas de control que permitirán estabilizar de forma autónoma la
bicicleta real, durante un recorrido a velocidad constante. Para lograr este objetivo, fue
importante y necesario investigar sobre aquellos dispositivos y mecanismos con los que
contarı́a el prototipo robótico, los cuales, fueron capaces de cumplir con los siguientes
requerimientos:

Sincronı́a de movimiento entre las partes comandadas por los actuadores y las otras
que se mueven indirectamente por ellas.

Libre movilidad del prototipo construido.

Acciones de control rápidas y precisas.

Frecuencia de muestreo, resolución y exactitud adecuadas en las señales de los sen-


sores.

Rápida y constante adquisición, procesamiento y almacenamiento de datos.

Implementación segura y eficiente del controlador en el sistema embebido seleccio-


nado.

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.

En la Sección 4.1 presentada a continuación, se describen los componentes utilizados para


la construcción del prototipo Bicicleta Robot de la Universidad Nacional; luego, poste-
riormente en la Sección 4.2, se explica el acondicionamiento y validación de las señales
de los sensores, definidas como las variables de salida del sistema. Este procedimiento es
requerido para obtener una medición de las variables con la mayor aproximación posible
a la realidad.

4.1. Instrumentos Pertenecientes al Prototipo


Los instrumentos que hacen parte de la bicicleta robot, se refieren a todos los disposi-
tivos eléctricos y electrónicos necesarios que fueron agregados para el desarrollo de esta
aplicación de control de estabilidad, tales como, actuadores, procesadores o controladores,
sensores y baterı́as de alimentación eléctrica. A continuación se describen las caracterı́sti-
cas, funcionalidad, localización y componentes mecánicos de fijación y acople para todos
estos instrumentos.

4.1.1. Actuadores del Prototipo


Motor del Sistema de Tracción

Para el sistema de tracción, es usado un motor DC industrial, fabricado por Matsushita


Electric, que funciona a 22 V y 3 A. Este motor que se muestra en la Fig. 4-1, es fijado
en una base y sujetado al marco como se observa en la Fig. 4-2. El motor transmite su
movimiento a través de un piñón en el final de su eje, que se encuentra acoplado mediante
una cadena al eje central o de pedales, el cual, fue modificado con un doble juego de
platos en cada uno de sus extremos. Uno de estos juegos mueve la llanta trasera de forma
convencional como cualquier bicicleta de montaña (Platos en el eje central transmitiendo el
movimiento al juego de estrellas que está ensamblado en la rueda trasera, mediante cadena
4.1 Instrumentos Pertenecientes al Prototipo 69

y relevadores para realizar el cambio de velocidades), mientras que el otro transmite la


velocidad del motor DC al eje central.

Fig. 4-1.: Motor DC que trabaja en el sistema de tracción.

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-2.: Sistema de tracción de la bicicleta.


70 4 Instrumentación en la Bicicleta

Motor del Sistema de Dirección

En el subsistema de dirección se utiliza como actuador un servomotor Giant Hitec de refe-


rencia HS-1000SGT. El juego de piñones internos de este dispositivo eléctrico está hecho
completamente de acero, lo que resulta muy útil para ejercer un par de magnitud conside-
rada y movimientos rápidos en ambos sentidos de su eje de giro, lo cual, lo hace adecuado
para comandar las acciones de control requeridas sobre el manubrio de la bicicleta.

(a) Servomotor Hitec HS-1000SGT. (b) Piñones internos del servomotor.

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.

Fig. 4-4.: Estructura interna de un servomotor convencional1 .

Básicamente, estos servomotores poseen un motor DC acoplado a un sistema de engranajes


o caja reductora de velocidad, un potenciómetro lineal ensamblado en la salida de esta
caja reductora para que trabaje como sensor, y una pequeña tarjeta electrónica donde
está embebido el controlador de posición del motor DC interno. Este controlador adquiere
del potenciómetro la señal analógica de posición angular del motor, seleccionada como
1
Fuente de la imagen: http://www.makerelectronico.com/servomotor-control-atmega/.
4.1 Instrumentos Pertenecientes al Prototipo 71

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.

Fig. 4-5.: Sistema de dirección del prototipo.

En el prototipo, el servomotor fue modificado suprimiendo su tarjeta controladora para


actuar directamente sobre el motor DC y conseguir una salida controlable de Voltaje-
Par limitada hasta 12.8 V, para que se puedan tener magnitudes de corriente que eleven
considerablemente el par en el manubrio hasta 10 o -10 Nm. La Fig. 4-5 muestra el acople
del manubrio de la bicicleta con el servomotor modificado. Como se observa, la transmisión
de movimiento entre el servomotor y el manubrio se realiza mediante una correa dentada
y la medición del angulo de dirección del manubrio se obtiene directamente por medio del
potenciómetro acoplado al sistema de engranajes del servomotor.

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.

4.1.2. Sensores en el Prototipo


Sensor de Inclinación del Prototipo

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

trasero de la bicicleta hacia la derecha o hacia la izquierda. Esta medición de posición


angular es la variable que se desea estabilizar, por lo tanto, se necesita limpia, precisa
y con adecuada resolución y frecuencia de muestreo, para establecer una estrategia de
control precisa y rápida que utilice esta señal como lazo de realimentación. Es por esto
que se utiliza el sensor YEI 3-Space mostrado en la Fig. 4-6.

Fig. 4-6.: Sensor YEI 3-Space.

El sensor YEI 3-Space es un dispositivo miniatura de alta precisión y fiabilidad, el cual,


usa internamente un giroscopio triaxial, un acelerómetro y un compás, en conjunto con
un procesador, para determinar a través de algoritmos de orientación filtrada basada
en cuaterniones, la orientación relativa de este dispositivo con respecto a un marco de
referencia absoluto predefinido. En la Fig. 4-7 se muestra por medio de un diagrama de
bloques la manera como el sensor YEI 3-Space trabaja internamente.
USB 2.0 Serial SPI Master
Host System Host System Host System

TSS Embedded

Processor
USB 2.0 Asynchronous SPI Slave
Interface Serial Interface Interface

USB Mouse &


Final
Joystick
Orientation
Emulation Non-volatile
Calibration &
Kalman Performance
Filter Settings

Scale, Bias, Normalization, &


Error Compensation

3-Axis 3-Axis 3-Axis Temperature


Accelerometer Rate Gyro Compass Sensor

Fig. 4-7.: Procesamiento embebido del sensor YEI 3-Space2 .

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

Fig. 4-8.: Localización del sensor YEI 3-Space en el prototipo.

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.

Sensor de Corriente ACS712 para el Subsistema de Dirección

Con la medición continua de la corriente que mueve la dirección de la bicicleta, haciéndola


girar en cualquiera de sus dos sentidos, hace posible determinar cuanto es el par requerido
para realizar este movimiento. Es por esto, que esta medición permite conocer como es la
relación voltaje/corriente internamente en el motor, y ası́ poder caracterizar su sistema
eléctrico y relacionarlo con su sistema mecánico.

Fig. 4-9.: Sensor de corriente ACS712.

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

en la salida, correspondientes a la corriente medida en un rango entre -1.25 A y 1.25 A.


3

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

hay corriente pasando a través de sus terminales de medición (borneras). La adquisición


de datos se realizó con la herramienta XPC Target de MATLAB, versión R2011B.

Sensor de Corriente Tamura S22P006S05 para el Subsistema de Dirección

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)

Fig. 4-12.: Sensor de corriente Tamura S22P006S05.

2.7

http://www.oemsec.com/thumb/product/2013012202/S22P006S05.jpg[7/31/2015 6:52:37 PM]

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.

Sensor de Posición Angular de la Dirección

Para leer la posición angular de la dirección o el ensamble frontal de la bicicleta, usamos el


potenciómetro lineal de la Fig. 4-15 que está internamente ensamblado a la caja reductora
del servomotor Hitec. La señal del potenciómetro es adquirida de la misma manera como
se muestra en la Fig. 4-4, a través de la salida del elemento nombrado como Pot.

Luego de modificar el servomotor suprimiendo su tarjeta controladora, los pines de cone-


xión del potenciómetro son cableados hacia el exterior de su cubierta, con el fin de obtener
4.1 Instrumentos Pertenecientes al Prototipo 77

Fig. 4-15.: Potenciómetro lineal ensamblado a la caja reductora del Hitec.

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.

Sensor de Velocidad Angular de la Rueda Trasera

Se asume que la velocidad de avance de la bicicleta resulta de multiplicar la velocidad


angular de la rueda trasera por la longitud de su radio, por lo tanto, se utiliza el encoder
rotatorio de cuadratura de la Fig. 4.16(a), como medidor de la velocidad angular de la
rueda. Este encoder de cuadratura de referencia E6B2-CWZ3E, entrega 1024 pulsos por
revolución y trabaja de 5 a 12 V.

Brown 5 to 24V DC
R2
2K

T1 OUTPUT Black: OUTPUT A


White: OUTPUT B
Orange: OUTPUT Z
Main
Circuit
3.3
R1

Blue 0V

(a) Encoder YUMO. (b) Circuito eléctrico interno del encoder.

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

Tabla 4-1.: Especificaciones técnicas del encoder.

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.

Fig. 4-17.: Encoder ensamblado a la llanta trasera.

4.1.3. Controladores del Prototipo


Tarjeta de Interconexión de Dispositivos

Esta tarjeta visualizada en la Fig. 4-18, es la que sirve de interconexión y comunicación


de todos los dispositivos del prototipo. Los circuitos internos que posee esta tarjeta, los
cuales, están detallados en el Anexo D, son los siguientes:

Reguladores de tensión de 5 V y 3.3 V.


4.1 Instrumentos Pertenecientes al Prototipo 79

Driver para el motor DC Matsushita.

Pre-Driver para el motor DC de Hitec.

Circuito acondicionador para la señal del encoder.

Circuito acondicionador para la señal del sensor de corriente S22P006S05.

Circuito de alimentación y comunicación entre el sensor YEI 3-Space y la tarjeta de


desarrollo ChipKit.

Circuito de alimentación del potenciómetro interno que posee el Hitec.

Conexiones de la salida del potenciómetro y la salida acondicionada del sensor de


corriente, con los módulos de conversión análoga a digital que poseen las tarjetas
ChipKit y eZDSP.

Conexión directa entre el Driver del motor DC del Hitec y algunos puertos digitales
de las tarjetas ChipKit y eZDSP generadores de PWM.

Fig. 4-18.: Tarjeta de interconexión de dispositivos.

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.

Puente H para el Motor Acoplado en la Dirección

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.

(a) Puente H de Pololu. (b) Conexiones del puente H de Pololu.

Fig. 4-19.: Puente H que controla el motor acoplado al manubrio.

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 .

Tarjeta para la Implementación del Controlador

Por la necesidad de implementar los controladores de estabilización del prototipo en un


sistema embebido portable, de bajo peso, con sus dimensiones relativamente pequeñas,
que sea eficiente, rápido y con un determinado conjunto de funciones útiles que permitan
desarrollar algoritmos para cualquier estrategia de control, fue seleccionada la tarjeta
eZDSP F28335 de Spectrum Digital mostrada en la Fig. 4-20.

Internamente, esta tarjeta utiliza como procesador el Controlador Digital de Señales


(DCS) TMS320F283358 , el cual, contiene módulos de conversión de señal análoga a digi-
tal, contadores digitales, módulos de captura de flancos, generadores de señales PWM e
6
Ver: http://circuitcalculator.com/.
7
La ficha técnica del dispositivo se encuentra en: https://www.pololu.com/product/755.
8
La ficha técnica del DCS se encuentra en: http://www.ti.com/product/tms320f28335.
4.1 Instrumentos Pertenecientes al Prototipo 81

Fig. 4-20.: eZDSP F28335 de Spectrum Digital.

interfaces de comunicación CAN y RS232, que pueden utilizarse en la implementación de


cualquier sistema de control. El DCS puede operar a una velocidad de hasta 150 MIPS,
permitiendo ejecutar rápidamente los algoritmos de control y procesamiento de señales.
Su programación es desarrollada en C y se utiliza el software Code Composer Studio
(CCS) como herramienta de empaquetado y compilación al lenguaje assembler. A par-
tir de MATLAB/Simulink son estructurados los controladores, y mediante su toolbox
Embedded Coder se exportan a Code Composer Studio para que sean posteriormente
compilados y cargados al eZDSP de forma “Stand Alone”.

Tarjeta de Apoyo en Almacenamiento de Datos

De la forma como se planteó la instrumentación de la bicicleta, fue requerida una tarjeta


de apoyo para ejecutar tres tareas en tiempo real, las cuales son: 1) La comunicación con
el sensor de orientación YEI 3-Space a través de su interfaz serial ası́ncrona (UART); 2)
La conversión a señales de voltaje PWM de los valores de orientación adquiridos mediante
este sensor; 3) La adquisición de las otras variables que hacen parte del prototipo señaladas
como relevantes; y 4) El almacenamiento de todos los datos adquiridos en una tarjeta de
memoria microSD.

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

Fig. 4-21.: Tarjeta ChipKit WF32.

(Multi-Platform Integrated Development Environment), que fue desarrollado basándose


en Arduino.

4.1.4. Energı́a en el Prototipo


La bicicleta robot está dividida en dos sistemas eléctricos, en uno de los sistemas están
conectados todos los dispositivos que trabajan en el control (sensores y tarjetas electróni-
cas); y en el otro, los actuadores encargados del movimiento de la rueda trasera y el
ensamble frontal. Dos baterı́as son fijadas al marco trasero de la bicicleta para energizar
de forma independiente cada sistema eléctrico. Estas baterı́as fueron seleccionadas tenien-
do en cuenta la potencia eléctrica requerida por cada sistema, y el peso de cada una, el
cual, debe asegurar su portabilidad por parte del prototipo sin dificultar su movilidad.
La energı́a requerida por los sensores y demás dispositivos de control, es muy baja en
comparación con la demandada por los actuadores, es por esto que la comunicación entre
estos dos sistemas se realizó mediante opto-acopladores.

Baterı́a para el Suministro de Energı́a a los Actuadores

La baterı́a encargada de suministrar energı́a eléctrica a los dos actuadores acoplados en la


bicicleta, se muestra en la Fig. 4-22. Esta baterı́a en forma de botella, viene con accesorios
para que sea ensamblada de manera fácil al marco de la bicicleta tal y como se muestra
en la Fig. 4-23.

Esta baterı́a entrega un voltaje de 28 V y tiene una capacidad de suministro de carga de


8 Ah. La selección de esta baterı́a se debió a su bajo peso en comparación con las baterı́as
de ácido de plomo, su estructura en forma de cápsula agradable a la vista, su capacidad de
almacenamiento de energı́a y demás accesorios que ella posee, como el barraje de fijación
para su ensamble y el juego de cables con un potente cargador de energı́a. Todas estas
caracterı́sticas y accesorios fueron desarrolladas en principio por el fabricante, pensando
en dotar a las bicicletas con asistencia eléctrica.
4.1 Instrumentos Pertenecientes al Prototipo 83

Fig. 4-22.: Baterı́a de Ion de Litio para energizar los actuadores.

Fig. 4-23.: Baterı́a ensamblada en el marco de la bicicleta.

Baterı́a para el Suministro de Energı́a a Sensores y Dispositivos Electrónicos

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.

Regulador de Voltaje del Sistema de Dirección

Esta tarjeta se encarga de disminuir y regular la tensión proveniente de la baterı́a grande


en forma de cápsula. El voltaje DC de 28 V que proporciona la baterı́a, sobrepasa el lı́mite
de tensión permitido por el motor DC del Hitec que está acoplado en la dirección. Una
conexión directa de este motor con la baterı́a, lo quemarı́a inmediatamente por la elevada
corriente que circuları́a entre sus bobinas. Es por esto que se usa el regulador de tensión
(Step Down) diseñado especı́ficamente para estas aplicaciones.

Fig. 4-25.: Tarjeta reguladora de carga DC - DC (Step Down).

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

un Trimmer. La configuración de este circuito llamado “Buck Converter DC - DC ”, le


permite a la tarjeta regular de forma ajustable una tensión de hasta 24 V, siempre y
cuando su voltaje de entrada esté por encima del voltaje requerido en la salida (hasta 30
V); y es capaz de entregarle a la carga conectada en su salida hasta 8 A.

Regulando la tensión de alimentación del motor de la dirección, se limita su máxima


corriente a valores permitidos por sus bobinas y se generan lı́mites de saturación sobre
la acción de control implementada en el sistema. El motor es asegurado contra elevadas
corrientes, pero el par en la dirección quedará limitado por lo que desarrolle el motor con
el voltaje regulado.

4.2. Acondicionamiento y Validación de las Señales de los


Sensores
La Fig. 4-26 muestra el prototipo completado, con todos los componentes anteriormente
descritos ensamblados en el. La caja de acrı́lico que se muestra en la Fig. 4-28, contiene
las tarjetas electrónicas sujetadas dentro de ella. En esa caja están, el eZDSP, la tarjeta
ChipKit, la tarjeta de unión de dispositivos, y el módulo step-down. La Fig. 4-27 muestra
un esquema general que describe el funcionamiento de la bicicleta robot. Los controladores
que se implementarán sobre el eZDSP, serán generalmente cálculos computacionales que
entregan respuestas aproximadas a modelos matemáticos diseñados a partir de la ley de
control previamente sintonizada, que obtuvo el mejor desempeño según sus simulaciones.

Fig. 4-26.: Prototipo completado.

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

eZdsp F28335 (Spectrum Digital) Tδ ˆt


ϕ ˆk 
‡
+
PWM Pololu HITEC
Lean Full-Bridge DC
Controller Direction S22P006S05 -
Driver Sensor Motor
Power Supply
10VDC/3A Analog Signal
Signal Linear
δ ˆk  Conditioning Analog Signal Potentiometer
ChipKit WF32
Signal Duty Cycle UART Rx Tx YEI 3-Space Lean Angle
ϕˆk  Conditioning Measurement Signal iˆk  Module Sensor
Conditioning Tx Rx Tδ ˆt
ϕˆk 
Traction Subsystem
Signal
Conditioning ASCII to PWM
PWM
δ ˆk 
Packaging Trw ˆt
Encoding to PWM Decoding to
PWM ASCII v ˆk 
microSD Steering Subsystem
Card
Trw ˆt
v ˆk 
‡
+
Speed Matsushita
PWM Half-Bridge
- DC
Controller Driver
v ˆk  Motor
Power Supply
28VDC/3A
Signal Frecuency Pulse Generator Incremental
Conditioning Measurement Encoder
86
Fig. 4-27.: Sistema mecatrónico del prototipo en diagrama de bloques.
4.2 Acondicionamiento y Validación de las Señales de los Sensores 87

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.

Fig. 4-28.: Caja sujetadora armada con todas las tarjetas.

4.2.1. Medición de Velocidad de Avance con el Encoder


El encoder provee una señal digital que genera 1024 pulsos por cada giro completo de
su eje. Para medir la velocidad de avance de la bicicleta, esta señal primeramente es
acondicionada, y luego, es medido su perı́odo por medio del módulo “Enhanced Capture
(ECAP)” que contiene el eZDSP. Con este valor medido es realizada la siguiente operación:

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.

Para validar esta velocidad adquirida mediante el encoder, se implementó un controlador


PI sobre el sistema de tracción, sintonizado para que lo ayude a seguir un perfil de ve-
locidad, tal y como se muestra en la Fig. 4-29. Este controlador toma como entrada el
error entre la referencia pre-establecida y la velocidad calculada a partir de la señal del
encoder. Y en su salida, entrega por medio de una señal PWM, el voltaje requerido por
el motor DC para moverlo a la velocidad lineal indicada por la referencia.

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.

le toma girar un determinado número de vueltas y calculando su velocidad lineal con la


siguiente operación:
2πRrw Nv
ṽ = . (4-2)
t
En donde t es el tiempo cronometrado, Rrw es el radio de la rueda trasera, el cual tiene
una longitud de 32.41 cm, y Nv es el número de vueltas que logra la rueda en este tiempo.
En la Tabla 4-2 están depositados los resultados de los experimentos, los cuales, validan
la velocidad medida por medio del encoder, mostrando que es acorde con la realidad.

Tabla 4-2.: Medición experimental de la velocidad lineal de la rueda trasera, cronometrando


el tiempo que tarda en girar un determinado número de vueltas.

No. Vueltas Tiempo [seg] Velocidad [m/s]


3 3.93 1.5545
6 7.90 1.5466
9 11.73 1.5624
12 15.61 1.5654
15 19.65 1.5545

4.2.2. Medición de Posición Angular con el Potenciómetro


El potenciómetro acoplado al motor DC del Hitec tiene un alcance de rotación de 208
grados. Este instrumento utilizado como sensor de posición de la dirección, fue excitado
4.2 Acondicionamiento y Validación de las Señales de los Sensores 89

con 3.258 V y se tomaron lecturas de voltaje en su salida para diferentes posiciones


angulares ajustadas con un transportador. Estos valores que se muestran en la Tabla 4-3,
validan la linealidad de este sensor.


208º

Fig. 4-30.: Alcance de posición angular del motor DC de Hitec.

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.

Tabla 4-3.: Valores en obtenidos en la medición de posición angular con el potenciómetro.


Estos valores fueron medidos directamente desde sus terminales con un multı́metro digital.

Posiciones angulares [Grados] Voltaje de salida (SIGNAL) [V]


0.0 ° 3.197
13.5 ° 3.006
32.0 ° 2.773
134.0 ° 1.214
152.7 ° 0.914
172.5 ° 0.635
208.0 ° 0.109

4.2.3. Medición de Corriente con el Sensor S22P006S05


Para medir la corriente en la dirección, la señal de salida del sensor S22P006S05 es acon-
dicionada usando el circuito que se muestra en la Anexo D.5. Un circuito alterno similar
al del anexo, fue desarrollado para realizar pruebas con el sensor. A este circuito le fue
montado un multı́metro y una resistencia de 10Ω/20W en la entrada de corriente del
sensor, para analizar los valores de voltaje que el entrega en su salida.

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

Fig. 4-31.: Circuito de prueba para el sensor de corriente S22P006S05.

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.

Corriente IF+ [A] Voltaje de salida (SIGNAL) [V]


-1.25 1.355723
-1.00 1.380137
-0.75 1.406992
-0.50 1.433848
-0.25 1.458262
0.00 1.485117
0.25 1.511973
0.50 1.536387
0.75 1.563242
1.00 1.590098
1.25 1.614512

4.2.4. Medición de Inclinación con el Sensor YEI 3-Space


Antes de medir la inclinación de la bicicleta mediante el sensor YEI 3-Space, debe reali-
zarse una previa calibración de este sensor, que ajuste la medición de los sensores internos
que el posee (giroscopio, acelerómetro y compás). Para esto, es usado un software de
prueba desarrollado por YEI Technology, la empresa fabricadora y comercializadora del
sensor. Este programa es una interfaz gráfica que entrega el acceso a las caracterı́sticas
programadas dentro de el, y permite visualizar en tiempo real la orientación de sus ejes
4.2 Acondicionamiento y Validación de las Señales de los Sensores 91

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

Reference frame placed on bicycle home position


Orientation of principal axes given by YEI 3-Space sensor

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.

respecto al sistema de coordenadas mostrado en la Fig. 2-8, que está localizado en el


punto de contacto de la rueda trasera cuando ella se encuentra en su posición de Home.

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)

En donde H R∗YEI es la matriz de rotación instantánea que expresa la orientación en el


tiempo del sensor YEI 3-Space con respecto al marco de referencia de la bicicleta. P RYEI
es una matriz constante que cambia el marco de referencia de la matriz de rotación ins-
tantánea P R∗YEI entregada por el sensor para indicar la orientación de sus ejes principales,
al marco de referencia formado por el sistema de coordenadas establecido sobre la bici-
cleta. P RYEI se obtiene solicitándole al sensor YEI 3-Space la matriz de rotación cuando
la bicicleta es colocada en su posición de Home y el sensor está fijado a su marco trasero.
La Fig. 4-33 muestra el marco de referencia de la bicicleta establecido en su posición de
Home (verde), y el marco de referencia que entrega el sensor en esta posición (rojo).
⎡ −0.39267 0.90834 0.14395 ⎤⎥

P ⎢ ⎥
RYEI = ⎢⎢ −0.32542 0.00916 −0.94552 ⎥⎥ .
⎢ ⎥
⎢ −0.86017 −0.41813
⎣ 0.29200 ⎥⎦

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

que se derivan de la representación de orientación en ángulos de Euler [56].


H
R∗YEI = R (z, ψ) R (y, θ) R (x, ϕ) ,
⎡ a ⎤ ⎡ ⎤
⎢ 11 a12 a13 ⎥ ⎢ cψcθ cψsθsϕ − sψcϕ cψsθcϕ + sψsϕ ⎥ (4-4)
⎢ ⎥ ⎢ ⎥
= ⎢⎢ a21 a22 a23 ⎥⎥ = ⎢⎢ sψcθ sψsθsϕ + cψcϕ sψsθcϕ − cψsϕ ⎥.

⎢ ⎥ ⎢ ⎥
⎢ a31 a32 a33 ⎥ ⎢ −sθ cθsϕ cθcϕ ⎥
⎣ ⎦ ⎣ ⎦
En donde ψ, θ y ϕ, son los ángulos instantáneos de rotación en los ejes x, y y z, que hacen
parte del sistema de coordenadas de la bicicleta y pueden calcularse como se muestra
seguido.

θ = sin−1 (−a31 ) ,
ϕ = atan2 (a31 /cθ, a33 /cθ) , (4-5)
ψ = atan2 (a21 /cθ, a11 /cθ) .

El ángulo ϕ corresponde a la inclinación del marco trasero de la bicicleta en tiempo real,


la cual, fue calculada a partir de una matriz que representa la orientación instantánea de
los ejes principales del sensor YEI 3-Space, a una velocidad de lectura de 250 Hz cuando
el filtro de Kalman trabaja en la estimación de la orientación. Podrı́a decirse que ϕ, es
la señal de salida del sistema en tiempo discreto, que gobernará el sistema de control,
estabilizándola y llevándola a valores muy cercanos a 0 . °
5. Implementación de los Sistemas de
Control
En general, la implementación de los sistemas de control de velocidad de avance e in-
clinación en la bicicleta real, fue una tarea en donde resultaron varias complicaciones
que tuvieron que solventarse paso a paso. Antes de planear cualquier experimento, fue
necesario comprobar que los actuadores, sensores y tarjetas controladoras, funcionaran
sin cometer ninguna clase de errores durante su ejecución, cuando la bicicleta estaba en
movimiento.

El sistema mecatrónico construido para esta aplicación logró apropiadamente su propósito,


pero para conseguir el mejor desempeño de las estrategias de control, algunos instrumentos
deberán reemplazarse por otros de mejor calidad, incrementando los costos del sistema.
La bicicleta tampoco cuenta con un espacio adecuado, que tenga una superficie plana,
espaciosa, y de fricción moderada para realizar las pruebas de estabilidad. Varios expe-
rimentos tuvieron que realizarse en un sitio de asfalto irregular y con abolladuras, que
someten el prototipo a altas vibraciones en su recorrido. Antes de realizar las pruebas de
estabilidad se realizaron los siguientes procedimientos:
1. Las ganancias del controlador PI de velocidad de avance, fueron sintonizadas tenien-
do en cuenta el modelo obtenido para el motor DC del subsistema de tracción, en el
Anexo C. Según este modelo, las ganancias del controlador se sintonizaron con los

valores de Kp = 120, Ki = 50 y Ka = 4/ Ki /Kp , ubicando los polos de lazo cerrado
en [−23.092 − 0.257].

2. El modelo (3-26), con el cual se diseñó el controlador estabilizador, fue modificado


por
ϕ̈(t) = ρus (t) + ξ1 (t). (5-1)

Entonces, el observador GPI queda formulado de la siguiente manera:


ˆ = Ax̂(t) + Bρus (t) + L (ϕ(t) − ϕ̂(t)) ,
ẋ ŷ(t) = C x̂(t). (5-2)

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

A las ganancias K0 y K1 , se les asignaron los mismos valores de las simulaciones, y


la ganancia que acompaña a us (t), fue definida como ρ = 4.9.

3. En el prototipo se implementaron las versiones digitales de los controladores re-


diseñados de velocidad de avance e inclinación, los cuales, fueron calculados mediante
el método de discretización de Tustin, con la misma frecuencia de muestreo utilizada
en la simulación con el modelo virtual (1 KHz). El sistema de control tiene una
limitante que vale la pena analizar, y es la baja frecuencia de actualización (250 Hz)
del sensor YEI 3-Space en la medición de su orientación, la cual, fue utilizada para
determinar la inclinación de la bicicleta. Esta frecuencia de actualización define al
controlador de inclinación como un Sistema Discreto de Múltiples Tasas de Muestreo
que afecta el desempeño del observador GPI asociado al controlador estabilizador.
Para analizar el efecto “multitasa (lento-rápido)” sobre el observador GPI del con-
trolador estabilizador, fue considerado el modelo por diagrama de bloques de la
Fig. 5-1, en donde T es el perı́odo de muestreo o tiempo de actualización del sensor
YEI 3-Space, G1 (s), G2 (s) y G3 (s) son las dinámicas de las componentes del obser-
vador representadas como funciones de transferencia que reciben como entrada la
señal de inclinación a 250 Hz, y Ghp (s) es la dinámica del retenedor poligonal que
utiliza el método de discretización de Tustin, representada también como función
de transferencia:
Slow Fast
sampler sampler
ϕˆt ϕˆkT  C1 ˆkT ~4
Ghp ˆs G1 ˆs
T 1~250 seg T ~4

Fast
sampler
C2 ˆkT ~4
Ghp ˆs G2 ˆs
T ~4

Fast
sampler
C3 ˆkT ~4
Ghp ˆs G3 ˆs
T ~4

Fig. 5-1.: Sistema discreto con multitasa de muestreo.

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:

G1 (z) T = Z [G1 (s)]∣z=z 1/4 ,T =T /4 ,


4

G2 (z) T = Z [G2 (s)]∣z=z 1/4 ,T =T /4 , (5-4)


4

G3 (z) T = Z [G3 (s)]∣z=z 1/4 ,T =T /4 .


4

Las funciones de transferencia, G1 (z) T , G2 (z) T y G3 (z) T , mantendrán la misma


4 4 4
ubicación de polos que presenta el observador sometido a una frecuencia de muestreo
igual para su entrada y su salida. Entonces la estabilidad estará asegurada para el
rango de frecuencias de muestreo establecido en (3-42). En la Fig. 5-3, Fig. 5-4 y la
97

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

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4


Time (sec)

Fig. 5-2.: Señal de entrada en la simulación del observador GPI con multitasa de muestreo.

1
ϕˆtG1 ˆ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
ϕˆtG2 ˆ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
ϕˆtG3 ˆ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.

4. Las estrategias de control basadas en observador GPI, tienen la caracterı́stica de


generar un alto sobrepico durante sus primeros instantes de tiempo en su ejecución.
Para corregir este sobrepico, la estimación de las perturbaciones ξ1 (t) y ξ2 (t), es
multiplicada por una función en el tiempo discreto m(k), diseñada para construir
una transición suave de 0 a 1, tal y como se muestra en la Fig. 5-6. En [58, 59] se
analiza la estabilidad de ADRC para sistemas lineales y no lineales, que usan esta
función de transición llamada como “Clutch”.

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)

Fig. 5-6.: Transición suave para las estimaciones de las perturbaciones.

⎧ 1 π
⎪ (1 − sin (2πkTs + ))

⎪ kTs < 0.5 s
m(k) = ⎨ 2 2 (5-5)

⎩1 kTs ≥ 0.5 s

5. En el prototipo, la entrada de control del subsistema de dirección, es el voltaje de


excitación del motor DC del Hitec que está acoplado al marco frontal, y no el par
aplicado en las simulaciones, para maniobrar este subsistema. Entonces, el modelo
simplificado del subsistema de dirección (3-32), debe ser reformulado teniendo en
cuenta las dinámicas internas del motor DC definidas en el conjunto de ecuaciones
(C-6)) del Anexo C.2. La ecuación que relaciona el par aplicado al subsistema de
dirección Tδ (t), con el voltaje de excitación del motor DC ν(t), es la siguiente:

L Kt Kb Kt
Tδ (t) + Ṫδ (t) = ν(t) − δ̇(t). (5-6)
R R R

Agregando (5-6) dentro de (3-32), se obtiene el siguiente modelo simplificado para


5.1 Resultados experimentales 99

el subsistema de dirección:

δ̈(t) = κ̃ν(t) + ξ˜2 (t), (5-7)

κ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.

5.1. Resultados experimentales


La prueba experimental de estabilidad del prototipo, fue realizada sobre un callejón de
asfalto con un área de 4 × 60 m2 . En esta prueba, el controlador de velocidad de avance
tiene como referencia v ∗ (k) = 2.1 m/s. La Fig. 5-7 muestra la evolución de la velocidad
de avance del prototipo v(k), cuando se desplaza por el callejón. La prueba se detiene
cuando la bicicleta llega a cualquiera de los lı́mites del espacio utilizado.
2.5

Supported with hands

2
Forward speed (m/s)

1.5

0.5

Forward speed reference v ˆk 


Forward speed output v ˆk 
‡

0
0 5 10 15 20 25 30 35
Time (sec)

Fig. 5-7.: Velocidad de avance alcanzada por la bicicleta controlada.

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.

La Fig. 5-9, muestra la referencia δ ∗ (k) generada por el controlador estabilizador, y el


seguimiento de esta referencia impuesto por el controlador seguidor al subsistema de di-
rección del prototipo. En la Fig.5-7, Fig.5-8 y la Fig.5-9, se muestra una zona delimitada
por una lı́nea vertical en los primeros segundos del experimento, que corresponde al tiem-
po en el cual, el prototipo cuenta con el apoyo de mi mano en su movimiento. Después de
esta lı́nea, la bicicleta se mueve de forma autónoma, sin ningún apoyo.
100 5 Implementación de los Sistemas de Control

Lean reference ϕ ˆk‡

10
Lean output ϕˆk 

Supported with hands


5
Angle (deg)

-5

-10

0 5 10 15 20 25 30 35
Time (sec)

Fig. 5-8.: Evolución del ángulo de inclinación de la bicicleta controlada.

40
Steering output δˆk
30 Steering reference δ ˆk
‡

Supported with hands


20

10
Angle (deg)

-10

-20

-30

-40
0 5 10 15 20 25 30 35
Time (sec)

Fig. 5-9.: Evolución del ángulo de dirección de la bicicleta controlada.

Fig. 5-10.: Prototipo en movimiento, balanceando automáticamente su postura vertical.

En el Anexo E, Anexo F y el Anexo G, está consignada toda la programación que fue


desarrollada para controlar la inclinación del prototipo. La Fig. 5-10 muestra el prototi-
5.1 Resultados experimentales 101

po en movimiento, desplazándose con una velocidad de avance constante de 2.1 m/s, y


balanceándose automáticamente en su posición vertical, mediante la estrategia de control
de inclinación propuesta para maniobrar el ensamble frontal de la bicicleta y compensar
su inestabilidad1 .

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 la realidad, el prototipo no es un cuerpo simétrico con respecto al plano longitudinal


vertical que forman los ejes x y z, y su centro de masa está desplazado hacia el eje y.
Entonces, no existe la zona de auto-estabilización que se muestra en el modelo de cuarto
orden con tres grados de libertad, pero la inclinación de la bicicleta es estabilizable bajo
cierta velocidad de avance mı́nima tomada como condición inicial, y los resultados reales
que se obtuvieron dan soporte a esta afirmación.

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.

Basándose en el modelo, se estableció una metodologı́a para cuantificar el desempeño de la


estrategia de control propuesta, ante variaciones de la velocidad de avance, perturbaciones
externas e incertidumbres en el modelo representadas como variaciones paramétricas. Los
resultados obtenidos en el análisis de desempeño, indican que la estrategia es capaz de
estabilizar el sistema adecuadamente, aún con los efectos negativos que generan las supo-
siciones anteriormente nombradas. La estructura del controlador de inclinación (dos lazos
104 6 Conclusiones y recomendaciones

de control basados en observador GPI), dificulta el planteamiento de alguna metodologı́a


para cuantificar la robustez de este controlador. Para un trabajo futuro deberá conside-
rarse proponer algún procedimiento que permita calificar la robustez de la estrategia de
control que se pretenda diseñar.

En las experimentaciones, el controlador de inclinación fue capaz de responder satisfac-


toriamente, a pesar de la baja tasa de actualización del sensor YEI 3-Space (250 Hz), la
cual genera un retardo en las señales de salida del observador GPI asociado al contro-
lador estabilizador, y el ruido presente en la señal de salida del potenciómetro utilizado
para medir el ángulo de dirección de la rueda frontal, que limita el ancho de banda del
controlador seguidor. Con respecto al controlador de velocidad de avance, el par generado
por el actuador del subsistema de tracción es moderado y restringe considerablemente el
desempeño y la eficiencia de este sistema de control.

Las estrategias de control propuestas de velocidad de avance e inclinación cumplieron


de manera eficaz con los objetivos de control, logrando estabilizar la inclinación de la
bicicleta durante un tiempo promedio de 15 segundos, a una velocidad constante de 2.1
m/s y sobre un terreno de asfalto reducido e irregular que aumentó considerablemente
las vibraciones del prototipo durante su recorrido, dificultando aún más la estabilización
de la planta. Lógicamente, para aumentar el tiempo promedio de estabilización, la planta
deberá modificarse y los instrumentos del prototipo deberán reemplazarse por otros de
mayor capacidad y calidad.

La estabilización autónoma del prototipo desplazándose a velocidad constante pudo lo-


grarse en las experimentaciones, pero bajo ciertas condiciones iniciales que favorecen al
control de inclinación en el arranque. La primera de estas, es que la bicicleta debe ser
asistida desde su estado de reposo, ayudándola a estabilizar su postura vertical hasta
que alcance una velocidad de avance igual o mayor a 2.1 m/s. Y la segunda, es que la
aceleración inicial de su desplazamiento debe ser constante y no mayor a 0.35 m/s2 .

Puede concluirse que la efectividad de la estrategia de control propuesta, se logró por la


estimación activa de las posibles no-linealidades y perturbaciones que afectan al prototipo
durante su libre movimiento, por medio de dos observadores GPI, los cuales, alcanzan
a recuperar el desempeño del modelo lineal simplificado (cadena de integradores) de la
planta, permitiendo ası́, que la estructura lineal de la leyes de control establecidas en
los lazos de estabilización y seguimiento, impongan sobre la planta las dinámicas de las
referencias de entrada. El seguimiento de la referencia constante de velocidad de avance que
establece el controlador PI al subsistema de tracción, ayuda notablemente al controlador
de inclinación porque limita la magnitud y la tasa de variación de las perturbaciones
exógenas que afectan al sistema, incrementando su controlabilidad puesto que se reducen
las variaciones de sus parámetros dependientes de esta variable. Un trabajo interesante
para desarrollar a futuro, serı́a proponer alguna estrategia de control que sea igualmente
dependiente de la velocidad de avance, con sus ganancias auto-sintonizables mediante
algún criterio de optimización, para mejorar la robustez del sistema de lazo cerrado ante
6.2 Recomendaciones 105

las perturbaciones e incertidumbres del modelo.

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.

2. El motor DC del subsistema de tracción, deberá reemplazarse por otro de mayor


potencia, que esté diseñado especialmente para las bicicletas eléctricas y para que
sea ubicado directamente sobre la rueda trasera.

3. El sensor de orientación deberá reemplazarse por otro de mayor resolución y fre-


cuencia de muestreo, y que las perturbaciones electromagnéticas del medio ambiente
causen una despreciable distorsión en sus mediciones de orientación.

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.

6. La estructura de la bicicleta puede modificarse, ensamblando amortiguadores en las


ruedas para que disipen las fuerzas de impacto que se generan cuando la bicicleta
se desplaza por un terreno irregular, reduciendo las vibraciones en la planta, pero la
dinámica de la bicicleta cambia y las estrategias de control tendrán que resintonizarse
o reformularse.

7. Para plantear alguna estrategia de control multivariable, que varı́e la velocidad de


avance y la dirección de la bicicleta con el objetivo de optimizar la estabilidad de la
bicicleta, deberá considerarse implementar algún sistema de frenado sobre la rueda
trasera.

8. Para mejorar las pruebas experimentales de estabilidad, deberá localizarse un lugar


adecuado que sea espacioso, plano, sin irregularidades ni abolladuras en el terreno
y con fricción moderada. Esto permitirá evidenciar mejor los resultados de las es-
trategias de control que se propongan implementar.
A. Anexo: Método Seguidor y Derivador de
Señales “Tracking Differentiator”
Tracking Differentiator (TD), es un método con propiedades de filtrado, que genera un
eficiente desempeño en seguimiento y derivación para funciones de entrada, caracterizadas
por variaciones suaves en el dominio del tiempo, superando las no-linealidades causadas
por perturbaciones y ruido. Por tal motivo, ha estado presente en muchas aplicaciones de
ingenierı́a, algunas de ellas pueden revisarse en [60–62].

x1 ˆk 

uˆk  Tracking x2 ˆk 
Differentiator
x3 ˆk 

Fig. A-1.: Esquemático del tracking differentiator.

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) ,

en donde T es el perı́odo de muestreo; u(k) es la señal de entrada en el instante k y


fst (x1 (k), x2 (k), u(k), r, h) es una función rápida de control óptimo y está definida como
se muestra seguido:

d = rh, d0 = dh, y(k) = x1 (k) − u(k) + hx2 (k),



a0 (k) = d2 + 8r∣y(k)∣,
⎧ a0 (k)−d
⎪x2 (k) + 2 sign(y(k)) ∣y(k)∣ > d0

a(k) = ⎨ y(k)
, (A-2)


⎩x 2 (k) + h ∣y(k)∣ ≤ d0

⎪−ra(k)/d ∣a(k)∣ ≤ d

fst (x1 (k), x2 (k), u(k), r, h) = ⎨ ,
⎩−rsign(a(k)) ∣a(k)∣ > d


108 A Anexo: Método Derivador de Señales “Tracking Differentiator”

en donde el parámetro r es un factor de velocidad, el cual, permite determinar la rapidez


de seguimiento, y el parámetro h, es el factor de filtrado para la señal de entrada. Incre-
mentando los valores r y h, se logrará con la señal de entrada, una mayor velocidad en el
seguimiento y mejores efectos en el filtrado, aunque todo depende de los requerimientos
de control sobre la planta, por lo tanto, r y h deben sintonizarse esperando que haya
coordinación y cooperación entre ambos.

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).

Para cualquier función de transferencia de orden n, son calculados un conjunto de paráme-


tros αi , i = 1, . . . , n, llamados como las relaciones caracterı́sticas; y es definida una constan-
te de tiempo τ , los cuales, pueden ser usados para caracterizar la velocidad y el sobrepico
máximo de la respuesta de esa función de transferencia ante una entrada paso (step).
Ajustando independientemente α1 y τ , puede calcularse la ubicación de los polos del sis-
tema de lazo cerrado que cumplen con las especificaciones de diseño, especialmente para
sistemas de control realimentados con estructura “feedforward ” o “de dos parámetros”.

Considerando un polinomio caracterı́stico p(s), de la forma p(s) = an sn + an−1 sn−1 + . . . +


a1 s+a0 con ai > 0, entonces, p(s) es Horwitz, si se mantienen las siguientes dos condiciones:

α1 > 2; (B-1)
πk π
sin ( ) + sin ( )
αk = n n , k = 2, 3, . . . , (n − 1) , (B-2)
πk
2 sin ( )
n

en donde αi son las relaciones caracterı́sticas de p(s).

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:

a1 = τ a0 , para un arbitrario τ > 0, a0 > 0,


τ i a0 (B-3)
ai = 2 3
, para i = 2, 3, . . . , n.
αi−1 αi−2 αi−3 . . . α1i−1

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:

1. Todos los coeficientes caracterı́sticos de lazo cerrado, pueden ajustarse independien-


temente.

2. Ceros adicionales, no se introducen por el controlador dentro de la función de trans-


ferencia de lazo cerrado.

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.

C.1. Modelamiento del Motor DC del Subsistema de Tracción


Un modelo aceptable para el motor DC de la Fig. 4-2, se obtuvo a partir de la gráfica
de color rojo mostrada en la Fig. C-1, que corresponde a la velocidad lineal de avance,
calculada a partir del perı́odo de la señal de salida que genera el encoder acoplado a la
rueda trasera. Esta dinámica de velocidad lineal mostrada con la gráfica, resultó de generar
en la entrada del sistema, una señal PWM con un Duty Cycle del 100 %, obligando al driver
a entregar 24 V fijos entre los terminales del motor. Para este procedimiento, la bicicleta
fue situada en una base que eleva las ruedas, dejándolas libres del contacto con el suelo,
y en la transmisión de cadena que posee el subsistema de tracción, se utilizó el plato más
pequeño y la estrella más grande fijada a la rueda trasera. Esta relación de transmisión
reduce la velocidad angular de la rueda, pero aumenta la fuerza en la tracción.

La dinámica de velocidad lineal de la gráfica, es modelada aproximando esta respuesta


por la siguiente función de transferencia:
K −Ls
100 e
G(s) = , (C-1)
Ts + 1
la cual, está caracterizada por tres parámetros: la ganancia estática K, la constante de
tiempo T , y el tiempo muerto L. La respuesta al escalón unitario de (C-1) es:
K
g(t) = (1 − e−(t−L)/T ) . (C-2)
100
Definiendo la ganancia estática K como el valor de la respuesta en estado estacionario,
entonces, para este punto de operación se tiene que K ≈ 1.3088. Este valor permite calcular
el tiempo de residencia promedio expresado como:

∫ (g(∞) − g(t)) dt
0
Tar = = 0.9726 s, (C-3)
K
Tar = L + T.
112 C Anexo: Modelamiento de los Actuadores del Prototipo

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.

Ahora, seleccionando los siguientes dos puntos en la gráfica:

t1 =0.9 s ⇒ g(t1 ) = 0.3032 m/s,


t2 =1.1 s ⇒ g(t2 ) = 1.0626 m/s,

Se define el siguiente sistema de ecuaciones, a partir de (C-2):

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.

En la Fig. C-2 se muestra el modelo aproximado del subsistema de tracción, el cual,


recibe en su entrada una señal PWM en un rango entre 0 y 100 %, y genera en su salida,
la velocidad lineal de avance de la bicicleta, que fue asumida como la multiplicación de la
velocidad angular de la rueda trasera por la longitud de su radio. Este modelo es admisible,
C.2 Modelamiento del Motor DC del Subsistema de Dirección 113

K Ls
100 e
%PWM(t) v ˆt

Ts  1

Fig. C-2.: Modelo del motor DC acoplado al subsistema de tracción.

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.

C.2. Modelamiento del Motor DC del Subsistema de Dirección


A causa de la estrategia de control basada en observador GPI, que se propuso implementar
en el subsistema de dirección, surgió la necesidad de obtener un modelo mejor elaborado
para el motor DC acoplado al eje del manubrio, que el motor DC acoplado a la rueda
trasera. Un modelo lineal adecuado para el motor mostrado en la Fig. 4-3, que satisface
los requerimientos de control, es el presentado en [65], el cual, es ilustrado en el diagrama
de bloques de la Fig. C-3.
Td ˆt
%PWMˆt ν ˆt + 1 iˆt Tδ ˆt + 1 δ̇ ˆt δ ˆt
K Kpwm Kt 1~s
Ls  R Is  B

Kb

Fig. C-3.: Modelo del motor DC acoplado al subsistema de dirección.

Este diagrama de bloques, se deriva del siguiente conjunto de ecuaciones diferenciales


lineales expresadas en el dominio del tiempo, las cuales, describen las dinámicas internas
de un motor DC:
1 Kb R
i̇(t) = ν(t) − δ̇(t) − i(t),
L L L (C-6)
Kt B 1
δ̈(t) = i(t) − δ̇(t) − Td (t),
I I I
en donde ν(t) es el voltaje aplicado en la armadura, i(t) es la corriente que circula a
través del rotor, Tδ (t) es el par que genera el motor cuando es energizado, y δ̇(t) es la
velocidad angular resultante en el eje. En la Tabla C-2, están consignados los valores
de los parámetros del motor DC del subsistema de dirección. Estos parámetros fueron
obtenidos mediante los siguientes tres procedimientos:

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

la respuesta de la corriente i(t) en el motor bloqueado, cuando se le aplica en su


entrada un perfil de voltaje ν(t) como se muestra en la Fig. C-4. Entonces, la salida
de corriente obtenida es aproximada por la siguiente función de transferencia:
1 1
V (s) = = , (C-7)
Ls + R 0.0132s + 2.2857

4
Voltage (V)

0
0 2 4 6 8 10 12 14 16 18 20
Time (sec)

Fig. C-4.: Perfil de voltaje aplicado al motor del susbistema de dirección.

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 iˆt
Ls  R

Fig. C-6.: Relación entre la corriente y el voltaje aplicado al motor de la dirección.

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.

Fig. C-7.: Experimento para determinar la constante de par de un motor DC.

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,

cuyo valor, tiene una desviación estándar de 0.146.


116 C Anexo: Modelamiento de los Actuadores del Prototipo

Tabla C-1.: Valores experimentales del brazo en diferentes posiciones angulares.

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

3. Luego de determinar la constante de par y la función de transferencia que relaciona el


voltaje de entrada con la corriente del rotor, se obtienen los parámetros faltantes del
motor por medio de un método de identificación de sistemas, en donde se implementa
un controlador proporcional en el motor, y se impone en la entrada una señal pseudo-
aleatoria como referencia de posición angular, tal y como se muestra en la Fig. C-
8. Para esta referencia, el sistema de control de lazo cerrado con una ganancia
proporcional Kp = 120, responde como se muestra en la Fig. C-9.

0.5
Angle (rad)

-0.5

-1

5 10 15 20 25 30 35
Time (sec)

Fig. C-8.: Señal pseudo-aleatoria como referencia de posición angular en la entrada.

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.

Tabla C-2.: Parámetros del motor DC acoplado al subsistema de dirección.

Item Sı́mbolo Valor Unidad


Resistencia eléctrica del rotor R 2.2857 Ω
Inductancia del rotor L 0.0132 H
Constante de par Kt 1.4718 (rad ⋅ N ⋅ m) /A
Momento de inercia (rotor + caja reductora) I 0.0473 Kg ⋅ m2
Constante de fricción B 0.4951 N⋅m⋅s
Constante de velocidad Kb 3.7532 (V ⋅ s) /rad
Relación entre %PWM y voltaje Kpwm 12.8/100 V
Ganancia en la entrada K 1.1368 —

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

Measured and simulated model output


1.5
Simulated model output
Measured output

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

D.1. Reguladores de Tensión

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
+

100uF 27nF 100nF

GND1

Fig. D-1.: Reguladores de tensión para voltaje DC.

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.

El segundo esquema, es un regulador alimentado directamente por la baterı́a de mayor


potencia, a 24 V. La salida de 5 V de este regulador, se utiliza para energizar los opto-
acopladores y triggers, encargados de reconstruir a partir de la salida de este regulador,

11/10/2014 8:13:44 AM C:\Program Files (x86)\EAGLE-7.1.0\untitled.sch (Sheet: 1/1)


120 D Anexo: Circuitos Eléctricos y Electrónicos Diseñados

las señales PWM salientes del eZDSP.

D.2. Driver para el Motor DC de Matsushita

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

Fig. D-2.: Driver para el motor DC Matsushita.

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.

D.3. Circuito Complementario para Encoder


ENCODER

11/11/2014 3:13:47 PM C:\Program Files (x86)\EAGLE-7.1.0\untitled.schIC4A


(Sheet: 1/1)
GPIO34_ECAP1
1 2
OUT-->
J2

40106N
R2 R3 R4 R5
WHITE 1K 1K 1K 1K
BROWN 5V(C)<--
R6
1K

BLUE
1

GND2

Fig. D-3.: Circuito para adquisición de salida del Encoder.


D.4 Circuito Pre-Driver para el Motor DC de Hitec 121

El circuito mostrado en la Fig. D-3 es bastante sencillo, su función es energizar el encoder


a través de sus canales Brown y Blue; y adquirir su señal de salida mediante el canal White
o Black, la cual es un tren de pulsos con frecuencia variable proporcional a la velocidad
de giro del eje del encoder. Los 5 resistores en serie presentes en la salida, aseguran 0/5
V de amplitud en la señal; y el inversor Schmitt Trigger CD40106, además de asegurar
una onda cuadrada limpia, también permite limitar la amplitud de la salida del encoder
a 0/3.3 V, que son los lı́mites de voltaje mı́nimo y máximo que soportan los canales de
lectura del eZDSP. En este circuito, la señal de salida limitada en amplitud, es conectada
al canal de entrada GPIO34 ECAP1 del eZDSP.

D.4. Circuito Pre-Driver para el Motor DC de Hitec

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

Fig. D-4.: Circuito Pre-Driver para el control del motor DC de Hitec.

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.

Las salidas de los Opto-acopladores de este circuito, están conectadas a un filtro RC y


posteriormente a un Inversor Trigger Schmmit 74LS14N, para atenuar los picos de voltaje
presentes en los cambios de estado de las señales y corregir la distorsión en la forma de
onda, de igual manera como se hizo en el Anexo D.2.

11/25/2014 9:55:43 PM C:\Program Files (x86)\EAGLE-7.1.0\untitled.sch (Sheet: 1/1)


122 D Anexo: Circuitos Eléctricos y Electrónicos Diseñados

D.5. Circuito de Acondicionamiento de Señal para el Sensor


S22P006S05
Este circuito mostrado en la Fig. D-5, se ha diseñado para adquirir adecuadamente, la
señal saliente de voltaje que entrega el sensor S22P006S05 cuando hay variaciones de
corriente en sus terminales de medición. Este diseño está constituido de tres partes, las
cuales se muestran encerradas por un recuadro en la figura.

La primera parte de este circuito (Operator ), contiene un operador aritmético diseñado


con el amplificador operacional TLV2770, que satisface la ecuación y = mx − b, como lo
indica la siguiente ecuación:
mx b
³¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ·¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ µ ³¹¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ·¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ ¹ µ
⎡ R18 ( R20⋅R21 + R19) ⎤ ⎡ R19 ⎤
Vout = [VS22P ] ⎢ R20⋅R21 R20+R21
⎢ ⎥ ⎢ ⎥
⎥ − [5V(C)] ⎢ R20⋅R21 ⎥ . (D-1)
⎣ R20+R21 ) (R16 + R17 + R18) ⎦
⎢( ⎥ ⎢ ⎥
⎣ ( R20+R21 ) ⎦
Este operador se encarga de acondicionar la señal de salida del sensor S22P006S05, para
darle a la lectura una desviación b de -1 V, y una ganancia m igual a 1. Esto se hace
con el objetivo de que la transducción a voltaje de la corriente del motor DC de Hitec,
esté dentro del rango de 0 V a 3.3 V, el cual, es el permitido por los puertos de entradas
análogas del eZDSP.

El amplificador operacional TLV2770 de Texas Instruments, tiene dos caracterı́sticas bas-


tante útiles en el desarrollo e implementación de esta aplicación para el prototipo. Una, es
el alto ancho de banda que poseen y la otra, son sus voltajes de activación entre los pines
7 y 4, que son +V y GND, y no +V y -V, requeridos por los amplificadores operacionales
convencionales.

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.

En la tercera y última parte del circuito (Saturator ), se diseñó un filtro pasabajos de


segundo orden, llamado Sallen and Key [66] y [67]. Este filtro se diseñó para que trabajara
con una frecuencia de corte de 1 Khz, entregando a esa frecuencia una fase de −44.6 , como °
se muestra en la gráfica de la Fig. D-6. La ecuación del filtro de segundo orden diseñado,
es la siguiente:
Vout 1
= 2
(D-2)
Vin (R25 ⋅ R26 ⋅ C15 ⋅ C16) s + [(R25 + R26) C15] s + 1
La implementación del filtro en la tarjeta ChipKit de forma digital retardarı́a los demás
procesos ya programados sobre ella, por lo tanto no se realizó.
3V3(C)-->

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

R26 R25 3 IC8 A1(CHIPKIT)


Saturator 6
220 100 OUT-->
2
+

C15 TLV2770
4

Operator
0.47uF

GND2 Filter
D.5 Circuito de Acondicionamiento de Señal para el Sensor S22P006S05

Fig. D-5.: Circuito para adquisición de la señal del sensor S22P006S05.


123

12/1/2014 8:23:29 AM C:\Users\baqumau\Desktop\untitled.sch (Sheet: 1/1)


124 D Anexo: Circuitos Eléctricos y Electrónicos Diseñados

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.

D.6. Conexiones Directas

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:

D.6.1. Conexiones para el Potenciómetro Acoplado al Motor de Hitec

Las conexiones de alimentación y adquisición de la señal analógica que entrega el poten-


ciómetro acoplado internamente al motor DC de Hitec, se muestran en la Fig. D-7. La
señal saliente de este potenciómetro, es directamente enviada hacia las entradas análogas
A0 y ADCINA0 de las tarjetas ChipKit WF32 y eZDSP F28335.

(A0)-->
CHIPKIT ANALOG INPUT

(ADNA0)-->
POTENTIOMETER

EZDSP ANALOG INPUT


1

3.3V(C)<--
J5

GND2

Fig. D-7.: Conexiones para el potenciómetro acoplado al motor DC de Hitec.


D.7 Circuito de Conexiones para el Sensor S22P006S05 125

D.6.2. Conexiones para el Sensor YEI 3-Space


Como se observa en la Fig. D-8, las conexiones localizadas a mano derecha, permiten
energizar este dispositivo. Las otras dos conexiones presentes a la izquierda, Comunican
al sensor con la tarjeta ChipKit WF32. Esta tarjeta le envı́a por el pin 40, solicitudes de
información a través de comandos Ascii, por medio del protocolo UART y recibe por el
pin 39, los datos solicitados igualmente en Ascii, los cuales serı́an, posición y velocidad
angular de la inclinación de la bicicleta.

RIGHT
LEFT
3.3V(C)<--
YEI 3-Space
(39)--< Sensor
CHIPKIT UART4 INPUT (RX) TXD

(40)--> RXD
CHIPKIT UART4 OUTPUT (TX)
1

1
GND2

Fig. D-8.: Conexiones para el sensor YEI 3-Space.

D.7. Circuito de Conexiones para el Sensor S22P006S05


En el circuito de la Fig. D-9 se observa el esquemático del circuito para energizar y
habilitar el sensor S22P006S05, fabricado por Tamura Corp.1 . La corriente medida por
este sensor, debe dirigirse entrando por IF+ y saliendo por IF-. La señal análoga de salida,
entrega un valor de voltaje entre 0 V y 5 V, dependiendo de la corriente medida, la cual
debe estar entre los lı́mites de medición de -6 a 6 A.

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/2015 8:15:42 PM C:\Program Files (x86)\EAGLE-7.1.0\untitled.sch (Sheet: 1/1)


Fig. D-9.: Conexiones para el sensor de corriente S22P006S05.

1
Ver: http://www.tamuracorp.com/.
E. Anexo: Programación en MPIDE para la
tarjeta ChipKit WF32

A continuación, se muestra el código desarrollado en la plataforma MPIDE, para pro-


gramar la tarjeta ChipKit WF32 con las funciones complementarias requeridas por el
sistema de control de la bicicleta. Esta plataforma está basada en la estructura del soft-
ware Arduino IDE, para facilitar la programación de las tarjetas ChipKit, permitiendo el
desarrollo de aplicaciones innovadoras en automatización, pero limitadas por la cantidad
de código que se genera en el lenguaje de más bajo nivel (Assembler), por cada instrucción
empleada en MPIDE, incrementando su tiempo de ejecución.

/* 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.
*/

// Defining mathematical values:


#define _USE_MATH_DEFINES

// Including libraries to the program:


#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <SD.h>
#include <Servo.h>
#include <math.h>

// Creating a file:
File baqumau;

// Default SD chip select for ChipKit WF32 devices:


const int chipSelect_SD_default = 51;
const int chipSelect_SD = chipSelect_SD_default;

// Defining the used variables in this sketch:


char datoO[10], datoP[10], datoQ[10];
128 E Anexo: Programación en MPIDE para la tarjeta ChipKit WF32

char datoR[10], datoS[10], datoT[10];


char datoU[10], datoV[10], datoW[10]; // Character vectors.
int const buffer = 100; // buffer length.
int Ibuff = 0x00; // Index: next char in cbuff.
char chain[buffer]; // Reception buffer.
int flagcommand; // Available command flag.
char caracter; // Variable to save received character by UART module.
char measurements[128]; // Variable to save all measurements from bicycle.
float angle_x, angle_y, angle_z; // Variables to save the calculated Euler angles.
const int pin35=35; // Choosing this pin as Input Capture.
const int pin9=9; // Choosing this pin to generate PWM 1.
const int pin6=6; // Choosing this pin to generate PWM 2.
const int pin36=36; // Choosing this pin as Input Capture.
float T_PWMs=10000.0; // Period value for PWMs signals in Ticks.
char cmd[buffer]; // Variable to save received data by UART module.
float Forw_Speed; // Variable to save the bicycle forward speed.
float FF_Position; // Variable to save the handlebar angular position.
float Current; // Variable to save the consumed current of HITEC servo.
float Reference; // Variable to save the generated reference by controller.
float Rot[3][3]; // Variable to save the instantaneous orientation matrix.
float Time; // Variable to save the time taken for void loop.
int Cont=0; // Void loop times counter.

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.
}

// Adding characters to buffer:


void add_2_cbuff(char c){
switch(c){
case 0x0D: // Line Feed 1 -> Enable flag.
flagcommand=1;
break;
case 0x0A: // Line Feed 2 -> Enable flag.
flagcommand=1;
break;
case 0x08: // Del -> Delete last character from buffer.
if(Ibuff>0) chain[--Ibuff]=0x00;
break;
default: // Add received character to buffer.
130 E Anexo: Programación en MPIDE para la tarjeta ChipKit WF32

chain[Ibuff++]=c;
}
}

// Generating PWM #1:


void PWM_1(float angle){
float Off_angle;
int PWMdc;
//---------------------------------------------------------------------
Off_angle=angle+1.0; // Offset for measured angle in radians.
if(Off_angle>=0 && Off_angle<=2){
PWMdc=(Off_angle*T_PWMs)/2.0; // Duty cycle value in Ticks.
OC3RS=PWMdc; // Write duty cycle value in the OC3RS register.
}
else{
delayMicroseconds(1); // 1 microsecond delay.
}
}

// function to calculate euler angles from the orientation matrix measured.


void tr2rpy(){
float sp, cp;
// Calculating the Euler angles (Pitch-Roll-Yaw):
if(abs(Rot[0][0]) < 2.22044605E-06 && abs(Rot[1][0]) < 2.22044605E-06){
angle_x=atan2(-Rot[1][2],Rot[1][1]);
angle_y=atan2(-Rot[2][0],Rot[0][0]);
angle_z=0;
}
else{
angle_z=atan2(Rot[1][0],Rot[0][0]);
sp=sin(angle_z);
cp=cos(angle_z);
angle_y=atan2(-Rot[2][0],(cp*Rot[0][0])+(sp*Rot[1][0]));
angle_x=atan2((sp*Rot[0][2])-(cp*Rot[1][2]),(cp*Rot[1][1])-(sp*Rot[0][1]));
}
}

//---------------------------------------------------------------------
// 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;
}

// Reading period of encoder output signal:


void Cap_Encoder(){
int Pulse=0;
Pulse=pulseIn(pin35,LOW,1400); // Read fall time of encoder output signal in microseconds.
Forw_Speed=(Pulse*6.0)/671.0; // Calculate the bicycle forward speed in m/s.
}

// Reading the reference generated by the first control loop.


void Ref_Position(){
int pulse=0;
pulse=pulseIn(pin36,HIGH,1400); // Read rise time of PWM signal generated by eZDSP.
Reference=(((pulse)/671.0)*M_PI)-(M_PI/2); // Calculate the reference value.
}

// Leer posición angular del manubrio:


void HandleBar_Position(){
int adc=0;
float Value;
float Absolute;
adc=analogRead(A0); // Read analog signal from pin A0.
Value=((adc*3.3)/1023.0);
Absolute=(((-200.0/(2.588-0.638))*Value)-((-200.0/(2.588-0.638))*0.638)+200.0);
FF_Position=(Absolute-100.0)*(M_PI/180);
}

// Read consumed current by HITEC servo:


void HITEC_Current(){
132 E Anexo: Programación en MPIDE para la tarjeta ChipKit WF32

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;
}
}

// Function for write data in microSD.


void Writting2SD(){
int Ticks;
// Calculating the instantaneous time of execution of void loop:
Ticks = TMR4;
Time = (Ticks*1.0)/80.0E6;
TMR4 = 0x0; // Clear contents of the TMR4 and TMR5.
T4CON = 0x0; // Stop timer 4 and clear control register.
T4CONSET = 0x0008; // Enable 32-bit Timer 4 mode.
T4CONSET = 0x8000; // Enable Timer 4.
sprintf(measurements,"%1.6f,%1.4f,%1.4f,%1.4f,%1.4f,%1.4f;\n\r",Time,angle_x,Current,...
FF_Position,Reference,Forw_Speed);
//---------------------------------------------------------------------
// Saving data in microSD:
if (baqumau){
baqumau.println(measurements);
if (Cont==12000){
// close the file:
baqumau.close();
Serial1.println(":238,1.0,0.0,0.0\n\r"); // The YEI 3-Space led is settled to red.
}
else{
Cont=Cont+1;
}
133

}
}

// 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

A continuación se muestra la programación en diagrama de bloques desarrollada en


MATLAB/Simulink. Este programa es el equivalente de los controladores de velocidad
de avance e inclinación que se muestran en la Fig. 3-26. MATLAB se encarga de traducir
el programa al lenguaje C y exportarlo a “Code Composer Studio”, en donde es compilado
y descargado a la tarjeta eZDSP F28335.

100

C280x/C28x3x 1-D T(u)

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

[R] 12:34 >= 1 [B]


Steering Reference 1/4000
[C] Clock [T]
Digital Clock [C]
Lean Controller TPWM
3750
m
C280x/C28x3x
Period ePWM 3
1
TS C280x/C2833x
[-1 1]* u 2 [LA] T
eCAP
[Ux] |u| 1/100 3750 WA
eCAP 3 Angular Position ePWM
1
ePWM 3
[T]

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

[C] Clock Out C280x/C2833x


T
[B] ~= 0 e(t) u(t) 1/100 15000
Forward Speed
0 [B] ~= 0 WA
Reference
ePWM
15000
PI Controller ePWM 1
[FS] 1

50e3

Period ePWM 2
F28335 eZdsp
C280x/C2833x
T
[FS] 50e3/6
Info Completed Control System
WA
ePWM

Stand Alone ePWM 2

1/2

Fig. F-1.: Esquema completo de control en Simulink.


136 F Anexo: Programación en Simulink para la tarjeta eZDSP F28335

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))

Fig. F-2.: Controlador de la velocidad de avance en Simulink.

K0

[LA] 1/z [Uaux]


y(n)=Cx(n)+Du(n)
K1
[Uaux] x(n+1)=Ax(n)+Bu(n)
1/Rho Hz
GPI Observer
K2 [C] >= 4 [SAr]

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

[R] X1 [X1] [X2] K4


[SAr] [X2] [Ux]
1 Reference X2

[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

Fig. F-3.: Controlador de la inclinación en Simulink.

[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

[Y] |u| 8*r u [a0]

d^2

[X2]
[Y] [Y] |u| > 0.05 [a]

[a0] 1/2

d [X2]

[Y] 1/h

[a] |u| >5 -1 [fst]

r/d

Fig. F-4.: Programación del método “Tracking Differentiator ” en Simulink.


137

12:34
>= 0.5
1
1 1/2
Output

1
Input

Fig. F-5.: Programación de la función “Clutch” en Simulink.


G. Anexo: Programación complementaria en
MATLAB

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

% Principal axes orientation:


Rbfw=[0.001270 0.999997 0.002224; 0.979370 -0.001693 0.202070; 0.202073 0.001922 -0.979368]’;
ID=Rbfw*[I1fw 0 0; 0 I2fw 0; 0 0 I3fw]*Rbfw’;
% Mass moments of inertia:
Dxx=ID(1,1); Dyy=ID(2,2); Dzz=ID(3,3); % [Kg*m^2].
%--------------------------------------------------------------------------------------------
%Front Frame:
mff=1.950180; % [Kg].
Xff=.942568681; Yff=.000534791; Zff=-.752831526; % [m].
% Principal mass moments of inertia:
I1ff=0.145708; I2ff=0.126039; I3ff=0.023262; % [Kg*m^2].
% Principal axes orientation:
Rbff=[0.992826 -0.000993 -0.119561; 0.001268 0.999997 0.002224; 0.119558 -0.002359 0.992824]’;
IC=Rbff*[I1ff 0 0; 0 I2ff 0; 0 0 I3ff]*Rbff’;
Cxx=IC(1,1); Cyy=IC(2,2); Czz=IC(3,3); Cxz=IC(1,3); % [Kg*m^2].
%--------------------------------------------------------------------------------------------
%Rear Frame:
mrf=12.328347; % [Kg].
Xrf=.433440053; Yrf=0.005033010; Zrf=-.612470830; % [m].
% Principal mass moments of inertia:
I1rf=0.853824; I2rf=0.587871; I3rf=0.301275; % [Kg*m^2].
% Principal axes orientation:
Rbrf=[0.011917 0.999909 0.006381; 0.891941 -0.013514 0.451950; 0.451995 0.000306 -0.892021]’;
IB=Rbrf*[I1rf 0 0; 0 I2rf 0; 0 0 I3rf]*Rbrf’;
Bxx=IB(1,1); Byy=IB(2,2); Bzz=IB(3,3); Bxz=IB(1,3); % [Kg*m^2].
%--------------------------------------------------------------------------------------------
%Front Assembly:
mf=4.001458; % [Kg].
Xf=1.002764323; Yf=0.000621467; Zf=-.533054312; % [m].
% Principal mass moments of inertia:
I1f=0.500134; I2f=0.430164; I3f=0.113463; % [Kg*m^2].
% Principal axes orientation:
Rbf=[0.000520 0.999999 0.000892; 0.977818 -0.000321 -0.209455; -0.209454 0.000981 -0.977818]’;
IF=Rbf*[I1f 0 0; 0 I2f 0; 0 0 I3f]*Rbf’;
Fxx=IF(1,1); Fyy=IF(2,2); Fzz=IF(3,3); Fxz=IF(1,3); % [Kg*m^2].
Fxx2=Cxx+Dxx+(mff*((Zff-Zf)^2))+(mfw*((Rfw+Zf)^2)); % [Kg*m^2].
Fxz2=Cxz-(mff*(Xff-Xf)*(Zff-Zf))+(mfw*(w-Xf)*(Rfw+Zf)); % [Kg*m^2].
Fzz2=Czz+Dzz+(mff*((Xff-Xf)^2))+(mfw*((w-Xf)^2)); % [Kg*m^2].
%--------------------------------------------------------------------------------------------
%Whole Bicycle:
mt=18.937478; % [Kg].
Xt=.494032567; Yt=.005020880; Zt=-.555980090; % [m].
% Principal mass moments of inertia:
I1t=3.430571; I2t=2.354936; I3t=1.157666; % [Kg*m^2].
% Principal axes orientation:
Rbt=[0.009582 0.999954 0.001055; 0.223347 -0.003168 0.974734; 0.974692 -0.009105 -0.223367]’;
IT=Rbt*[I1t 0 0; 0 I2t 0; 0 0 I3t]*Rbt’;
Txx=7.071914; Tyy=13.906245; Tzz=6.917715; Txz=-5.462273*(-1); % [Kg*m^2].
Txx2=Axx+Bxx+Cxx+Dxx+(mrw*(Rrw^2))+(mrf*(Zrf^2))+(mff*(Zff^2))+(mfw*(Rfw^2)); % [Kg*m^2].
Txz2=Bxz+Cxz-(mrf*Xrf*Zrf)-(mff*Xff*Zff)+(mfw*w*Rfw); % [Kg*m^2].
Tzz2=Azz+Bzz+Czz+Dzz+(mrf*(Xrf^2))+(mff*(Xff^2))+(mfw*(w^2)); % [Kg*m^2].
%--------------------------------------------------------------------------------------------
%Evaluating the anterior equations:
u=eval(u);
%--------------------------------------------------------------------------------------------
F_lambda_lambda=eval(F_lambda_lambda);
F_lambda_x=eval(F_lambda_x);
F_lambda_z=eval(F_lambda_z);
%--------------------------------------------------------------------------------------------
f=eval(f);
%--------------------------------------------------------------------------------------------
Sr=eval(Sr); Sf=eval(Sf);
143

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

%% Filter 1 [Sallen and Key second order filter]:


R1=100; R2=100; C1=100e-9; C2=220e-6; % Filter No. 1 values.
Af=R1*R2*C1*C2;
Bf=(R1*C2)+(R2*C2);
Fs1=tf(1,[Af Bf 1]);
Fz1=c2d(Fs1,Ts2,’tustin’);
% Filter 2 [Sallen and Key second order filter]:
R1=100; R2=100; C1=100e-9; C2=220e-6; % % Filter No. 2 values.
Af=R1*R2*C1*C2;
Bf=(R1*C2)+(R2*C2);
Fs2=tf(1,[Af Bf 1]);
Fz2=c2d(Fs2,Ts3,’tustin’);
%--------------------------------------------------------------------------------------------
%% GPI Observer-Based Control:
v=1.5; % Forward speed [m/s].
As=eval(A);
BicySys=tf(ss(As,B(:,2),[0 1 0 0],0));
% Controlability matrix:
Cont=[B As*B(:,2) (As^2)*B(:,2) (As^3)*B(:,2)];
Ran=rank(Cont); % The system is controllable.
% -----------------------------------
% GPI Observer:
Kappa=(K*Kpwm*Kt)/(L*(F_lambda_lambda+J));
Kappb=(B(4,2)*K*Kt*Kpwm)/R;
Aext=[0 1 0 0 0 0;...
0 0 1 0 0 0;...
0 0 0 1 0 0;...
0 0 0 0 1 0;...
0 0 0 0 0 1;...
0 0 0 0 0 0];
Cext=[1 0 0 0 0 0];
q=[100 0 0 0 0 0;...
0 100 0 0 0 0;...
0 0 940000000 0 0 0;...
0 0 0 100 0 0;...
0 0 0 0 1000 0;...
0 0 0 0 0 1000];
r=.1;
La=lqr(Aext’,Cext’,q,r);
Aob=Aext-(La’*Cext);
Bob=[[0 Kappb 0 0 0 0]’ La’];
Cob=[1 0 0 0 0 0;0 1 0 0 0 0;0 0 1 0 0 0];
Dob=zeros(3,2);
Ob=ss(Aob,Bob,Cob,Dob);
Obz=c2d(ss(Aob,Bob,Cob,Dob),Ts3,’tustin’);
% -----------------------------------
% Control Law:
[PolC,PolosC]=charatioass(2,.15,20,4.4);
K4=PolC(1,2); K3=PolC(1,3);
%--------------------------------------------------------------------------------------------
%% Tracking differentiator:
r=500; h=0.01; d=r*h; d0=d*h;
Atd=[1 Ts3 0;0 1 0;0 0 0];
Btd=[0 Ts3 1]’;
Ctd=eye(3);
Dtd=[0 0 0]’;
TD=ss(Atd,Btd,Ctd,Dtd,Ts3);

%--------------------------------------------------------------------------------------------
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

%time constant and characteristic ratios, respectively. These parameters are


%written in terms of coefficients of a polynomial. The properties of these
%parameters with respect to time domain response, in particular speed of response
%and overshoot, are then derived analytically. These properties are later used
%to construct a desired transfer function and a controller design procedure
%for minimum phase plants to achieve a transient response, with independently
%specified overshoot and rise time. The controller can be of state feedback plus
%feedforward or of two parameter type. The same procedure can be used for non
%minimum phase systems where reduced overshoot and increased speed of response
%may be obtained although they may not be independently specifiable.
%
%We begin by considering all-pole transfer functions of order for which we introduce
%a set of parameters ALPHA(i), [i= 1,...n]. called the characteristic ratios.
%We also introduce a generalized time constant TAO (T). We prove that ALPHA(1)
%and TAO can be used to characterize the system overshoot to a step input and
%the speed of response, respectively.
%
%Basic Requeriments of Algorithm:
%alpha1 > 2.
%a0 and T > 0.
%a1=T*a0.
%[n] is the system order.
%--------------------------------------------------------------------------------------------
clear alpha
ar(1,1)=a0; alpha(1,1)=alpha1; ar(1,2)=T*ar(1,1); I1=eye(n+1); I2=eye(n-1);
for k=2:n-1
alpha(1,k)=(((sin(k*pi/n))+(sin(pi/n)))*alpha(1,1))/(2*sin(k*pi/n));
end
alpha=alpha*I2([n-1:-1:1],:);
clear dens
for i=2:n
clear opr
p=1;
for x=i-1:-1:1
opr(1,x)=alpha(1,n-x)^(p);
p=p+1;
end
dens(1,i-1)=prod(opr);
end
for i=3:n+1
ar(1,i)=(T^(i-1))*(ar(1,1))/dens(1,i-2);
end
for i=1:n+1
lambda_ratio(1,i)=ar(1,i)/ar(1,n+1);
end
K=lambda_ratio*I1([n+1:-1:1],:);
P=roots(K);
end
Bibliografı́a
[1] Dennis S. Bernstein. A Student’s Guide to Classical Control. IEEE Control Systems,
17(4):96–100, 1997.

[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.

[4] P. Albertos and A. Sala. Multivariable Control Systems: An Engineering Approach,


chapter 1 y 2. Springer, first edition, 2004.

[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.

[8] M. Hamer. Brimstone and Bicycles. New Scientist, 185:44–49, 2005.

[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.

[11] N. Clayton. Early Bicycles, pages 1–34. Shire Publications, 1986.

[12] D. J. N. Limebeer and R. S. Sharp. Bicycles, Motorcycles, and Models. IEEE Control
Systems, 26(5):34–61, Oct 2006.

[13] H. Goldstein. Classical Mechanics, pages 184–188. Addison-Wesley, third edition,


1953.

[14] Raymond A. Serway and John W. Jewett. Physics for Scientists and Engineers with
Modern Physics, chapter 11. Brooks Cole, eighth edition, 2010.

[15] Ju. I. Neimark and N. A. Fufaev. Translations of Mathematical Monographs. In


Dynamics of Nonholonomic Systems, volume 33, chapter 6. American Mathematical
Society, 2004.
148 Bibliografı́a

[16] A. L. Schwab, J. P. Meijaard, and J. M. Papadopoulos. A Multibody Dynamics


Benchmark on the Equations of Motion of an Uncontrolled Bicycle. In Proceedings of
the Fifth EUROMECH Nonlinear Dynamics Conference, pages 511–521, Aug 2005.

[17] K. J. Åström, R. E. Klein, and A. Lennartsson. Bicycle Dynamics and Control:


Adapted Bicycles for Education and Research. IEEE Control Systems, 25(4):26–47,
Aug 2005.

[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.

[19] J. D. G. Kooijman, A. L. Schwab, and J. P. Meijaard. Experimental Validation of


a Model for the Motion of an Uncontrolled Bicycle. Multibody System Dynamics,
19(1):115–132, May 2008.

[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.

[22] V. Cerone, D. Andreo, M. Larsson, and D. Regruto. Stabilization of a Riderless


Bicycle, A Linear-Parameter-Varying Approach [applications of control]. Control
Systems, IEEE, 30(5):23–32, Oct 2010.

[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.

[31] A. Schwab, J. Meijaard, and J. Papadopoulos. Benchmark Results on the Linearized


Equations of Motion of an Uncontrolled Bicycle. Journal of Mechanical Science and
Technology, 19(1):292–304, 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.

[34] Jim M. Papadopoulos. Bicycle Steering Dynamics and Self-stability: a Summary


Report on Work in Progress. Cornell bicycle research project, Cornell University,
Ithaca, NY, 1987.

[35] A. L. Schwab, J. P. Meijaard, and J. D. G. Kooijman. Lateral Dynamics of a Bicycle


with a Passive Rider Model: Stability and Controllability. Vehicle System Dynamics,
50(8):1209–1224, Aug 2012.

[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.

[38] MSC. Adams. ADAMS/Controls, Version 12, TRAINING, 2004.

[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.

[45] L.B. Freidovich and H.K. Khalil. Performance Recovery of Feedback-Linearization-


Based Designs. In IEEE Transactions on Automatic Control, volume 53, pages 2324–
2334, November 2008.

[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.

[53] Chieh-Tsung Chi. Self-Equilibrium Control on a Dynamic Bicycle Ride. WSEAS


Transactions on Systems and Control, 2:527–536, Nov 2007.

[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:

Comentarios del director:

Firma del director:

Vo.Bo. Jhon Alexander Cortés Romero Ph.D.


Director del proyecto

Firma del estudiante:

Mauro Alonso Baquero Suárez


Ingeniero Mecatrónico

También podría gustarte