Presentacion_Grupo03_MMx

Download Report

Transcript Presentacion_Grupo03_MMx

Trabajo de sistemas multicuerpo:
Vehículo con suspensiones
MacPherson y de cinco barras
Virginia Álvarez Sánchez
Alberto de la Peña Laguna
Aarón Paz Martínez
Miguel Peñalba
06471
09525
04293
M07076
1
Índice
 Práctica 4. Descripción, Problemas y Soluciones y
Ejecución
 Práctica 6. Descripción, Problemas y Soluciones y
Ejecución
 Práctica 7. Descripción, Problemas y Soluciones y
Ejecución
 Conclusiones
2
Práctica 4. Ejercicio 1
 Consiste en la simulación cinemática de la suspensión MacPherson(MP)
comparando los métodos de Newton-Raphson (NR) con Newton-Raphson
modificado(NR-mod).
 Dificultades de programación con la sentencia if al compararla con un tipo de
dato string, dado que if compara enteros. Nuestra solución ha sido asignar un
entero a cada valor del string y comparar con dicho entero en el if. Se habría
simplificado y mejorado la programación mediante la funcion isequal, que
permite comparar cadenas de caracteres.
 La comparación de tiempos y número de iteraciones entre NR y NR-mod es la
siguiente teniendo en cuenta que nuestro procesador es Intel Centrino a 2,2
GHz resulta: NR tiempo: 13.437 (605 iteraciones), Nrmod tiempo: 13.188 (834
iteraciones) Es decir, el método modificado ejecuta un mayor número de pasos,
pero al ser el trazado de paralelas más rápido que el cálculo de tangentes llega
al resultado final antes.
3
Práctica 4. Ejercicio 2 (1/2)
 Consiste en la construcción del modelo de una suspensión MacPherson
completa.
 Dada nuestra inexperiencia en este momento del trabajo, nuestra numeración
no era la apropiada, adoptando finalmente una numeración que desglosara
desplazamientos y simetrías, lo cual nos ha permitido detectar pequeños
errores con mayor facilidad. Por ejemplo, el punto 15 es el 4+np, y el vector 5 es
el 1+nv.
 En cuanto a la pregunta para nota de hacer rodar las ruedas en el mismo
sentido, llegamos a la conclusión ya en esta práctica de que hay que cambiar el
sentido del vector eje de la rueda, procediendo con éxito hasta ahora.
4
Práctica 4. Suspensión Delantera MP
5
Práctica 4. Ejercicio 3 (1/2)
 Se trata de simular dinámicamente una suspensión trasera de 5 puntos.
 Nuestra primera toma de contacto con los integradores no supuso grandes
problemas. La comparación de los tiempos de ejecución de los integradores
ode113 y ode45 con el procesador Intel Pentium Core Duo 1.86 GHz es:
 ode113 tiempo: 5.46 s
 ode45 tiempo: 10.125 s
 Al calcular la derivada del vector de estado cambiando el vector de estado a
integrar hemos tenido problemas conceptuales, aprendiendo las diferencias
entre coordenadas fijas y libres, y en las libres, entre dependientes e
independientes.
6
Práctica4. Suspensión Trasera
7
Práctica 4. Ejercicio 4 (1/4)
 Se trata de modelizar el chasis de un vehículo sobre una plataforma Stewart.
 La problemática de este ejercicio ha sido variada. Al importar los puntos de las
suspensiones delantera y trasera (haciendo también el simétrico de ésta) y
ponerlos consecutivos con el hexapod y entre ellos mismos hemos tenido que
ser ordenados y aun así hemos tenido pequeños errores. Ha habido que
desplazar también los vectores, las distancias y los ángulos en q.
 En cuanto al diseño de nuestro chasis hemos aprovechado puntos de ambas
suspensiones y hemos creado segmentos entre ellos, añadiendo un punto en el
centro, que es el único propio del chasis, y en el que definimos una base
vectorial, quedándonos una figura semejante a un caracol.
8
Práctica 4. Chasis sobre Hexapod
9
Práctica 4. Ejercicio 4 (3/4)
 El centro de nuestros problemas han sido las ecuaciones de restricción.
 Éstas las agrupamos en tres bloques: las que definen a la base como sólido
rígido (6), las que obligan al movimiento solidario del chasis y de la
plataforma (3) y las que fijan los segmentos y vectores del chasis a la
base().
 En este punto es en el que hemos comenzado a hacer un gran uso del
Debugger, realizando un proceso de depuración del programa, que ha sido
determinante para el perfeccionamiento de las ecuaciones de restricción.
Hemos continuado procediendo con el Debugger en todos los ejercicios
posteriores.
 Mediante la depuración identificamos qué restricciones no se cumplían y nos
dimos cuenta que la restricción 1005 que fija el segmento que une el punto
medio de la MP y el del chasis a la base era innecesaria, al formar parte dicho
segmento de la base vectorial definida anteriormente, la cual ya poseía una
restricción de tipo 1000 para el segmento en cuestión.
10
Práctica 4. Ejercicio 4 (4/4)
 En las ecuaciones de restricción referentes a las coordenadas relativas DIST y
ANGLES encontramos una dificultad conceptual con el valor ipos, el cual
aprendimos que hace referencia a las posiciones en q de las filas de dichas
matrices.
 Al fijar los segmentos del chasis encontramos un problema común a todas las
restricciones 1005,
el cual descubrimos empleando “breakpoints
condicionales” en la función formFiPU4.
 Base [rj-ri| um| un]
rk-rl= (rj-ri)*c1+um*c2+un*c3
 La ecuación que hemos empleado primero: [1005 i j k l m n 0 0 c1 c2 c3 ]
 La ecuación programada en formFiPU4:
[1005 i j l k m n 0 0 c1 c2 c3 ]
 Finalmente, el programa funcionó adecuadamente. Ejecutamos
11
Práctica 6 (1/4)
 En el primer Ejercicio, se trataba de montar el vehículo completo y comprobar
que tiene 15 grados de libertad.
 En esta práctica organizamos la información de las suspensiones y chasis en
ficheros “Geometrys”.
 Tuvimos pues que trasladar las
suspensiones a sus correspondientes
posiciones. Definimos las variables alejdel, alargdel y elevdel
 Suspensión delantera: izquierda (a, b, rw) y derecha(a, b, rw)
 Nos apoyamos en el punto 6 del centro de la rueda para trasladar todos
los puntos , excepto el 11 del centro de la barra de dirección. También lo
usamos de referencia, para situar el punto 7 a cota 0, pues es el extremo de
la rueda.
 Suspensión Trasera: izquierda (-a, b, rw) y derecha (-a,-b, rw)
 Nos apoyamos en el punto 11 del centro de la rueda para el traslado, y así el
punto 13 del extremo de la rueda estará a cota 0 como queremos
12
Práctica 6. Coche Completo (2/4)
13
Práctica 6 (3/4)
 Con la introducción de la estructura displ pasamos a una programación más
ordenada, y así parametrizamos nuestros “Geometrys” en función de
displ.P, displ.U, displ.DIST, displ.ANGLES. De esta manera la suspensión
trasera se coloca a continuación de la delantera.
 A la hora de definir los vectores de los ejes de las ruedas, concretamente de la
trasera, tuvimos serios problemas a la hora de duplicarlos:
En un principio cambiamos el signo de la componente “x” para que los
vectores tengan el mismo sentido, y así medir los ángulos igual en un lado y
en otro. En este punto, se violaban numerosas ecuaciones de restricción,
relacionadas con ángulos y los coeficientes independientes.
 Nuestro error fue considerar simetría axial en lugar de simetría
central. Cuestión que corregimos añadiendo a lo que teníamos la simetría
respecto a “z”, solucionando así las ecuaciones que fallaban.

14
Práctica 6 (4/4)
 En el segundo ejercicio se realiza la primera ejecución dinámica, con el objeto
de calcular la posición de equilibrio estática en el ejercicio 3, a partir de la cual
realizamos las simulaciones dinámicas
 Para la programación de la función carForces1.m tuvimos que consultar libros
de Teoría de Vehículos, para saber como actúan las fuerzas de
amortiguamiento.
Q=-k*v
 Como último problema con las ecuaciones de restricción, cabe mencionar que
gracias de nuevo al Debugger, descubrimos que la restricción de vector
unitario(1001) del vector U(1) de la MP estaba repetida en el chasis.
Faltando por tanto la restricción de vector unitario para el vector U(4). Además
el vector 4 forma parte de la base del chasis. Debido a esto, las ecuaciones de
restricción que fijan los segmentos del chasis a la base (1005) se corrigieron,
utilizando el vector U(4) en lugar del U(1).
 Finalmente, el programa funcionó adecuadamente. Ejecutamos
15
Histórico
16
Práctica 7 (1/5)
 El
programa
principal
que
controla
la
simulación
es
VehicleDinamicMain1.m. Se realizará en él la integración numérica de las
ecuaciones diferenciales del movimiento. Primeramente seleccionamos el
integrador ode113, por resultar menos exigente. No obstante, una vez verificado
el funcionamiento, utilizamos el Runge-Kutta4.
 Una parte importante de este trabajo es completar el fichero CarModel01.m,
llamando a cada uno de los ficheros que contiene los datos de cada uno de los
componentes del vehículo.
 Este fichero contiene también importantes comprobaciones que valoran los
tamaños y rangos de cada uno de los componentes con los que tendrían que
tener, así nos aseguramos del correcto ensamblado del vehículo y de sus
ecuaciones de restricción.
17
Práctica 7 (2/5)
 En VehicleDinamicMain1.m realizamos la integración numérica de las
ecuaciones diferenciales del movimiento. Primeramente seleccionamos el
integrador ode113, por resultar menos exigente. No obstante, una vez verificado
el funcionamiento, utilizamos el Runge-Kutta4.
 Hemos recurrido frecuentemente a la función CarModel01.m, pues esta
función contiene importantes comprobaciones que valoran los tamaños de q y
rangos de cada una de las jacobianas de las ecuaciones de restricción.
 Nuestra mayor problemática ha sido la programación de derivRindex3 porque
su dificultad conceptual nos ha hecho revisar la teoría en numerosas ocasiones.
 Realizamos muchas pruebas con el fin de aislar la fuente del problema. La
prueba definitiva es que con todos nuestros ficheros y con la función
derivRindex.p, la simulación funciona.
 Para las fuerzas en los amortiguadores la integración se aproximaba mediante
la regla Trapezoidal Compuesta y cambiamos la programación para que se
haga mediante la regla de Simpson Compuesta.
18
Ejecuciones
Dinámicas
Acelerando
Frenando
19
Vehículo girando y frenando
20
Balance de Energías
El balance energético no es
completamente
satisfactorio,
aunque es evidente que la solución
al error es restar las fuerzas no
conservativas,
que
son
precisamente las que alteran la
estabilidad de la energía mecánica.
De hacerlo se tendría que
conservar la energía total, cosa
que no conseguimos al no
ejecutarse
apropiadamente
el
programa.
21
Conclusiones
Nuestra conclusión personal del trabajo es satisfactoria, dada nuestra
escasa experiencia con Matlab antes de iniciar el curso.
Durante las semanas de trabajo hemos encontrado diversas dificultades,
de las que hemos salido haciendo usos de distintos comandos de Matlab
(Debugger, Help, workspace…) , así como de la teoría de clase y de las
tutorías.
Finalmente hemos decidido utilizar la herramienta Profiler, con la que
detectamos en qué función gasta más tiempo de ejecución Matlab.
Evidentemente, el tiempo total máximo empleado es el de
VehicleDynamicMain1.m. Sin embargo, con la opción “self time”
comprobamos que la mayor parte del tiempo de ejecución se emplea en
las funciones gráficas y en el derivRindex3, que son las funciones que
deberíamos intentar optimizar.
22
Total time
vs
Self time
23