trabajo de fin de grado - universidad de...

80
Trabajo de Fin de Grado Grado en Ingeniería en Tecnologías Industriales Simulación computacional interactiva en tiempo real de una bicicleta con suspensión sobre terreno irregular Autor: Jesús Ortega Almirón Tutor: Dr. José Luis Escalona Franco Dep. Ingeniería Mecánica y Fabricación Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2014

Upload: others

Post on 14-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Trabajo de Fin de Grado Grado en Ingeniería en Tecnologías Industriales

Simulación computacional interactiva en tiempo real de una bicicleta con suspensión sobre terreno irregular

Autor: Jesús Ortega Almirón

Tutor: Dr. José Luis Escalona Franco

Dep. Ingeniería Mecánica y Fabricación Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2014

Page 2: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con
Page 3: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Trabajo de Fin de Grado Grado en Ingeniería en Tecnologías Industriales

Simulación computacional interactiva en tiempo real

de una bicicleta con suspensión sobre terreno irregular

Autor:

Jesús Ortega Almirón

Tutor:

José Luis Escalona Franco

Profesor titular

Dep. de Ingeniería Mecánica y Fabricación

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla Sevilla, 2014

Page 4: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con
Page 5: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Trabajo de Fin de Grado: Simulación computacional interactiva en tiempo real de una bicicleta con suspensión sobre terreno irregular

Autor: Jesús Ortega Almirón

Tutor: José Luis Escalona Franco

El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:

Presidente:

Vocales:

Secretario:

Acuerdan otorgarle la calificación de:

Sevilla, 2014

El Secretario del Tribunal

Page 6: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con
Page 7: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

i

Resumen

En este trabajo se pretende llevar a cabo la simulación dinámica del mecanismo de

una bicicleta, centrándose principalmente en modelado de la suspensión y el suelo

irregular. Se utiliza MatLab para implementar y resolver numéricamente las ecuaciones de

movimiento, haciendo uso de las funciones en simbólico. Para ello, se parte del modelo

simplificado de la bicicleta y se rediseña el programa con el fin de poder incluir efectos

adicionales para incrementar la fiabilidad de la simulación, pero pudiendo llevar a cabo la

simulación en tiempo real. Se contemplarán efectos como los debidos a los amortiguadores

delantero y trasero, suelo no plano y geometría toroidal de los neumáticos. Este rediseño se

realiza con miras a seguir profundizando en el modelo de la bicicleta en el futuro, por

ejemplo considerando un modelado más preciso del contacto del neumático y la carretera.

Es por ello que la función de este trabajo es también servir como guía futura de partida

para posteriores evoluciones del modelo.

Page 8: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

ii

Page 9: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

iii

Índice

Resumen i

Índice iii

Índice de Figuras v

1. Introducción 1

2. Descripción del modelo de partida 2

3. Sólidos y cinemática 5 3.1. Geometría del suelo 5 3.2. Geometría de los neumáticos 7 3.3. Orientación de los sistemas y centros de gravedad 9 3.3.1. Cuadro, sólido 3 9 3.3.2. Manillar, sólido 4 11 3.3.3. Suspensión trasera, sólido 7 13 3.3.4. Suspensión delantera, sólido 8 15 3.3.5. Ruedas trasera y delantera, sólidos 2 y 5 respectivamente 17 3.3.6. Cuerpo del ciclista, sólido 6 20 3.4. Conjunto de sólidos 21 3.5. Restricciones 22 3.5.1. Restricciones de contacto 22 3.5.2. Restricciones de rodadura sin deslizamiento 24

4. Solicitaciones y dinámica 27 4.1. Ecuaciones dinámicas 27 4.2. Término inercial 28 4.3. Términos de fuerza 29 4.3.1. Término volumétrico 29 4.3.2. Término gravitatorio 29 4.3.3. Término aerodinámico 30 4.3.4. Acción del ciclista 30 4.3.5. Fuerzas de suspensión 32 4.3.5.1. Suspensión trasera 34 4.3.5.2. Suspensión delantera 35

5. Resolución numérica 36 5.1. Clasificación de coordenadas 36 5.2. Problema de posición 38 5.3. Problema de velocidad 39 5.4. Aceleraciones 40 5.5. Integración 42

6. Simulación interactiva 43

7. Comparación y conclusiones 49

Referencias 53

Page 10: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

iv

Anexos 55 Anexo A Códigos para el suelo 55 Anexo B Códigos para el neumático 57 Anexo C Códigos para la orientación y posición de los sólidos 58 Anexo D Códigos para las restricciones 59 Anexo E Códigos para la dinámica 60 Anexo F Códigos de la función de derivadas 62 Anexo G Códigos de la función principal y cálculo de posición estática 66 Anexo H Códigos de los tipos de visualización 68

Page 11: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

v

ÍNDICE DE FIGURAS

Fig 2-1. Esquema del modelo de partida 3

Fig 3-1. Ejemplo de geometría del suelo (para parámetros a, b, c y d de 0.4, π/8, 2.6 y π /120 respectivamente) 6

Fig 3-2. Coordenadas para situar los puntos de la superficie de la rueda 7

Fig 3-3. Ejemplo de geometría de neumático rodando sobre el suelo 8

Fig 3-4. Orientación del sistema 3 10

Fig 3-5. Esquema del manillar respecto del cuadro. 12

Fig 3-6. Esquema de la amortiguación trasera 13

Fig 3-7. Esquema de la amortiguación delantera 15

Fig 3-8. Esquema de la rueda trasera 17

Fig 3-9. Esquema de la rueda delantera 18

Fig 3-10. Esquema de la bicicleta completa 21

Fig 3-11. Esquema del par de leva 3D 22

Fig 4-1. Esquema de fuerzas de suspensión entre dos sólidos 32

Fig 4-2. Esquema de suspensión trasera 34

Fig 4-3. Esquema de suspensión delantera 35

Fig 6-1. Esquema de control 43

Fig 6-2. Axonométrico siguiendo al ciclista 44

Fig 6-3. Axonométrico fijo 45

Fig 6-4. Axonométrico siguiendo al ciclista desde atrás 46

Fig 6-5. Cónica siguiendo al ciclista 46

Fig 6-6. Cónica fija apuntando al ciclista 47

Fig 6-7. Cónica siguiendo al ciclista desde atrás 48

Fig 7-1. Reacción rueda delantera en modelo de partida sin perturbar 49

Fig 7-2. Reacción en ambas ruedas en modelo actual sin perturbar 50

Fig 7-3. Reacción rueda delantera en modelo de partida con perturbación 50

Fig 7-4. Reacción en ambas ruedas en modelo actual con perturbación 50

Fig 7-5. Reacción en ambas ruedas en modelo actual sin perturbación 51

Fig 7-6. Reacción en ambas ruedas en modelo actual con perturbación 51

Page 12: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con
Page 13: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

1

1. INTRODUCCIÓN

a bicicleta consiste en un mecanismo que, en una primera aproximación, dispone de

tres grados de libertad. Sin embargo, el ciclista sólo controla dos de ellos, lo cuál

supone que el tercero se estabilice automáticamente haciendo de la bicicleta un

mecanismo intrínsecamente estable.

La estabilidad de la bicicleta ha sido por ello objeto de estudio y análisis por diversos

autores [1]. No obstante, la dificultad que radica en el estudio analítico del sistema ha hecho

fracasar numerosos intentos antes de la llegada de métodos numéricos. Los efectos giroscópicos y

tridimensionales son fundamentales en el comportamiento del sistema, lo que hace imposible

desligarlos y abordar un modelo analítico simple de dos dimensiones. Incluso sin considerar el

efecto giroscópico o el debido al ángulo de avance, generalmente considerados primordiales para la

estabilidad de la bicicleta, ésta puede ser estable [2]. Así, a pesar de la aparente sencillez del

mecanismo por la facilidad de conducción, es poco conocido su funcionamiento, y queda patente en

maniobras como el contramanillar, que se realizan de manera intuitiva a pesar de su complejidad

dinámica, [3].

Sin embargo, el estudio de la estabilidad del sistema queda fuera del alcance de este trabajo.

Éste se centrará en un rediseño del programa disponible, de modo que permita seguir ampliando la

complejidad del modelo, así como incluir efectos no considerados en él. De este modo, se permitirá

una simulación mucho más realista del sistema, para posteriores estudios dinámicos. Además, se

pretenderá incorporar dichas mejoras a la simulación en tiempo real.

El programa previo sobre el que se va a trabajar se divide en 3 partes. Una parte simbólica

que genera las funciones para las matrices, restricciones, jacobianos y solicitaciones necesarias. El

programa principal carga los parámetros conocidos necesarios y llama al integrador con unas

condiciones iniciales. La función de derivadas aplica las ecuaciones cinemáticas y dinámicas

haciendo uso de las funciones simbólicas, permite al integrador resolver el sistema y dibuja el

mecanismo en cada instante. En los Anexos se recoge parte del código más relevante comentado.

L

Page 14: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Descripción del modelo de partida

2

2

2. DESCRIPCIÓN DEL MODELO DE PARTIDA

l modelo de partida consiste en una simplificación de la bicicleta como un

mecanismo formado por cuatro sólidos rígidos aparte del suelo, basado en el

modelo de Whipple [4]. El cuerpo del ciclista se encuentra integrado como parte

del cuadro de la bicicleta. Los sólidos que se diferencian son los siguientes:

-Rueda delantera.

-Rueda trasera.

-Cuadro.

-Manillar.

-Suelo.

El funcionamiento de este modelo se basa en las siguientes consideraciones:

-El suelo siempre es plano y horizontal.

-Ambas ruedas son modeladas como círculos rígidos. Cada rueda contacta con el suelo en

un único punto y la rodadura se produce sin deslizamiento.

-Las extremidades del ciclista no introducen términos de inercia.

-Las fuerzas externas son las debidas al pedaleo, el giro del manillar, la gravedad y un

término debido al aire.

-No existe fricción.

El modelo de partida descrito se ilustra a continuación en la siguiente figura [5]:

E

Page 15: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

3

3

Fig 2-1. Esquema del modelo de partida

Este modelo parte del suelo y recorre la rueda trasera, el cuadro, manillar y rueda delantera para

posicionar los sólidos del mecanismo.

En primer lugar, para posicionar la rueda trasera respecto del suelo se utilizan dos sistemas

auxiliares, 1 y 2. La orientación del sistema 1 se obtiene por medio de un giro respecto del absoluto o

global alrededor del eje Z un ángulo ϕ. La orientación del 2 se obtiene mediante otro giro respecto del 1

alrededor del eje xi1 un ángulo θ. Finalmente, la orientación de la rueda trasera resulta de un último giro

respecto del 2 alrededor del eje yi2 un ángulo ψ. La posición de la rueda queda fijada con dos

coordenadas más, e , que sitúan el punto de contacto C en el plano horizontal del sistema global,

quedando situado el centro de la rueda a partir del radio.

El posicionamiento del cuadro es mucho más simple, consiste en un único giro respecto del

sistema 2 alrededor del eje yi2 un ángulo β, quedando situado su centro de gravedad a partir de la

posición relativa respecto del centro de la rueda trasera, conocida.

Page 16: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Descripción del modelo de partida

4

4

El manillar se orienta mediante un giro respecto al sistema del cuadro alrededor del eje z3 un

ángulo γ. Su centro de gravedad queda fijado entonces a partir de su posición relativa respecto del centro

de la rueda trasera, conocida.

Por último, la rueda delantera se orienta por medio de un giro respecto del sistema del manillar

alrededor del eje y4 un ángulo ε. Su centro queda fijado a partir de su posición relativa respecto del

manillar, conocida.

Es necesario añadir una última coordenada ξ, que representa un giro respecto del sistema de la

rueda delantera alrededor del eje y5. Esta coordenada es necesaria para el par de leva de la rueda

delantera.

De este modo, se tiene un total de 9 coordenadas:

ξεγβψθϕCC yx

Si se dispone de 4 sólidos rígidos es posible calcular las coordenadas mínimas necesarias a partir

de los pares cinemáticos. Son 2 pares de leva y 3 de rotación, por lo que:

715224531264 =−−=⋅−⋅−⋅

Al tener en cuenta 2 vínculos no holónomos debido a la rodadura sin deslizamiento de ambas

ruedas:

3227 =⋅−

Si se parte de las 9 coordenadas utilizadas para definir el modelo, esto supone 6 ecuaciones de

restricción necesarias, 2 debidas al par de leva delantero y 4 de rodadura sin deslizamiento.

Debido a que éste es sólo el modelo de partida no se profundizará más en él ni en su

implementación numérica en MatLab.

Nótese que este modelo es posible sólo con un suelo horizontal y plano. Esto limita sobremanera

la simulación, ya que es imposible adaptar dicho modelo a un suelo con geometría arbitraria. Es por ello

que se replantea dicho modelo con el fin de incluir geometría tridimensional para el suelo, a parte de

otras mejoras.

Page 17: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

5

5

3. SÓLIDOS Y CINEMÁTICA

l modelo final está formado por 6 sólidos más el suelo. El motivo de añadir dos

sólidos es tener en cuenta los amortiguadores delantero y trasero. La adición de

dichos sólidos supondrá 2 nuevos grados de libertad, que se estabilizarán

automáticamente gracias a la rigidez y amortiguamiento de los amortiguadores.

3.1. Geometría del suelo

Para definir la mencionada geometría arbitraria del suelo se hará uso de 4 parámetros: a, b, c

y d. La altura del suelo se modelará como una función senoidal doble en las direcciones X e Y. Los

4 parámetros controlan amplitud y frecuencia en cada dirección, según la siguiente expresión:

( ) ( )YdcXbaZ ⋅⋅+⋅⋅= sinsin (1)

De este modo, el vector en coordenadas absolutas de cada punto del suelo será:

( ) ( )[ ]TYdcXbaYX ⋅⋅+⋅⋅= sinsinRp (2)

Para introducir los pares de leva es necesario obtener también los vectores tangentes respecto a

ambas coordenadas X e Y, que, derivando [6]:

( )[ ]TXbbaX

⋅⋅⋅=∂∂= cos01Rp

t1 (3)

( )[ ]TYddcY

⋅⋅⋅=∂

∂= cos10Rp

t 2 (4)

Los valores X e Y del punto de contacto de cada rueda suponen 4 coordenadas en total, que se

denominarán ds1 , ds2 , ts1 y ts2 para los valores X e Y de la rueda delantera y trasera respectivamente.

La función de geometría del suelo “GeomSuelo” se muestra en el Anexo A, así como la sección de

código empleada para dibujarlo. En la siguiente figura se observa un posible suelo definido y dibujado

de este modo.

E

Page 18: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Sólidos y cinemática

6

6

Fig 3-1. Ejemplo de geometría del suelo (para parámetros a, b, c y d de 0.4, π/8, 2.6 y π /120

respectivamente)

Esto es sólo un ejemplo de geometría para el suelo, puede sustituirse la función elegida por

cualquier otra que se adapte mejor a las necesidades del caso, o incluso generar un suelo por puntos de

manera aleatoria.

Page 19: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

7

7

3.2. Geometría de los neumáticos

La geometría de los neumáticos será toroidal (neumáticos toroidales han sido incorporados

ya en estudios como [7], en un análisis cinemático con restricciones ideales) y cada sección

transversal del toro corresponderá a una elipse [8], de ecuación:

2

0

2

0

2

0 11

−+=→=

−+

−T

RrrR

rr

T

τττ (5)

donde r0 no es el radio de la rueda sino el radio de la rueda menos el semieje vertical de la elipse.

Fig 3-2. Coordenadas para situar los puntos de la superficie de la rueda

Y cada sección del toro es recorrida por la coordenada ζ . De este modo, la posición relativa de

cada punto de la superficie de la rueda respecto al sistema de referencia de la rueda viene dada por:

( ) ( )[ ]Tζτζτ sin)r(cos)r( ⋅−⋅= τpR (6)

donde la expresión de r es la de la ecuación (5).

Al igual que en la geometría del suelo, es necesario calcular los vectores tangentes respecto a

ambas coordenadas:

( ) ( )[ ]Tζτζτ cos)r(0sin)r( ⋅−⋅−=∂∂=

ζpR

tζ (7)

( ) ( )T

ζd

d

d

⋅−⋅=∂

∂= sin)r(

1cos)r(

ττ

ττ

τRp

t τ (8)

donde

Page 20: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Sólidos y cinemática

8

8

2/12

21

)r(−

−⋅−=TT

R

d

d ττττ

(9)

Son necesarios por tanto 3 parámetros, r0, R y T para definir la geometría de cada rueda como se

ha mostrado anteriormente, lo que supone 6 parámetros adicionales. Además, cada rueda necesita 2

coordenadas para recorrer la superficie, ζ y τ , lo que añade 4 coordenadas más al modelo: dζ , dτ ,

tζ y tτ para la rueda delantera y trasera respectivamente. La función de geometría del neumático

“GeomNeum” se muestra en el Anexo B, así como la sección de código empleada para dibujarlo. En la

siguiente figura se observa un posible neumático definido y dibujado de este modo.

Fig 3-3. Ejemplo de geometría de neumático rodando sobre el suelo

Page 21: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

9

9

3.3. Orientación de los sistemas y centros de gravedad

El nuevo diseño del modelo para una geometría de terreno arbitraria implica una definición

de coordenadas relativas distinta ya que ahora no se parte de la simplificación de un suelo plano y

horizontal.

3.3.1. Cuadro, sólido 3

Para abordar un posicionamiento y orientación de los sistemas de referencia de cada sólido

consistente con las nuevas consideraciones y compatible con la evolución posterior del modelo, se

comienza posicionando el cuadro de la bicicleta, sólido 3, respecto al sistema global de referencia.

El posicionamiento del centro de gravedad del cuadro se fija por medio de 3 coordenadas,

rx, ry y rz, que representan la posición en los 3 ejes coordenados del sistema global.

Para la orientación del sólido, se utilizarán otras 3 coordenadas, 3ϕ , 3θ y 3ψ . Estas

coordenadas se definen de modo análogo a los ángulos de Euler [9], pero tratando de evitar la

posibilidad de una configuración singular. De este modo, se definen las coordenadas de orientación:

En primer lugar, un giro respecto al eje Z un ángulo 3ϕ

−=

100

0cossen

0sencos

33

33

3ϕϕϕϕ

ϕA

Segundo, giro respecto al eje X’ un ángulo 3θ

−=

33

33

cossen0

sencos0

001

3

θθθθθA

Por último, un giro respecto al eje Y’’ un ángulo 3ψ

−=

33

33

cos0sen

010

sen0cos

3

ψψ

ψψ

ψA

Page 22: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Sólidos y cinemática

10

10

De este modo, a diferencia del uso de ángulos de Euler, no es posible encontrar una posición

singular a no ser que el cuadro estuviese completamente volcado, punto en el que no tendría sentido

la simulación. Esto es así porque la “línea de nodos” equivalente para este sistema estaría definida

por la intersección de los planos <XY> y <x3z3> , planos que permanecen casi perpendiculares

mientras la bicicleta no vuelque. Esto se ilustra en la siguiente figura:

Fig 3-4. Orientación del sistema 3

Por tanto, la posición del centro de gravedad es:

[ ]Trzryrx=3GR (10)

Y la orientación del sistema 3 queda definida por la siguiente matriz de rotación:

3333 ψθϕ AAAA = (11)

Esto supone la incorporación de 6 coordenadas para el cuadro.

Page 23: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

11

11

3.3.2. Manillar, sólido 4

El siguiente sólido a situar será el manillar, sólido 4. Para orientar el manillar en el sistema

global se realizarán dos giros respecto al cuadro. Un primer giro alrededor del eje y3 un ángulo

conocido β :

−=

ββ

ββ

β

cos0sen

010

sen0cos

A

Y un segundo giro respecto del sistema girado, alrededor de su eje z un ángulo γ :

−=

100

0cossen

0sencos

γγγγ

γA

Nótese que el ángulo β no es una coordenada, sino un parámetro conocido, basado en datos

experimentales, mientras que γ sí supone la adición de una coordenada. En lugar de hacer coincidir

el eje z de los sistemas del cuadro y del manillar, se ha optado por realizar el giro de β para poder

orientar posteriormente el cuerpo del ciclista de un modo más sencillo.

Para el posicionamiento del centro de gravedad en globales es necesario hacer uso de

parámetros consistentes en distancias medidas en la bicicleta, los vectores 3Gr y

4Gr , conocidos (en

este trabajo se parte de los valores calculados de dichos vectores, así como del resto de parámetros

geométricos y dinámicos necesarios de la bicicleta y del ciclista. Estos pueden hallarse de diversas

maneras [10]). En la siguiente figura se observa su posición.

Page 24: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Sólidos y cinemática

12

12

Fig 3-5. Esquema del manillar respecto del cuadro.

Estos vectores están expresados en el sistema de referencia girado un ángulo β respecto al 3.

Por ello, para expresar la posición del centro de gravedad del manillar respecto del sistema global de

coordenadas es necesario introducir estos vectores girados. Así, 4GR queda del siguiente modo:

( )33 3 GGGG rrAARR

44−+= β (12)

La orientación del sistema 4 queda definida por la siguiente matriz de rotación:

γβ AAAA 34 = (13)

Esto supone la incorporación de 1 coordenada al sistema, debida a la libertad de giro del

manillar respecto del cuadro gracias al par de rotación entre ellos.

Page 25: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

13

13

3.3.3. Suspensión trasera, sólido 7

A continuación se procederá a situar los sólidos de la suspensión. En primer lugar, la

suspensión trasera. Ésta añade un sólido adicional que se interpone entre el eje de la rueda trasera y

el cuadro, que ya no están conectados directamente.

La orientación también se realiza a partir del sólido 3, mediante un giro respecto a éste

alrededor del eje y3 un ángulo c1:

−=

11

11

cos0sen

010

sen0cos

1

cc

cc

cA

La posición del centro de gravedad de este sólido se realiza a partir del centro de gravedad

del sólido 3, considerando parámetros consistentes en distancias que se obtienen

experimentalmente: los vectores 3Gr , ya definido, y

7ru , que se observa en la siguiente imagen.

Fig 3-6. Esquema de la amortiguación trasera

Page 26: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Sólidos y cinemática

14

14

El vector 7r

u está expresado en el sistema de referencia del sólido 7, por lo que será

necesario girarlo también para tenerlo en cuenta en la expresión del centro de gravedad del sólido 7.

7rGGG uArAARR 73 337−−= β (14)

La orientación del sistema 7 queda definida por la siguiente matriz de rotación:

137 cAAA = (15)

Esto supone la incorporación de 1 coordenada al sistema, debida a la libertad de giro del

sólido 7 de la suspensión trasera respecto del cuadro, gracias al par de rotación entre ellos.

Page 27: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

15

15

3.3.4. Suspensión delantera, sólido 8

Tras situar el sólido de la suspensión trasera se procederá con la delantera. Ésta añade un

sólido adicional que se interpone entre el eje de la rueda delantera y el manillar.

A diferencia de la suspensión trasera, lo que aquí se permite no es un giro sino un

desplazamiento relativo al manillar, esto es, existe un par prismático entre el sólido 4 y el 8. Como

en el par prismático no está permitido giro alguno, esto supone que la orientación del sólido 8

coincida con la del 4, compartiendo matriz de rotación.

48 AA = (16)

La posición relativa del centro de gravedad del sólido 8 respecto del 4 dependerá de

parámetros geométricos pero también de la coordenada c2, que representa el desplazamiento de la

amortiguación delantera. Esta coordenada se ha definido como la componente del eje z8 de la

posición relativa del sólido 4 respecto del 8. De este modo, el vector de posición relativa entre

ambos sólidos, 8Gr , está formado por un parámetro conocido y por la coordenada que se acaba de

definir.

[ ]Tcx 28 08

−=Gr (17)

Fig 3-7. Esquema de la amortiguación delantera

Page 28: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Sólidos y cinemática

16

16

El vector 8Gr está expresado en el sistema de referencia 4 por lo que será necesario girarlo

también en la expresión del centro de gravedad del sólido 8.

848 4 GGG rARR += (18)

Esto supone la incorporación de 1 coordenada al sistema, debida a la libertad de

desplazamiento del sólido 8 de la suspensión delantera respecto del manillar, gracias al par

prismático entre ellos.

De este modo se han definido y posicionado ambas suspensiones. Cada una de ellas permite

un grado de libertad adicional, el de la trasera es un giro y el de la delantera un desplazamiento.

Podría parecer que se introducen 2 grados de libertad adicionales, y así es, aunque esto no supone

problema para la estabilidad ya que son las fuerzas de rigidez y amortiguamiento de cada

suspensión las que se encargan de limitar la evolución de dichos grados de libertad. Esto se verá

más adelante en la definición de solicitaciones.

Page 29: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

17

17

3.3.5. Ruedas trasera y delantera, sólidos 2 y 5 respectivamente

A continuación se procederá a situar las dos ruedas de la bicicleta. En primer lugar se

orientará la rueda trasera, sólido 2. Para ello se parte de nuevo del sistema 3, y se define el 2 por

medio de un giro respecto del 3 alrededor del eje y3 un ángulo ψ .

−=

ψψ

ψψ

ψ

cos0sen

010

sen0cos

A

La orientación del sólido 2 correspondiente a la rueda trasera queda fijada mediante la

siguiente matriz de rotación:

ψAAA 32 = (19)

El centro de gravedad de la rueda coincide con su centro geométrico y con el eje de la rueda,

es decir, con el par de rotación con el sólido 7, de la suspensión trasera. Para posicionar este punto

son necesarios parámetros conocidos de la geometría. En este caso es necesario el vector 7Gr , que

está expresado en el sistema de referencia 7.

Fig 3-8. Esquema de la rueda trasera

Page 30: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Sólidos y cinemática

18

18

Dado el vector 7Gr , la posición del centro de gravedad de la rueda trasera será:

772 7 GGG rARR −= (20)

Para la rueda delantera, sólido 5, se procederá de forma análoga. La orientación se define

por medio de un giro respecto del sistema 8 alrededor del eje y8 un ángulo ε .

−=

εε

εε

ε

cos0sen

010

sen0cos

A

Pero la orientación del sistema 8 coincide con la del sistema 4, por tanto, la orientación del

sólido 5, correspondiente a la rueda delantera, queda fijada mediante la siguiente matriz de rotación:

εAAA 45 = (21)

El centro de gravedad de la rueda coincide con su centro geométrico y con el eje de la rueda,

es decir, con el par de rotación con el sólido 8, de la suspensión delantera. Para posicionar este

punto son necesarios parámetros conocidos de la geometría. En este caso es necesario el vector 5Gr ,

que está expresado en el sistema de referencia 8.

Fig 3-9. Esquema de la rueda delantera

Page 31: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

19

19

Dado el vector 5Gr , la posición del centro de gravedad de la rueda delantera será:

585 4 GGG rARR += (22)

Esto supone la incorporación de 2 coordenadas al sistema, una por cada rueda, debidas a la

libertad de giro de cada rueda respecto de ambas amortiguaciones, debido a los pares de revolución

entre rueda y sólido.

Los puntos de contacto de cada rueda necesitan dos coordenadas adicionales para cada

rueda, debido a que su geometría es tridimensional, como se vio anteriormente.

Page 32: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Sólidos y cinemática

20

20

3.3.6. Cuerpo del ciclista, sólido 6

Por último se situará el sistema correspondiente al cuerpo de ciclista, considerado como

sólido.

La orientación de este sistema parte del 3, mediante un giro alrededor del eje x3 un ángulo

η .

−=ηηηηη

cossen0

sencos0

001

A

La orientación del sólido 6 queda definida por la siguiente matriz de rotación:

ηAAA 36 = (23)

La posición del centro de gravedad se sitúa a partir de la del centro de gravedad del sistema

3, por medio de un vector 6Gr , consistente en parámetros geométricos.

636 6 GGG rARR += (23)

La expresión (23) es válida suponiendo que el eje de giro del cuerpo del ciclista coincida

con el punto 3GR . En caso contrario, habría que sumar otro vector con la posición relativa de dicho

eje respecto del centro de gravedad del sólido 3. En este caso se asume que coincide y se posiciona

en el sillín.

Debido al ciclista, se ha incorporado una nueva coordenada debida al giro del ciclista

respecto del cuadro. Sin embargo, no será tratada como una coordenada libre ya que se fijará su

valor. Para el simulador offline se supondrá el cuerpo del ciclista anclado al cuadro y para el

interactivo el valor del ángulo podrá cambiar, pero con el valor fijo como parte del control.

Page 33: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

21

21

3.4. Conjunto de sólidos

De este modo, todos los sólidos, sin contar el ciclista y el suelo quedan configurados como

aparece en la siguiente figura.

Fig 3-10. Esquema de la bicicleta completa

El cuadro introduce 6 coordenadas: rx, ry, rz, 3ϕ , 3θ y 3ψ . El manillar introduce 1: γ . La

suspensión delantera y trasera 1 cada una: c1 y c2. Las ruedas 1 cada una: ψ y ε . El ciclista 1: η .

El punto de contacto de las ruedas necesita 2 para cada una: dζ , dτ , tζ y tτ . El punto de contacto

en el suelo necesita 2 para cada rueda: ds1 , ds2 , ts1 y ts2 . Esto suma un total de 20 coordenadas, de

las cuáles hay 5 grados de libertad [11].

Los códigos en simbólico para la definición de los sólidos de este apartado se encuentran en el

Anexo C.

Page 34: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Sólidos y cinemática

22

22

3.5. Restricciones

Se parte de 19 coordenadas (como se ha dicho, no se considera la del ciclista) y 5 grados de

libertad, por lo que la diferencia debe consistir en ecuaciones de restricción. De las 14 ecuaciones

de restricción, se van a dividir en restricciones de contacto y restricciones de rodadura sin

deslizamiento.

3.5.1. Restricciones de contacto

En primer lugar se determinarán las restricciones de contacto. Estas restricciones son las

debidas a los pares de leva de las ruedas. Consisten en las ecuaciones que deben cumplirse para

garantizar un único punto de contacto entre la rueda y el suelo. En el modelo inicial de suelo plano

y ruedas circulares, esto se reducía a imponer que el punto de contacto de la rueda delantera y su

tangente tuvieran la cota y la tercera componente nulas, pero con geometrías tridimensionales es

necesario imponer el contacto de otro modo.

Para imponer un par de leva tridimensional entre dos sólidos, es necesario cumplir 5 ecuaciones.

Y como cada sólido necesita 2 coordenadas para definir la geometría, el par de leva restringirá 1 grado

de libertad.

Fig 3-11. Esquema del par de leva 3D

Page 35: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

23

23

Primero, en el contacto se cumplirá que el punto en ambos sólidos coincide. Esto se traduce en 3

ecuaciones para las 3 componentes de la posición. Además, es necesario que los vectores normales a

ambas superficies en el punto de contacto compartan dirección. Esto es más fácil imponiendo la

perpendicularidad entre el vector normal de un sólido y los dos vectores tangentes del otro.

( ) ( ) ( )( ) ( )( ) ( ) ( )( ) ( ) 00

00

2212

1211

=∧⇒=

=∧⇒=

=−−+⇒=−

jC

jTiC

iC

ijC

jTiC

i

jC

jTiC

iC

ijC

jTiC

i

jC

jjiC

iijC

iC

tAttAtAnA

tAttAtAnA

0uARuAR0RR

(24)

Se trata de un sistema de 5 ecuaciones algebraicas no lineales.

Para el caso de la rueda y el suelo, se imponen esas 5 ecuaciones, partiendo de los vectores

de posición y tangentes en el punto de contacto, dados por las expresiones que se vieron en el

correspondiente apartado previo.

( )( ) ( ) ( )( ) ( ) ( ) 05

04

3:1

21

21

=∧=

=∧=

=−+=

ruedarueda

Tsuelosuelo

ruedarueda

Tsuelosuelo

sueloruedaruedarueda

τ

ζ

tAttR

tAttR

0RpRpARR G

(25)

Estas 5 ecuaciones se imponen para cada rueda, suponiendo un total de 10 ecuaciones de

restricción debida a contacto.

( ) 0R

RpCResCon =

==

trasera

delanteracon (26)

El jacobiano de dichas restricciones será:

( ) ( )p

pCpCCqCon p ∂

∂==con

con (27)

Y la derivada del jacobiano:

( ) ( ) ( )( )p

ppCpp

pCppCDCqCon p ∂

⋅∂=⋅

∂∂

==&

&&conp

conpcon

dt

d, (28)

La primera expresión conllevaría la manipulación de una hipermatriz, por lo que se utilizará la

segunda, que puede comprobarse que es equivalente debido a la igualdad de derivadas cruzadas [12].

Page 36: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Sólidos y cinemática

24

24

3.5.2. Restricciones de rodadura sin deslizamiento

Estas restricciones se deben a la hipótesis realizada que supone rodadura sin deslizamiento

en ambas ruedas. Es claro que en la realidad esto no es así, existiendo un deslizamiento relativo

entre suelo y rueda. Podría utilizarse un modelo de contacto basado en el modelo de Hertz, por lo

que no habría restricciones de ningún tipo (como en el modelo de 11 grados de libertad de [13]), tan

sólo fuerzas, pero esto queda fuera del alcance de este trabajo, por lo que se deja para una futura

evolución del modelo.

La rodadura sin deslizamiento impone que las velocidades del punto de contacto para ambos

sólidos coincidan, o bien que la velocidad del punto de contacto de la rueda con el suelo sea nula.

Antes de imponer dicha condición es necesario obtener las velocidades.

Por definición, la velocidad angular, ω , es aquel vector que cumple que rωr ∧=& .

Partiendo de que rAr = para r en locales:

( ) AAωAωArArωArωAr

AAωAAωrArAωrωrωr&&&&

&&&&

⋅=⇒=⋅⇒=⋅=∧=

⋅=⇒=⋅⇒=⋅=⋅=∧=T

T

~~~

~~~~ (29)

Ya que la matriz de giro es ortogonal, y dónde ω~ es una matriz tal que rωrω ⋅=∧ ~ . De la

expresión (29) pueden obtenerse las velocidades angulares en globales, ω , y locales, ω . En el

programa se utilizarán en locales. A continuación se expresará ω en función de una matriz G tal que

( ) ( ) ppGppω && ⋅=, , donde puede demostrarse que es posible expresar pω

G&∂

∂= . La aceleración angular

en locales es:

( ) ( ) pppGppGωα &&&&&& ⋅+⋅== , (30)

La demostración es muy sencilla:

( ) ωωωωωAAωAAωAωAAωAAα &&&&&&& =+∧=⋅+⋅=⋅+⋅=== TTTTTα QED

donde

( ) ( ) ( ) ( )( ) ( )p

ppω

pppG

pppG

ppGppg∂

∂=∂

⋅∂=⋅∂

∂==&&

&&&&,

,, , (31)

para no manipular hipermatrices.

Page 37: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

25

25

El proceso es análogo para las velocidades de los centros de gravedad:

( ) ( ) ( ) ( ) ( )ppr

pHppHpppr

ppv∂

∂=⋅=⋅∂

∂= GG ,, &&& (32)

Para las aceleraciones de los centros de gravedad:

( ) ( ) ( ) ( ) pppHppHppvppa &&&&&&&& ⋅+⋅== ,,, (33)

donde

( ) ( ) ( ) ( )( ) ( )p

ppvp

ppHp

ppH

ppHpph∂

∂=∂

⋅∂=⋅∂

∂==&&

&&&&,

,, , (34)

de nuevo para no manipular hipermatrices.

Con las velocidades obtenidas, se impone la restricción de rodadura sin deslizamiento. Como se

ha dicho, para que las velocidades del contacto de la rueda y el suelo coincidan, ha de imponerse que la

del punto de contacto de la rueda sea nula. A partir de la velocidad del centro de gravedad de la rueda, la

velocidad del punto de contacto se obtiene por el campo de velocidades del sólido rígido:

( ) 0RpωApHv =∧+⋅= ruedaruedaruedaConrueda & (35)

Esta ecuación vectorial supone 3 ecuaciones escalares, 1 para cada componente de la velocidad,

sin embargo, sólo 2 de ellas son útiles, pues la tercera está implícita en la condición de contacto de las

restricciones anteriores. Por ello sólo se utilizan las 2 primeras componentes de la velocidad para esta

restricción, ya que la última será nula automáticamente al cumplirse el contacto.

De esta manera se obtienen 2 ecuaciones de restricción por cada rueda, lo que supone 4

ecuaciones de restricción no holónomas en el sistema.

( ) 0v

vppCResRod =

==

Con

Conrod

5

2, & (36)

Puede comprobarse que:

( ) ( )p

ppCpBB

&

&

∂∂== ,rod

(37)

Page 38: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Sólidos y cinemática

26

26

Y la derivada de esta matriz:

( ) ( ) ( ) ( )( ) ( )p

ppCp

ppBpppB

ppBppDBDB∂

∂=∂

⋅∂=⋅∂

∂===&&

&&&,

,,rod

dt

d (38)

En las ecuaciones de restricción, así como las matrices y jacobianos, no se ha incluido el término

correspondiente a la coordenada de la inclinación del cuerpo del ciclista, como ya se dijo antes. Tras la

definición de variables simbólicas y el posicionamiento y orientación de los sólidos, los códigos en

simbólico para las restricciones de este apartado se encuentran en el Anexo D.

Page 39: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

27

27

4. SOLICITACIONES Y DINÁMICA

ras la definición del modelo y configuración de los sólidos y cinemática del

mismo, se procederá a la parte dinámica y asignación de las solicitaciones a las

que estará sometido. Lo que sigue es una somera descripción del modelo del que

se parte, al que se le ha añadido la parte correspondiente a la suspensión.

4.1. Ecuaciones dinámicas

Las ecuaciones utilizadas en el modelo de partida para resolver la dinámica del mecanismo

son las de Newton-Euler [14], con los términos lineales en globales y los angulares en locales, que

son las mismas ecuaciones que se usan en la nueva versión. De este modo, en cada sólido debe

cumplirse:

( ) ( )ωIωIωωIAAωIAA

ωIAAIωAFrM

&&& +∧=+

===∧+∑∑TT

TT

dt

d

dt

d

ωIωMωI

vF~−=

=&

&m (39)

Las masas e inercias de cada sólido se incluyen en la matriz de masa M del sistema. Las

fuerzas y momentos van en el vector de fuerzas aplicadas, Q . El término del tensor de inercia,

ωIω ⋅⋅~, se trata como una solicitación de carácter volumétrico, en el vector vQ . Las aceleraciones

lineales y angulares aparecen en el vector de aceleraciones, q&& . Así, las ecuaciones de Newton-Euler

en modo matricial quedan:

vQQqM +=⋅ && (40)

T

Page 40: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Solicitaciones y dinámica

28

28

4.2. Término inercial

El primer término de la ecuación es el término relativo a la inercia del sistema. Recoge la

matriz de masa y las aceleraciones del mecanismo. Este término es análogo al del modelo de

partida, salvo por la adición de los términos de masa, inercia y aceleraciones de la suspensión.

Primero se analizará el término de aceleraciones. Como se vio anteriormente, las

aceleraciones se relacionan con las de las coordenadas del sistema a través de unas matrices

correspondientes a las velocidades y aceleraciones lineales y angulares, g , G , h y H .

plpLpg

hp

G

Hq &&&&&&&& +=

+

= (41)

La matriz de masa de la ecuación (40) está configurada de la siguiente manera:

=

n

nm

m

m

I000

000

00I00

00I00

00I00

0000

00I0

000I

M

K

O

M

M

O

L

2

1

2

1

(42)

De esta forma, la ecuación (40) queda en función de las coordenadas y sus derivadas:

( ) ( ) { ( )44 344 21&&&

43421&&&

v

vTTT

v

QQM

pMlQLQLpMLLQQplpLM −+=→+=+ (43)

La matriz de masa que se tratará en el programa es la que se acaba de definir, análoga al

modelo de partida añadiendo los términos de la suspensión:

MLLM T= (44)

Page 41: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

29

29

4.3. Términos de fuerza

A continuación se verán los términos asociados a las fuerzas, que son los mismos del

modelo de partida, tras añadir los términos de la suspensión. Se tratarán del siguiente modo:

( )pMlQLQ

QLQ

&−==

vT

v

T

(45)

Mientras que Q puede dividirse a su vez en:

suspacaerograv QQQQQ +++= (47)

4.3.1. Término volumétrico

Aunque no es una fuerza como tal, puede tratarse de modo similar. El término volumétrico

está relacionado con los efectos inerciales específicos del movimiento tridimensional y procede de

expresar los términos de la ecuación angular en coordenadas locales. Es el siguiente:

∧= pMl

ωIω

ωIωLQ &

M

M

nnn

Tv

111

0

0

(48)

4.3.2. Término gravitatorio

Ahora se verán los términos de fuerzas como tal, los pertenecientes al vector Q . El primero

de ellos, el término gravitatorio, queda como sigue:

−−−⋅−

⋅−

=

0

0

0

0

0

0

2

1

M

M

gm

gm

Tgrav LQ (49)

Page 42: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Solicitaciones y dinámica

30

30

4.3.3. Término aerodinámico

En el modelo inicial, la resistencia al aire modela de una forma sencilla como una fuerza que

actúa en dirección contraria a la velocidad del centro de gravedad del sólido 3 y es proporcional al

cuadrado de la velocidad de este punto según una constante. Para el nuevo modelo se toma igual:

33

3

3

3 3G

2G v

0

0

v

0

0

GT

G

GT

aero cvcv vHv

vLQ ⋅⋅⋅−=

⋅⋅−=

M

M

(50)

4.3.4. Acción del ciclista

El ciclista realiza 1 par sobre cada grado de libertad (excepto la suspensión). Estos pares se

tratan en el modelo de partida como una solicitación externa conocida aplicada al manillar, rueda

trasera y vuelco.

La acción sobre el manillar es un par aplicado en eje z4, el par de pedaleo un par aplicado en

el eje y2 y el vuelco un par aplicado en el eje x3. Como se expresa en locales:

( ) ( ) ( )( )

=

=

=

vuelco

ped

dir

vuelco

ped

dirTTT

vuelco

ped

dir

ac

M

M

M

M

M

M

M

M

M

SGGGLQ :,1:,2:,3

0

0

324

M

M

M

M

(51)

El par externo aplicado a la rueda trasera se ha denominado de pedaleo, aunque podría

suponerse proporcionado por un motor y estudiar el comportamiento de una motocicleta variando

los parámetros necesarios [15].

El par de vuelco se tomará nulo debido a la dificultad del ciclista para ejercerlo, ya que no

tiene apoyo, por lo que se supone despreciable.

Page 43: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

31

31

Un aspecto a considerar es que estas acciones del ciclista son tratadas como fuerzas externas

y no internas, es decir, en este modelo no se han considerado las reacciones correspondientes, por

considerar su influencia despreciable en el funcionamiento común del sistema. Por ejemplo, la

inercia del manillar es mucho más pequeña que la del resto de la bicicleta, incluyendo al ciclista,

por lo que el par de dirección de reacción tendrá una influencia despreciable. El par de reacción del

pedaleo tendería a provocar el despegue de la rueda delantera en una situación extrema. Tal efecto

no se ha modelado, por la complejidad que supondría, pero para que eso ocurriese el par tendría que

ser demasiado elevado y se supondrá que en los casos a simular el par de pedaleo no llegará a tal

valor, en todo caso disminuirá ligeramente la reacción del suelo sobre la rueda delantera.

Page 44: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Solicitaciones y dinámica

32

32

4.3.5. Fuerzas de suspensión

Por último se desarrolla el modelado de la suspensión utilizado para el nuevo modelo, con

las correspondientes fuerzas elásticas y de amortiguamiento.

Fig 4-1. Esquema de fuerzas de suspensión entre dos sólidos

En la figura de arriba, la distancia l entre los puntos de la suspensión es:

PQTPQ

iP

iijQ

jjiP

jQPQl rruARuARRRr =−−+=−== (52)

Estas fuerzas que surgen de la suspensión se expresarán directamente como fuerzas

generalizadas, ya que es mucho más sencillo. Para ello, se calcula primero la expresión de la

energía potencial elástica y la disipación de Rayleigh.

( )

2

20

2

12

1

lcF

llKU def

&=

−= (53)

Page 45: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

33

33

Ahora, para calcular las fuerzas generalizadas directamente sólo queda:

pQ

pQ

&∂∂−=

∂∂

−=

F

U

am

defel

(54)

En primer lugar, para la fuerza elástica:

( )

( )

( )PQ

T

PQel

PQ

T

PQPQ

T

PQ

l

PQTPQ

el

l

llK

l

l

lllK

rp

rQ

rp

rr

p

rrr

p

pQ

∂∂−−=⇒

∂∂

=

∂∂

⋅⋅=∂∂→

∂∂−−=

0

/1

2/1

0

12

2

148476

(55)

Para la de amortiguación:

( )

pppQ

pp

ppp

ppp

ppp

pQ

I0

∂∂

∂∂−=⇒

∂∂=

∂∂

∂∂+

∂∂

∂∂=

∂∂

∂∂=

∂∂→

∂∂−=

llc

lllll

llc

T

Tam

am

&

876

&&

&

48476

&&

&&

&

&

&&

(56)

A continuación se realiza el cálculo de dichos términos para la suspensión trasera y

delantera. La longitud indeformada de cada muelle, así como las constantes de rigidez y

amortiguamiento de cada suspensión son consideradas parámetros conocidos. El modelo de [16]

constituye un ejemplo de la inclusión de la suspensión para una bicicleta en un modelo multibody.

Page 46: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Solicitaciones y dinámica

34

34

4.3.5.1. Suspensión trasera

El grado de libertad de la suspensión trasera consiste en un giro, sin embargo, la suspensión

se modela linealmente, por lo que son necesarios dos puntos desde los que se aplica. La posición de

estos puntos depende de características geométricas.

Fig 4-2. Esquema de suspensión trasera

Son necesarios los vectores 7su y 3su para posicionar dichos puntos. A partir de ahí, el

proceso es el descrito anteriormente.

( )2373737

2

370373737

3737

373737

3333

777737

2

12

1

lcF

llKU

ll

l T

sGsG

&

&&

=

−=

∂∂=

=

−−+=

pp

rr

uARuARr

(57)

Y las fuerzas generalizadas para la suspensión trasera:

ppQQQ

&∂∂−

∂∂−=+= 3737

373737

FUamelsusp (58)

Page 47: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

35

35

4.3.5.2. Suspensión delantera

El grado de libertad de la suspensión delantera es lineal. Al igual que en el caso anterior, es

necesario conocer el punto de cada sólido.

Fig 4-3. Esquema de suspensión delantera

Son necesarios los vectores 8su y 4su para posicionar dichos puntos. A partir de ahí, las

ecuaciones son análogas al caso anterior.

ppQ

&∂∂−

∂∂−= 4848

48

FUsusp (59)

De este modo, el término total de fuerza debido a suspensiones:

4837 suspsuspsusp QQQ += (60)

Con esto queda entonces completo el desarrollo dinámico del sistema. Los códigos en simbólico

para este apartado se encuentran en el Anexo E. Con esto finalizaría la parte simbólica del programa.

Page 48: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Resolución numérica

36

36

5. RESOLUCIÓN NUMÉRICA

on las funciones para la definición de la cinemática y dinámica del mecanismo, ya

sólo queda resolver en cada instante e integrar. Para ello será necesario definir el

tipo al que pertenece cada coordenada, resolver el problema de posición, el de

velocidades y, por último, el de aceleraciones. Posteriormente también se verá la resolución

aplicada al simulador interactivo. Para llevarlo a cabo se utiliza el procedimiento del modelo de

partida [17], modificado para incluir de nuevo la suspensión. A continuación se describe

someramente el proceso.

5.1. Clasificación de coordenadas

En el nuevo modelo se parte de 20 coordenadas. Primero, será necesario determinar su

clasificación para posteriormente resolver el mecanismo. De las 20, 5 son los grados de libertad, 4

corresponden a las restricciones no holónomas, 10 a las de contacto y 1 al ciclista, que será fija. Las

20 coordenadas del sistema son las siguientes:

[ ]Tttttdddd ccssssrzryrx 212121333 ητζτζεγψθψϕ=p

Por parecer más intuitivo, como grados de libertad se han tomado las 2 coordenadas de la

suspensión, el giro del manillar, el de la rueda trasera y 3θ , uno de los ángulos del cuadro, análogo

al vuelco o alabeo. Estas cinco coordenadas se agrupan en un vector de coordenadas dinámicas.

De manera algo más arbitraria, se han seleccionado como coordenadas correspondientes a

las restricciones no holónomas las coordenadas de posición del centro de gravedad del cuadro x e y,

el giro de la rueda delantera y otro de los ángulos del cuadro, 3ϕ , representativo de un giro

horizontal absoluto del plano del cuadro o guiñada. Estas cuatro coordenadas se agrupan en un

vector de coordenadas cinemáticas.

Las coordenadas restantes, las 8 correspondientes a las superficies de contacto, la

coordenada z del centro de gravedad del cuadro y el ángulo 3ψ , relativo a la inclinación o cabeceo

C

Page 49: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

37

37

del cuadro, son las correspondientes a las restricciones de contacto y se agrupan en un vector de

coordenadas dependientes.

=

2

1

3

c

cdin γ

ψθ

p

=

εϕ3

ry

rx

kinp

=

t

t

t

t

d

d

d

d

dep

s

s

s

s

rz

2

1

2

1

3

τζ

τζψ

p

Aunque la elección de las coordenadas se ha llevado a cabo de manera intuitiva, podría

haberse hecho uso de diferentes métodos para ello [18]. Tras integrar, en cada instante se partirá del

valor de las nueve coordenadas del vector de coordenadas dinámicas y cinemáticas, además de la

derivada temporal del vector de coordenadas dinámicas. A partir de estos valores, tras resolver el

problema de posición se calculan las coordenadas dependientes. Posteriormente se está en

condiciones de resolver el problema de velocidades del mecanismo. Por último se obtendrán las

aceleraciones tras aplicar las ecuaciones dinámicas que, junto con las velocidades y posiciones

calculadas permitirán al integrador una nueva iteración. Esto se desarrolla más adelante.

Page 50: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Resolución numérica

38

38

5.2. Problema de posición

Resolver el problema de posición consiste en calcular el vector de coordenadas dependientes

a partir de las coordenadas independientes y las cinemáticas, utilizando para ello las ecuaciones de

restricción del par de leva correspondientes al contacto de las ruedas con el suelo.

Para resolver dichas ecuaciones se hace uso del algoritmo Newton-Raphson. Se comienza

asignando al vector de coordenadas dependientes unos valores iniciales sobre los que iterar. Si el

instante que se resuelve es el inicial, estos valores se eligen cercanos a los de la configuración

inicial deseada del mecanismo. Para cualquier otro instante, los valores iniciales se asignan a partir

de los del instante anterior más un incremento en función de la derivada de la coordenada y el

incremento de tiempo transcurrido. Este algoritmo se ha modificado ligeramente para adaptarlo al

nuevo modelo.

Haciendo un desarrollo en serie del vector de restricciones:

( ) ( ) ( )

( )

( )iii

con

icon

icon

con

ppp

pCpCpC

pC0

p

−∂

∂≈− ++ 11

4342143421

(61)

En este punto, conpC no es cuadrado, puesto que hay 19 coordenadas y 10 ecuaciones, por lo

que no puede calcularse su inversa. Sin embargo, cómo las únicas coordenadas que se actualizan

son las dependientes, la variación del resto en cada iteración es nula, por lo que la única parte

necesaria del jacobiano es la correspondiente a dichas coordenadas, el resto va multiplicada por

ceros. De esta forma, el jacobiano a utilizar es cuadrado:

( ) ( ) ( )( ) ( )i

conidep

con

idepidep

idepidepidep

coni

con

pCpCpp

pppCpC

p

p

⋅−=⇒

−⋅=−−

+

+

1

1

1 (62)

Así se itera hasta que el valor absoluto máximo del vector ( )icon pC esté por debajo de un

error máximo fijado previamente. La inmensa mayoría de las veces el error de partida con los

valores iniciales dados anteriormente ya es suficientemente pequeño por lo que el bucle sólo se

recorre una vez y no se itera. Esto agiliza el programa y supone la posibilidad de integrar en tiempo

real.

Antes de seguir avanzando se ha impuesto una condición de no vuelco, consistente en que el

ángulo 2

95.02

95.0 3

πθπ <<− , puesto que vuelca cuando 23

πθ ±= .

Page 51: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

39

39

5.3. Problema de velocidad

Con todos los valores de las coordenadas en el instante actual el programa está en

condiciones de dibujar la configuración del mecanismo. El dibujo se realiza mediante un fotograma

cada 5 instantes de tiempo.

A continuación se resuelven las velocidades del sistema. Para determinar las velocidades del

mecanismo son necesarias también las condiciones de rodadura sin deslizamiento, restricciones no

holónomas [19]. De este modo:

( )

( ) 0pp

C0ppC

0pp

CC0pC

B

Cp

=∂

∂==

=∂

∂=→=

&

321&

&

&

321

&

rodrod

conconcon

con

,

( ) 0ppDpB

C

D

p =⋅=⋅

&&

321

con

(63)

Tal como se indicó al principio, como se parte de dinp& en el instante actual pues se calculó

en el instante anterior:

0pDpDpD =+= kindepkindepdindin &&& (64)

Y como kindepD es una matriz cuadrada:

dindinkindepkindep pDDp && 1−= (65)

Y así se obtiene el resto de velocidades. De este modo tenemos el valor de todas las

coordenadas del mecanismo y todas las velocidades por lo que pueden calcularse las aceleraciones

y finalizar la resolución.

Page 52: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Resolución numérica

40

40

5.4. Aceleraciones

Ahora se utilizarán las ecuaciones de la dinámica para calcular las aceleraciones. Antes de

comenzar, se mostrará la eliminación de la coordenada del ciclista. Como se vio anteriormente:

TvTTT QQpM +=&& (43)

Donde los términos incluyen la coordenada del ciclista. Sin embargo, al ser ésta guiada,

conocida:

ηMQQpM ηv −+=&& (66)

Ecuación en la que los términos y las matrices no incluyen η , ésta sólo aparece con su valor

conocido multiplicando su columna correspondiente a la matriz de masa, ηM . En la simulación

offline se toma 0=η para todo instante, por lo que el término desaparece. Por otro lado, las

aceleraciones deben cumplir que:

0pDpDpD0pD =++→= kindepkindepdindin &&&&&&& (67)

Lo que suponen 19 ecuaciones de la (66) y 14 de la (67). Este sistema permitiría calcular las

19 aceleraciones y los 14 multiplicadores de Lagrange para las fuerzas procedentes de las

restricciones. Sin embargo, sólo las aceleraciones son necesarias para seguir iterando, por lo que se

omite el cálculo de los multiplicadores, permitiendo simplificar la resolución mediante la aplicación

del generalised coordinate partitioning method [20], que permite pasar las DAE a ODE. Este es el

motivo por el que previamente no se incluyó el término de fuerzas asociadas a las restricciones

λDT , en la definición de los términos de fuerzas. Dichas fuerzas asociadas a los pares son de acción

y reacción, por lo que estrictamente no es posible que se anulen en un problema de dinámica

vectorial ya que, aunque están aplicadas en el mismo punto, pertenecen a sólidos distintos. No

obstante, al estar aplicadas en el mismo punto, desde un punto de vista energético del mecanismo

global la influencia de cada par de fuerzas es nula, como se va a comprobar a continuación.

De la ecuación (67), como kindepD es una matriz cuadrada:

pDDpDDp &&&&&& 11 −− −−= kindepdindinkindepkindep (68)

Page 53: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

41

41

FpEpDD

0p

DD

I

p

pp

FE

+=

−+⋅

−=

= −− din

kindepdin

dinkindepkindep

din&&

4434421&&

&&

44 344 21&&

&&&& 11 (69)

Esto, sustituido en la ecuación (66), teniendo en cuenta el término de fuerzas de reacción

mencionado anteriormente:

( ) λDQQFpEMpM Tvdin −+=+= &&&& (70)

( ) ( ) 321444 3444 21&&

434210QM

λDEFMEQQEpEME TTTv

Tdin

T

ii

−−+=⋅ (71)

Se ha comprobado que el término TTDE es idénticamente nulo, por lo que desparecen los

multiplicadores de Lagrange. Finalmente queda:

idini QpM =&& (71)

Que es la ecuación del movimiento en coordenadas independientes. Representa un reducido

conjunto de 5 ecuaciones diferenciales ordinarias (ODE) en lugar de las ecuaciones (66) y (67),

DAE, más complejas de resolver.

De esta manera, se reordena en el programa el vector de coordenadas

=

kindep

din

p

pp

&&

&&&& y el resto

de términos que intervienen y se llega a la ecuación (71). A partir de ahí:

iidin QMp 1−=&& (72)

Con esto queda entonces resuelto el mecanismo, permitiendo al integrador una nueva iteración.

Los códigos para la función de derivadas de este apartado que utiliza el integrador son idénticos a los

del programa de partida salvo por la adición de la suspensión y se encuentran en el Anexo F.

Page 54: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Resolución numérica

42

42

5.5. Integración

La integración se lleva a cabo a través del algoritmo ode45 de MatLab. En la función

principal se le proporcionan el vector de tiempo y las condiciones iniciales del mecanismo. A partir

de ahí, la función de derivadas descrita anteriormente le permite integrar. Esquemáticamente:

= →

=⇒⇒

⇒⇒

=

din

kin

dinIntegrador

din

kin

din

pdindep

kin

dep

din

kin

din

yyy

p

p

p

p

p

p

pp

pp

p

p

p

&&&

&

&

&&&

&

& 0

0

0

00

00

0

0

0

0

Es necesario mencionar que, ya que se ha incluido la suspensión en el modelo, hay que

calcular la posición estática del mecanismo para las condiciones iniciales. En efecto, se ha supuesto

que antes de comenzar la simulación, un ciclista se ha subido con la bicicleta en una posición de

partida horizontal y se ha dado tiempo a que el sistema se estabilice.

El cálculo de dicha posición se realiza por medio de otra función, que hace uso del

algoritmo fsolve de MatLab para calcular la posición estática de las coordenadas de la suspensión

[21]. La función que fsolve trata de anular es análoga a la de derivadas, devolviendo el vector iQ .

Los códigos para la función principal, procedente del programa de partida, y el cálculo de

coordenadas estáticas para la suspensión se encuentran en el Anexo G.

Page 55: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

43

43

6. SIMULACIÓN INTERACTIVA

n este punto, es posible trasladar el nuevo modelo con suspensión y geometría

tridimensional al simulador interactivo. Para ello se utilizará el mismo programa

de partida al que se ha implantado el nuevo modelo y se han realizado algunos

cambios en la visualización. La entrada se realiza por medio de un joystick de tres ejes, dos de ellos

para introducir el par de pedaleo y del manillar, y otro para controlar la inclinación del ciclista,

coordenada guiada que ahora sí varía. Las derivadas primera y segunda de esta coordenada se

calculan a partir de los valores de entrada del eje 3 del joystick y el incremento de tiempo

empleado. La integración numérica de las ecuaciones de movimiento se basa en el método descrito

en [22].

Fig 6-1. Esquema de control

E

Page 56: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Simulación interactiva

44

44

Se ha utilizado el control que se muestra en el esquema para este tipo de joystick porque

resulta más fácil de manejar, lo que permite realizar maniobras, como el countersteering, de forma

más intuitiva (en opinión del autor).

Los pasos de tiempo para la integración se extraen del tiempo real usando los comandos

“tic” y “toc” de MatLab, por lo que es importante que el tiempo de cálculo sea bajo, ya que en caso

contrario el paso sería demasiado elevado y la simulación imprecisa.

En este caso, para integrar se utiliza el algoritmo RungeKutta4 programado aparte, haciendo

uso de la función de derivadas. La única diferencia para esta función de derivadas es la inclusión de

los pares de pedaleo y dirección, y el valor y derivadas de la coordenada que controla la inclinación

del cuerpo del ciclista.

En la simulación interactiva, es fácil que el ciclista acabe saliéndose del área de suelo

dibujada por MatLab. Una posible solución es hacerla más grande, sin embargo, hacerla lo

suficientemente grande para que el ciclista no pueda salir retrasa demasiado la simulación, por lo

que se ha optado por dibujar el suelo siguiendo al ciclista. De este modo, siempre se dibuja la

misma cantidad, sin que el ciclista llegue nunca a salir. Aquí se observa un plot de uno de los

fotogramas:

Fig 6-2. Axonométrico siguiendo al ciclista

Page 57: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

45

45

Este dibujo muestra una vista ortogonal axonométrica que sigue el mecanismo

continuamente. Sin embargo, controlarlo con esta vista puede resultar engorroso, ya que en ciertas

posiciones puede ser difícil apreciar la configuración tridimensional del mecanismo en el espacio o

percibir la velocidad de la bicicleta. Para un control más natural, se trata de buscar distintos tipos de

visualización y ver el más adecuado para el manejo. Con este fin se utiliza una visualización

ortogonal axonométrica en la que la cámara está fija, lo que permite apreciar mejor la velocidad de

la bicicleta:

Fig 6-3. Axonométrico fijo

El problema de la cámara fija es que hay que mantener al ciclista dentro del campo de

visión. Además, resulta difícil apreciar el giro del manillar, la inclinación del ciclista o el vuelco de

la bicicleta, sobre todo en ciertas orientaciones, lo cuál es bastante relevante a la hora de controlarlo

correctamente. Por ello se utiliza esta vista axonométrica situada continuamente detrás del ciclista,

que permite una mejor percepción de la orientación del mecanismo aparte de que no es necesario

dar vueltas continuamente para no salir del campo de visión:

Page 58: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Simulación interactiva

46

46

Fig 6-4. Axonométrico siguiendo al ciclista desde atrás

Aunque es bastante adecuado para el control, esta visualización y las anteriores adolecen de

una falta de sentido de profundidad, causa de la proyección ortogonal, sumado a una representación

por alambres. Ya que es más intuitiva para el ser humano una proyección cónica, se utilizarán

distintas configuraciones de vista cónica para obtener mejor percepción espacial:

Fig 6-5. Cónica siguiendo al ciclista

Page 59: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

47

47

Esta es análoga a la primera, la cámara siguiendo al ciclista desde un lado, pero en vista

cónica. Para apreciar la velocidad, lo mejor es un punto de vista fijo, como en el caso anterior. Para

que el ciclista no salga del campo de visión siendo la cámara fija, al ser la vista cónica, se fuerza al

eje de la cámara a pasar por el centro de gravedad del cuadro. De este modo, la cámara apunta en

todo instante a la bicicleta y no es posible que salga del campo de visión.

Fig 6-6. Cónica fija apuntando al ciclista

El ciclista ya no se saldrá del campo de visión, pero si se aleja mucho de la cámara será

igualmente engorroso de controlar.

El último modo de visualización es el de vista cónica siguiendo al ciclista desde atrás. Es

quizás el que proporciona más realismo a la simulación, pues se trata de una cámara en tercera

persona desde la que se aprecia perfectamente la evolución el mecanismo:

Page 60: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Simulación interactiva

48

48

Fig 6-7. Cónica siguiendo al ciclista desde atrás

Con esto finalizaría la simulación interactiva. Los códigos que se han elaborado para los

distintos tipos de visualización se encuentran en el Anexo H, y forman parte de la función animaBici.m

[23].

Page 61: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

49

49

7. COMPARACIÓN Y CONCLUSIONES

n este caso una validación del modelo resulta complicada por no disponer de una

bicicleta con ambas suspensiones y el instrumental necesario. Sin embargo, el

modelo del que se parte sí está validado, por lo que se concluirá con una somera

comparación. Con ello se pretende, más que obtener similitudes, poner de manifiesto el efecto de la

suspensión y el terreno irregular que caracterizan el nuevo modelo respecto del anterior.

Como parámetro indicativo a comparar, de todos los posibles se tomará la fuerza de

reacción que soporta el suelo en los puntos de contacto de las ruedas, más relacionado con la

suspensión. Esto se llevará a cabo por medio de los multiplicadores de Lagrange para cada caso. En

lugar de usar el generalised coordinate partitioning method, se resolverán directamente las DAE,

para así obtener los multiplicadores. De este modo, de (66) y (67):

−−+

=

pD

MQQ

λ

p

0D

DM&&

&& ηηvT

(73)

En MatLab esto se lleva a cabo en la función de derivadas, reordenando antes las matrices

D y D& , y creando un vector de tiempo auxiliar que almacena cada instante de integración.

Posteriormente se selecciona el multiplicador correspondiente a la reacción deseada, que es distinto

en ambos modelos. Las respuestas para suelo plano y sin perturbación inicial en ambos modelos son

las siguientes:

Fig 7-1. Reacción rueda delantera en modelo de partida sin perturbar

E

Page 62: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Comparación y conclusiones

50

50

Fig 7-2. Reacción en ambas ruedas en modelo actual sin perturbar

En este caso se observa una leve oscilación en el caso con suspensión, lo cuál es lógico y

coherente con el modelo, posiblemente producida por la fuerza aerodinámica y pequeños desajustes

en las condiciones iniciales. Las respuestas para suelo plano al introducir una pequeña perturbación

inicial en el manillar son:

Fig 7-3. Reacción rueda delantera en modelo de partida con perturbación

Fig 7-4. Reacción en ambas ruedas en modelo actual con perturbación

Page 63: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

51

51

Aquí aparece un incremento brusco en la reacción seguido de una variación más gradual,

debido al giro y posterior estabilización. Al igual que antes, en el modelo actual se superponen

oscilaciones leves que ponen de manifiesto el efecto de la suspensión. A continuación se ilustran, a

modo de referencia, las reacciones del modelo actual con suelo irregular con y sin perturbación:

Fig 7-5. Reacción en ambas ruedas en modelo actual sin perturbación

Fig 7-6. Reacción en ambas ruedas en modelo actual con perturbación

Al igual que en los anteriores casos para el modelo actual, la respuesta se caracteriza por las

leves oscilaciones producto de la suspensión. Para suelo irregular, el efecto de la perturbación

inicial es mucho menor que el debido a la irregularidad del terreno, por lo que se observa que la

diferencia entre los dos últimos casos es escasa.

Si bien esto no constituye rigurosamente una validación del modelo, la comparación

establecida muestra resultados coherentes con el modelo de partida y con el efecto esperado de la

suspensión de la bicicleta.

Page 64: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Comparación y conclusiones

52

52

Como conclusión cabe destacar que, a pesar de añadir suspensión, terreno irregular y

geometría tridimensional de los neumáticos y del suelo, la simulación interactiva se ejecuta y

representa ágilmente en tiempo real en un equipo convencional, si no se añade excesiva carga

gráfica.

Page 65: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

53

53

REFERENCIAS

[1] E. H. Jones, David. The stability of the bicycle. Physics Today, 23(4), pp. 34-40, 1970.

[2] Kooijman, J. D. G.; Meijaard, J. P.; Papadopoulos, Jim M.; Ruina, Andy y Schwab, A. L. A Bicycle Can Be Self-Stable Without Gyroscopic or Caster Effects. Science, 332, pp. 339-342, 2011.

[3] Koenen, C. The dynamic behaviour of a motorcycle when running straight ahead and when cornering. PhD tesis, Universidad Tecnológica de Delft, 1983.

[4] Whipple, F. J. W. The stability of the motion of a bicycle. The Quarterly Journal of Pure and Applied Mathematics, 30, pp. 312-348, 1899.

[5] Escalona, José Luís. Dinámica de una bicicleta.

[6] H. Edwards, Bruce; P. Hostetler, Robert y E. Larson, Roland. Derivadas parciales de una función de dos variables. Cálculo y geometría analítica Vol. 2 (pp. 1126-1127). Mc Graw Hill.

[7] Kane, T. R. Fundamental kinematical relationships for the single-track vehicles. International Journal of Mechanical Sciences, 17, pp. 499-504, 1975.

[8] H. Edwards, Bruce; P. Hostetler, Robert y E. Larson, Roland. Superficies cilíndricas, superficies cuádricas y superficies de revolución. Cálculo y geometría analítica Vol. 2 (pp. 1023-1031). Mc Graw Hill.

[9] P. Beer, Ferdinand; Russell Johnston, E. y E. Clausen, William. Ángulos de Euler. Mecánica vectorial para ingenieros. Dinámica. (pp. 1183-1184). Mc Graw Hill.

[10] Kooijman, J. D. G.; Schwab, A. L. et al. A method for estimating physical properties of a combined bicycle and rider. En: Proceedings of the ASME 2009 International Design Engineering Technical Conferences & Computers and Information in Engineering Conference, San Diego, California, 30 agosto – 2 septiembre 2009, 10 pp.

[11] Goldstein, Herbert; Poole, Charles y Safko, John. The Independent Coordinates of a Rigid Body. Classical Mechanics. (pp. 134-138). Addison-Wesley.

[12] H. Edwards, Bruce; P. Hostetler, Robert y E. Larson, Roland. Igualdad de las derivadas parciales cruzadas. Cálculo y geometría analítica Vol. 2 (p. 1131). Mc Graw Hill.

Page 66: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

Referencias

54

54

[13] Cossalter, Vittore y Lot, Roberto. A motorcycle multi-body model for real time simulations based on the natural coordinates approach. Vehicle System Dynamics, 37, pp. 423-447, 2002.

[14] P. Beer, Ferdinand; Russell Johnston, E. y E. Clausen, William. Ecuaciones de movimiento de Euler. Mecánica vectorial para ingenieros. Dinámica. (pp. 1166-1167). Mc Graw Hill.

[15] Sharp, R. S. The stability and control of motorcycles. Journal of Mechanical Engineering Science, 15, pp. 316-329, 1971.

[16] Waechter, Matthias; Riess, Falk y Zacharias, Norbert. A multibody model for the simulation of bicycle suspension systems. Vehicle System Dynamics, 37, pp. 3-28, 2002.

[17] Escalona, José L. y Recuero, Antonio M. A bicycle model for education in multibody dynamics and real-time Interactive simulation. Multibody System Dynamics, 27, pp. 383-402, 2011.

[18] Kurz, Thomas; Burkhardt, Markus y Eberhard, Peter. Systems with constraint equations in the symbolic multibody simulation software Neweul-M2. En: Multibody dynamics 2011, ECCOMAS Thematic Conference, Bruselas, Bélgica, 4-7 julio 2011, 12 pp.

[19] Nikravesh, P. E. y Haug, E. J. Generalized coordinate partitioning for analysis of mechanical systems with nonholonomic constraints. ASME Journal of Mechanisms, Transmissions, and Automation in Design, 105, pp. 379-384, 1983.

[20] Wehage, R. A. y Haug, E. J. Generalized coordinate partitioning for dimension reduction in analysis of constrained dynamic systems. J. Mech. Design, 134, pp. 247-255, 1981.

[21] Systems of Nonlinear Equations, MatLab R2010a. MathWorks Documentation Center. Recuperado de http://www.mathworks.es.

[22] Schwab, A. L. y Meijaard, J. P. Dynamics of Flexible Multibody Systems with Non-Holonomic Constraint: A Finite Element Approach. Multibody Systems Dynamics, 10, pp. 107-123, 2003.

[23] 3-D Scene Control, MatLab R2010a. MathWorks Documentation Center. Recuperado de http://www.mathworks.es.

Page 67: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

55

Anexos

Anexo A Códigos para el suelo

Geometría

function [rp, ts1, ts2] = GeomSuelo(s1,s2,a,b,c,d) rp=[s1,s2,a*sin(b*s1)+c*sin(d*s2)].'; ts1=[1,0,a*b*cos(b*s1)].'; ts2=[0,1,c*d*cos(d*s2)].'; end

Dibujo

%%%%%%%%%%%%%%%%%% %Dibujo del suelo% %%%%%%%%%%%%%%%%%% %Líneas en dirección X %Variables auxiliares alfa=-5:0.5:20; %Valores de la coordenada X beta=-5:1:20; %Valores de la coordenada Y aux=1; %se utiliza para cambiar el sentido del recorrido a lternativamente %Bucle que recorre la dirección X. for j=1:length(beta) if aux==1 for k=1:length(alfa) rPS1(1:3,(j-1)*length(alfa)+k)=[alfa(k),beta(j),GSa1*sin(GSf1*a lfa(k))+GSa2*sin(GSf2*beta(j))]'; end else for k=1:length(alfa) rPS1(1:3,j*length(alfa)+1-k)=[alfa(k),beta(j),GSa1*sin(GSf1*alfa(k))+GSa2*sin (GSf2*beta(j))]'; end end aux=-aux; end

Page 68: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

56

%Variables auxiliares alfa=-5:0.5:20; beta=-5:1:20; aux=1; %Para este caso son iguales que el anterior, por lo que %ambas direcciones podrían realizarse en un único b ucle for j=1:length(beta) if aux==1 for k=1:length(alfa) rPS2(1:3,(j-1)*length(alfa)+k)=[beta(j),alfa(k),GSa1*sin(GSf1*b eta(j))+GSa2*sin(GSf2*alfa(k))]'; end else for k=1:length(alfa) rPS2(1:3,j*length(alfa)+1-k)=[beta(j),alfa(k),GSa1*sin(GSf1*beta(j))+GSa2*sin (GSf2*alfa(k))]'; end end aux=-aux; end %De este modo se obtienen dos matrices rPS1 y rPS2 que se superponen %para obtener las mallas del suelo en ambas direcci ones

Page 69: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

57

Anexo B Códigos para el neumático

Geometría

function [rp, txi, ttau] = GeomNeum(xi,tau,rad,R,T) r=rad-R+R*sqrt(1-(tau/T)^2); dr=-tau*(R/(T^2))*(1-(tau/T)^2)^(-1/2); rp=[r*cos(xi),tau,-r*sin(xi)].'; txi=[-r*sin(xi),0,-r*cos(xi)].'; ttau=[dr*cos(xi),1,-dr*sin(xi)].'; end

Dibujo

%%%%%%%%%%%%%%%%%%%%%%%%%% %Dibujo de los neumáticos% %%%%%%%%%%%%%%%%%%%%%%%%%% %Variables auxiliares alfa = 0:0.3:(2*pi+0.3); %Recorre el toro en dirección azimutal betat = -GTt:0.03:GTt; %Recorre anchura de rueda trasera betad = -GTd:0.03:GTd; %Recorre anchura de rueda delantera for j=1:length(alfa) %Bucle principal for k=1:length(betat) %Sub-bucle para rueda trasera rr=Rt-GRt+GRt*sqrt(1-(betat(k)/GTt)^2); rP2(1:3,(j-1)*length(betat)+k)=RG2+A2*[ rr*cos(alfa(j)),betat(k),-rr*sin(alfa(j))]'; end for k=1:length(betad) %Sub-bucle para rueda delantera rr=Rd-GRd+GRd*sqrt(1-(betad(k)/GTd)^2); rP5(1:3,(j-1)*length(betad)+k)=RG5+A5*[ rr*cos(alfa(j)),betad(k),-rr*sin(alfa(j))]'; end end %Matrices con las mallas de cada rueda rP2=[rP2 RG2]; %Esto es para visualizar el radio de cada rueda rP5=[rP5 RG5];

Page 70: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

58

Anexo C Códigos para la orientación y posición de los sólidos

%MATRICES DE ROTACION SIMPLE A_bet=[[cos(bet);0;-sin(bet)] [0;1;0] [sin(bet);0;c os(bet)]]; %Rotaciones para el sólido 3 A_phi3=[[cos(phi3);sin(phi3);0] [-sin(phi3);cos(phi 3);0] [0;0;1]]; A_tet3=[[1;0;0] [0;cos(tet3);sin(tet3)] [0;-sin(tet 3);cos(tet3)]]; A_psi3=[[cos(psi3);0;-sin(psi3)] [0;1;0] [sin(psi3) ;0;cos(psi3)]]; %Giros de las ruedas A_psi=[[cos(psi);0;-sin(psi)] [0;1;0] [sin(psi);0;c os(psi)]]; A_eps=[[cos(eps);0;-sin(eps)] [0;1;0] [sin(eps);0;c os(eps)]]; %Manillar A_gam=[[cos(gam);sin(gam);0] [-sin(gam);cos(gam);0] [0;0;1]]; %Ciclista A_eta=[[1;0;0] [0;cos(eta);sin(eta)] [0;-sin(eta);c os(eta)]]; %Suspensión A_c1=[[cos(c1);0;-sin(c1)] [0;1;0] [sin(c1);0;cos(c 1)]]; %MATRICES DE ROTACION DE LOS SISTEMAS DE REFERENCIA DE LOS SOLIDOS E INTERMEDIOS A3=A_phi3*A_tet3*A_psi3; A2=A3*A_psi; A4=A3*A_bet*A_gam; A5=A4*A_eps; A6=A3*A_eta; %Suspensión A7=A3*A_c1; A8=A4; %POSICIONES DE CENTROS DE GRAVEDAD Y ARTICULACIÓN EN LOCALES rG3=[x3 0 z3]'; rG4=[x4 0 z4]'; rG5=[x5 0 z5]'; rG6=[x6 0 z6]'; %Posición del cdg del tronco del ciclista respecto al eje de giro (sillín) %Suspensión rG7=[x7 0 z7]'; ur7=[urx7 0 urz7]'; rG8=[x8 0 -c2]'; %POSICIONES DE LOS CENTROS DE GRAVEDAD EN GLOBALES RG3=[rx ry rz]'; RG7=RG3-A3*A_bet*rG3-A7*ur7; RG2=RG7-A7*rG7; RG4=RG3+A3*A_bet*(rG4-rG3); RG8=(RG4+A4*rG8); RG5=(RG8+A4*rG5); RG6=(RG3+A6*rG6); %Esto sería exacto si el cdg del sólido 3 estuviera en el eje de giro del tronco del ciclista (sillín)

Page 71: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

59

Anexo D Códigos para las restricciones

%%%%%%%%%%%%%%%%%%%%% %%%%RESTRICCIONES%%%% %%%%%%%%%%%%%%%%%%%%% %Restricciones de contacto %Contacto rueda delantera [rprd, txid, ttaud] = GeomNeum(xid,taud,Rd,GRd,GTd) ; %Llama a geometría del suelo [rpsd, ts1d, ts2d] = GeomSuelo(s1d,s2d,GSa1,GSf1,GS a2,GSf2); %Llama a geometría de la rueda %Mismo punto de contacto RD = RG5+A5*rprd-rpsd; %Misma dirección de las normales RD(4) = (cross(ts1d,ts2d)).'*(A5*txid); RD(5) = (cross(ts1d,ts2d)).'*(A5*ttaud); %Contacto rueda trasera [rprt, txit, ttaut] = GeomNeum(xit,taut,Rt,GRt,GTt) ; [rpst, ts1t, ts2t] = GeomSuelo(s1t,s2t,GSa1,GSf1,GS a2,GSf2); RT = RG2+A2*rprt-rpst; RT(4) = (cross(ts1t,ts2t)).'*(A2*txit); RT(5) = (cross(ts1t,ts2t)).'*(A2*ttaut); ResCon = [RD.' RT.'].'; CqCon = (jacobian(ResCon,p)); DCqCon = (jacobian(CqCon*dp,p)); %Restriciones de rodadura sin deslizamiento VG2 = H2*dp; VT = VG2+A2*cross(w2L,rprt); VG5 = H5*dp; VD = VG5+A5*cross(w5L,rprd); ResRod = [VT(1) VT(2) VD(1) VD(2)].'; %Sólo dos componentes pues la tercera se garantiza con el contacto B = (jacobian(ResRod,dp)); DB = (jacobian(B*dp,p)); %Generación de funciones relativas a las restriccio nes matlabFunction(ResCon, 'file' , 'ResHolon' ); matlabFunction(CqCon(:,[1:17,19,20]), 'file' , 'JacobianoHolon' ); matlabFunction(DCqCon(:,[1:17,19,20]), 'file' , 'DJacobianoHolon' ); matlabFunction(B(:,[1:17,19,20]), 'file' , 'MatrizB' ); matlabFunction(DB(:,[1:17,19,20]), 'file' , 'DMatrizB' ); %Se omite la coordenada del ciclista puesto que ser á fija o guiada

Page 72: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

60

Anexo E Códigos para la dinámica

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ECUACIONES DE NEWTON-EULER % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Matriz de masa %Masas MM(3*(1-1)+1:3*(1-1)+3,3*(1-1)+1:3*(1-1)+3) = m2*ey e(3); //[…] Se omite el resto, pues es análogo MM(3*(7-1)+1:3*(7-1)+3,3*(7-1)+1:3*(7-1)+3) = m8*ey e(3); %Inercias MM(3*7+3*(1-1)+1:3*7+3*(1-1)+3,3*7+3*(1-1)+1:3*7+3* (1-1)+3) = I2;

//[…] Análogo MM(3*7+3*(7-1)+1:3*7+3*(7-1)+3,3*7+3*(7-1)+1:3*7+3* (7-1)+3) = I8; %Término de fuerzas volumétricas a = w2L; b = I2*w2L; QQv(3*7+3*(1-1)+1,1) = -(a(2)* b(3)-a(3)*b(2)); QQv(3*7+3*(1-1)+2,1) = -(a(3)*b(1)-a(1)*b(3)); QQv( 3*7+3*(1-1)+3,1) = -(a(1)*b(2)-a(2)*b(1));

//[…] Análogo a = w8L; b = I8*w8L; QQv(3*7+3*(7-1)+1,1) = -(a(2)* b(3)-a(3)*b(2)); QQv(3*7+3*(7-1)+2,1) = -(a(3)*b(1)-a(1)*b(3)); QQv( 3*7+3*(7-1)+3,1) = -(a(1)*b(2)-a(2)*b(1)); %Término de fuerzas gravitatorias QQgrav(3*(1-1)+1:3*(1-1)+3,1) = [0 0 -m2*g].';

//[…] Análogo QQgrav(3*(7-1)+1:3*(7-1)+3,1) = [0 0 -m8*g].'; QQgrav(2*3*7) = 0; %Para completar el vector de ceros, ya que no hay p ar en el c.d.g. %%%%% MATRICES DE TRANSFORMACIÓN CINEMÁTICA %%%%% L = [H2.' H3.' H4.' H5.' H6.' H7.' H8.' G2.' G3.' G 4.' G5.' G6.' G7.' G8.'].'; l = [h2.' h3.' h4.' h5.' h6.' h7.' h8.' g2.' g3.' g 4.' g5.' g6.' g7.' g8.'].'; M = L.'*MM*L; Qv = L.'*(QQv-MM*l*dp); Qgrav = L.'*QQgrav; %%%%%%%%%%%%%%%%%%%%%%% % FUERZA AERODINÁMICA % %%%%%%%%%%%%%%%%%%%%%%% syms cv real ; VG3 = H3*dp; Qaero = (-cv*(VG3.'*VG3)^0.5)*H3.'*VG3;

Page 73: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

61

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % MATRIZ DE ACCIÓN DEL CICLISTA % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% S(:,1) = G4(3,:).'; %Manillar S(:,2) = G2(2,:).'; %Rueda trasera S(:,3) = G3(1,:).'; %Vuelco %%%%%%%%%%%%%%%%%%%%%% % FUERZAS SUSPENSIÓN % %%%%%%%%%%%%%%%%%%%%%% % Suspensión trasera (sólidos 3 y 7) us3=[usx3 0 usz3].'; us7=[usx7 0 usz7].'; rs3=RG3+A3*us3; rs7=RG7+A7*us7; rs37=rs3-rs7; l37=(rs37.'*rs37)^(1/2); dl37=jacobian(l37,p)*dp; U37=0.5*k37*(l37-l037)^2; F37=0.5*c37*dl37^2; Qsusp37=-jacobian(U37,p).'-jacobian(F37,dp).'; %Suspensión delantera (sólidos 4 y 8) us4=[usx4 0 usz4].'; us8=[usx8 0 usz8].'; rs4=RG4+A4*us4; rs8=RG8+A8*us8; rs48=rs4-rs8; l48=(rs48.'*rs48)^(1/2); dl48=jacobian(l48,p)*dp; U48=0.5*k48*(l48-l048)^2; F48=0.5*c48*dl48^2; Qsusp48=-jacobian(U48,p).'-jacobian(F48,dp).'; Qsusp=Qsusp37+Qsusp48; %Generación de funciones relativas a las ecuaciones dinámicas matlabFunction(M, 'file' , 'MatrizMasaBici' ); matlabFunction(Qv, 'file' , 'FuerzaQvBici' ); matlabFunction(Qgrav, 'file' , 'FuerzaQravBici' ); matlabFunction(Qaero, 'file' , 'FuerzaQaeroBici' ); matlabFunction(S, 'file' , 'MatrizAccionBici' ); matlabFunction(Qsusp, 'file' , 'FuerzaSuspension' );

Page 74: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

62

Anexo F Códigos de la función de derivadas

function yp = DerivadasBici(t,y) persistent qdep dqdep tantes Fotograma; global Param M_dir tau; nd = 5; %Número de coordenadas dinámicas (grados de liberta d) nk = 4; %Número de coordenadas cinemáticas (rodadura sin de slizamiento) n = 19; %Número total de coordenadas menos la del ciclista %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% ACCIONES DE CONTROL: M_ped, M_dir y eta %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Par en pedaleo y par en dirección (poner valores según algoritmo de control) M_ped = 0.0; M_dir = 0.0; % Suponemos nulo el ángulo del tronco del ciclista (se puede usar para control cambiando lo de abajo) eta = 0.0; deta = 0.0; ddeta = 0.0; tau = eta; %Coordenadas qdin = y(1:nd,1); %Vector de coordenadas dinámicas qkin = y(nd+1:nd+nk,1); %Vector de coordenadas cinemáticas dqdin = y(nd+nk+1:2*nd+nk,1); //[…] Asignación de valores %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% CALCULO POSICIÓN %%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Estimacion inicial if t == 0, rz = .94; psi3 = 0; xid = pi/2; taud = 0; s1d = 0.7; s2d = 0; xit = xid; taut = taud; s1t = -0.3; s2t = 0; %Para el instante inicial, valores cercanos a la co nfiguración inicial

Page 75: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

63

else rz = qdep(1) + dqdep(3)*(t-tantes); psi3 = qdep(2) + dqdep(5)*(t-tantes); xid = qdep(3) + dqdep(7)*(t-tantes); taud = qdep(4) + dqdep(8)*(t-tantes); s1d = qdep(5) + dqdep(9)*(t-tantes); s2d = qdep(6) + dqdep(10)*(t-tantes); xit = qdep(7) + dqdep(11)*(t-tantes); taut = qdep(8) + dqdep(12)*(t-tantes); s1t = qdep(9) + dqdep(13)*(t-tantes); s2t = qdep(10) + dqdep(14)*(t-tantes); %Para el resto de instantes, valores incrementados end %Guarda el tiempo para calcular el incremento de ti empo el paso siguiente tantes = t; %Estimación inicial para Newton-Raphson qdep0 = [rz psi3 xid taud s1d s2d xit taut s1t s2t] '; p([3 5 10:17]) = [rz psi3 xid taud s1d s2d xit taut s1t s2t]; %NewtonRaphson para resolver problema posición Err = 100; Errmin = 1; while ( Err>Errmin ) C = ResHolon(p); Cq = JacobianoHolon(p); Cqdep = Cq(:,[3 5 10:17]); %Correspondiente a las coordenadas dependientes qdep = qdep0-Cqdep\C; qdep0 = qdep; p([3 5 10:17]) = qdep; C = ResHolon(p); Err = max(abs(C)); end if tet3<0.95*pi/2 && tet3>-0.95*pi/2 %Condición de no vuelco %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% ANIMA LA BICI %%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (t==0) Fotograma = 5; end if (Fotograma < 5) Fotograma = Fotograma+1; else animaBici(t,p); Fotograma = 0; End

Page 76: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

64

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% CALCULO VELOCIDADES %%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Cq = JacobianoHolon(p); B = MatrizB(p); D = [Cq' B']'; Ddep = D(:,[1:5,9:17]); %Correspondiente a las coordenadas cinemáticas y dependientes Dind = D(:,[6:8,18:19]); %Correspondiente a las coordenadas dinámicas dqdep = Ddep\(-Dind*[dtet3 dpsi dgam dc1 dc2]') ; %Ojo, este vector dqdep incluye las coordenadas cin emáticas y las dependientes

//[…] Asignación de valores

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% CÁLCULO MATRIZ ACELERACIONES %%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DCq = DJacobianoHolon(p,dp); DB = DMatrizB(p,dp); E(1:nd,1:nd) = eye(nd); E(nd+1:n,1:nd) = -Ddep\Dind; DD = [DCq' DB']'; F(1:nd,1) = zeros(nd,1); F(nd+1:n,1) = -Ddep\(DD*dp([1:17,19,20],1)); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% CÁLCULO MATRIZ MASA Y FUERZAS %%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% M_tot = MatrizMasaBici(p); Qv_tot = FuerzaQvBici(p,dp); Qgrav_tot = FuerzaQravBici(p); Qaero_tot = FuerzaQaeroBici(p,dp); S_tot = MatrizAccionBici(p); Qext_tot = S_tot([1:17,19,20],:)*[M_dir M_ped 0 .0]'; %Suspensión Qsusp_tot = FuerzaSuspension(p,dp); %Se excluyen las fuerzas del giro del ciclista 'eta ' M = M_tot([1:17,19,20],[1:17,19,20]); Qv = Qv_tot([1:17,19,20],1); Qgrav = Qgrav_tot([1:17,19,20],1); Qaero = Qaero_tot([1:17,19,20],1); Qext = Qext_tot([1:19],1); Qeta = -M_tot([1:17,19,20],12)*ddeta; %Suspensión Qsusp = Qsusp_tot([1:17,19,20],1);

Page 77: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

65

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% REORDENA LAS ECUACIONES DEL MOVIMIENTO %%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% orden = [6:8 18 19 1:5 9:17]; %Reordena matrices y vectores for i=1:length(orden), Qgrav2(i,1) = Qgrav(orden(i)); Qaero2(i,1) = Qaero(orden(i)); Qv2(i,1) = Qv(orden(i)); Qext2(i,1) = Qext(orden(i)); Qeta2(i,1) = Qeta(orden(i)); %Suspensión Qsusp2(i,1) = Qsusp(orden(i)); for j=1:length(orden), M2(i,j) = M(orden(i),orden(j)); end end Mi = E'*M2*E; Qi = E'*(Qv2+Qgrav2+Qaero2+Qext2+Qeta2+Qsusp2- M2*F); yp(1:nd,1) = y(nd+nk+1:2*nd+nk,1); yp(nd+1:nd+nk,1) = [drx dry dphi3 deps]'; yp(nd+nk+1:2*nd+nk,1) = Mi\Qi; else yp = zeros(2*nd+nk,1); end

Page 78: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

66

Anexo G Códigos de la función principal y cálculo de posición estática

global Param Param = Parametros; V = Param(2); Rt = Param(3); %Valores iniciales de las coordenadas y sus derivad as qdin0 = [0 0 0 .9033 .2353]'; %Calculado por qest qkin0 = [0 0 0 0]'; dqdin0=[0 V/Rt 0 0 0]'; tspan=0:0.01:10; %SOLUCION MEDIANTE INTEGRACION NUMERICA if (1) [t,y] = ode45(@DerivadasBici,tspan, [qdin0' qki n0' dqdin0']'); qdin = y(:,1:nd); dkin = y(:,nd+1:nd+nk); dqdin = y(:,nd+nk+1:2*nd+nk); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %CÁLCULO DE POSICIÓN ESTÁTICA% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% global Param Param = Parametros; ppdin0=[0 0 0 .9 .23]'; %Punto de partida para iteración qestatica=fsolve(@eqest,ppdin0,optimset( 'MaxFunEvals' ,10000, 'MaxIter' ,1000)); function out = eqest(pp) qdep0=[0.95 0 1.885 0 0.95 0 1.5401 0 -0.04 0]'; p([3 5 10:17]) = qdep0; p([6:8 19:20]) = pp; p([1 2 4 9 18]) = [0 0 0 0 0]; nd=5; n=19; dp=0*p; Err = 100; Errmin = 0.01;

Page 79: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

67

while ( Err>Errmin ) C = ResHolon(p); Cq = JacobianoHolon(p); Cqdep = Cq(:,[3 5 10:17]); qdep = qdep0-Cqdep\C; qdep0 = qdep; p([3 5 10:17]) = qdep; C = ResHolon(p); Err = max(abs(C)); end Cq = JacobianoHolon(p); B = MatrizB(p); D = [Cq' B']'; Ddep = [D(:,1:5) D(:,9:17)]; Dind = [D(:,6:8) D(:,18:19)]; E(1:nd,1:nd) = eye(nd); E(nd+1:n,1:nd) = -Ddep\Dind; Qgrav_tot = FuerzaQravBici(p); Qsusp_tot = FuerzaSuspension(p,dp); Qgrav = Qgrav_tot([1:17,19,20],1); Qsusp = Qsusp_tot([1:17,19,20],1); orden = [6:8 18 19 1:5 9:17]; for i=1:length(orden), Qgrav2(i,1) = Qgrav(orden(i)); Qsusp2(i,1) = Qsusp(orden(i)); end Qi = E'*(Qgrav2+Qsusp2); out=Qi;

Page 80: Trabajo de Fin de Grado - Universidad de Sevillabibing.us.es/proyectos/abreproy/90054/fichero/Trabajo+de+Fin+de+Grado.pdfsimplificado de la bicicleta y se rediseña el programa con

68

Anexo H Códigos de los tipos de visualización

axis([rx-1.5 rx+1.5 ry-1 ry+1 rz-1 rz+0.6]); %Axonométrico sigue ciclista axis([-1 20 -1 20 -1 1]); %Axonométrico fijo % Axonométrico sigue ciclista desde atrás axis([rx-1.5 rx+1.5 ry-1 ry+1 rz-1 rz+0.6]); view(phi3*180/pi-90, 30) %Ángulos azimutal y de elevación de la cámara %Cónica sigue al ciclista camproj( 'perspective' ) %Vista cónica campos([-5+rx -5+ry 5]) %Posiciona la cámara camva(30) %Ángulo de visión de la cámara camtarget([rx ry rz]) %Apunta hacia el ciclista %Cónica apunta al ciclista camproj( 'perspective' ) campos([-5 -5 10]) camva(30) camtarget([rx ry rz]) %Cónica sigue al ciclista desde atrás camproj( 'perspective' ) campos([rx-3*cos(phi3) ry-3*sin(phi3+10*pi/180) rz+ 0.4]) camva(30) camtarget([rx ry rz])