Beruflich Dokumente
Kultur Dokumente
Herramienta de simulacin de la
dinmica de vehculos automviles
NDICE
NDICE
1
INTRODUCCIN 5
1.1
1.2
Sistema de direccin 7
1.3
Sistema de traccin 9
1.4
Sistema de suspensin 13
2.1
Fundamentos tericos 18
Interfaz grfica 27
DINMICA LONGITUDINAL38
3.1
Fundamentos tericos39
Interfaz grfica.53
NDICE
DINMICA VERTICAL. 75
4.1
Fundamentos tericos 76
Interfaz grfica 91
ANEXOS 99
5.1
5.2
5.3
5.4
BIBLIOGRAFA149
INTRODUCCIN
Captulo I: Introduccin.
INTRODUCCIN
1 INTRODUCCIN.
1.1 Objeto del proyecto.
El objeto del proyecto es desarrollar, en el entorno MATLAB, un software que
realice, partiendo de los parmetros bsicos del vehculo y de las caractersticas
de maniobra, la simulacin de cada una de las tres dinmicas del vehculo
automvil:
Dinmica lateral: comportamiento en curva.
Dinmica longitudinal: aceleracin y frenado.
Dinmica vertical: comportamiento de la suspensin del vehculo
INTRODUCCIN
INTRODUCCIN
INTRODUCCIN
INTRODUCCIN
10
INTRODUCCIN
Diferencial: elemento cuya misin es repartir el par entre las ruedas motrices,
consiguiendo que giren a distintas revoluciones cuando el vehculo se
dispone a trazar una trayectoria curva.
El diferencial ordinario presenta el inconveniente de que realiza un reparto
inadecuado del par entre las ruedas motrices, ya que en caso de que una de
las ruedas pierda el contacto con la carretera o tenga poca adherencia
(barro), transmite la totalidad del par motor a dicha rueda.
Para evitar este problema, se desarrollaron otros tipos de diferenciales,
como el diferencial Torsen, diferencial autoblocante formado por un tren de
engranajes planetarios con dentado helicoidal, o el diferencial Haldex.
Por ltimo, destacar que en los vehculos con traccin a las cuatro ruedas
son necesarios tres diferenciales: uno para el eje delantero, otro para el
trasero y un tercer diferencial central (reparte entre un eje y otro).
11
INTRODUCCIN
12
INTRODUCCIN
13
INTRODUCCIN
El principal inconveniente es que tiene los parmetros fijos (cte. del muelle y
cte. del amortiguador). Como ventaja destacar que no necesita aporte de
energa y, por lo tanto, desde el punto de vista econmico, ser ms barata.
Suspensiones activas: al igual que las anteriores, almacenan energa y la
disipan, pero adems tiene la particularidad de introducir energa en el
sistema.
A diferencia de las suspensiones pasivas, las activas, no son de parmetros
fijos. Esto se traduce en una importante ventaja: por medio de la alteracin
automtica de dichos parmetros varan las caractersticas de la suspensin
en funcin de las condiciones necesarias en cada instante, adaptando as el
sistema de suspensin al medio por el cual circula el vehculo.
El principal inconveniente de las suspensiones activas es que precisan de un
diseo ms complejo debido al aporte de energa, lo que conllevar un
incremento notable en el coste de fabricacin.
14
INTRODUCCIN
15
INTRODUCCIN
16
D.LATERAL
17
D.LATERAL
2 DINMICA LATERAL.
2.1 Fundamentos tericos.
2.1.1 Mecanismo de Ackermann.
El mecanismo de Ackermann se emplea en los automviles para que, al negociar
una curva, las ruedas del vehculo realicen un movimiento de rodadura puro.
El mecanismo consiste en una serie de barras, cuatro en total (de ah que se
conozca con el nombre de cuadriltero de Ackermann), que conectan los ejes de
las articulaciones de las ruedas directrices.
Est diseado de tal forma que las lneas rectas imaginarias, perpendiculares a
todas las ruedas del vehculo y que pasan por su centro, convergen en un nico
centro instantneo de rotacin (o), de forma que las ruedas del vehculo realizan
un movimiento de rodadura puro al negociar una curva.
18
D.LATERAL
Los ngulos que giran cada una de las ruedas directrices vienen dados por las
siguientes relaciones:
=
Ec. (2.1)
Ec. (2.2)
Una vez que se conocen los ngulos lo que interesa es relacionarlos para poder
disear el mecanismo correctamente:
19
Ec. (2.3)
D.LATERAL
Para relacionar el ngulo de deriva () con la fuerza lateral (Fy) se presentan las
siguientes relaciones:
=
Ec. (2.4)
Ec. (2.5)
20
D.LATERAL
una serie de parmetros como son las fuerzas de aceleracin y frenado, la carga,
caractersticas del neumtico,,etc..
Se muestra ahora la relacin entre la fuerza lateral y el ngulo de deriva de forma
grfica:
Por ltimo, y para terminar con este apartado, hay que destacar el movimiento del
centro instantneo de rotacin hacia delante por efecto de la deriva de los
neumticos.
21
D.LATERAL
Una vez introducidas las caractersticas del modelo, se estudiar con detalle el
comportamiento en curva del vehculo. Para ello se va a dedicar un apartado
especfico en este captulo, el apartado siguiente.
22
D.LATERAL
Ec. (2.6)
=
=
Ec. (2.7)
Ec. (2.8)
23
Ec. (2.9)
Ec. (2.10)
D.LATERAL
En el apartado 2.1.2 se vio como se relacionan las fuerza laterales con el ngulo
de deriva a travs del parmetro conocido como rigidez a deriva: Ec. (2.4) y Ec.
(2.5)
Trabajando con todas las ecuaciones anteriores se obtiene la ecuacin final del
problema:
= +
donde el trmino
Ec. (2.11)
Ec. (2.12)
En funcin del valor que toma el coeficiente de subvirador, se desarrollan tres tipos
de comportamiento en el vehculo:
Subvirador (U>0):
En este caso el ngulo de deriva de los neumticos delanteros es superior al
de los traseros. Si se aumenta la velocidad, el vehculo tender a salirse de
la carretera por la tangente de la curva que est negociando y ser
necesario aumentar el ngulo de giro para que esto no suceda.
Sobrevirador (U<0):
Ahora, al contrario que en el vehculo subvirador, el ngulo de deriva de los
neumticos delanteros es inferior al de los traseros. Si se aumenta la
velocidad, el vehculo tender a salirse de la carretera por el interior de la
24
D.LATERAL
Ec. (2.13)
25
Ec. (2.14)
D.LATERAL
Para terminar el estudio del comportamiento en curva, se realiza una grfica que
representa el ngulo de giro necesario en funcin de la velocidad, para cada uno
de los tipos de vehculo:
26
D.LATERAL
27
D.LATERAL
Datos de entrada
Parmetros de salida
28
D.LATERAL
Una vez cargada la pantalla, se dispone de cuatro botones: uno para cada una de
las tres dinmicas del automvil y un cuarto botn para salir del programa. Al hacer
clic sobre el botn de dinmica lateral y se abrir una nueva ventana dedicada a la
simulacin de dicha dinmica:
29
D.LATERAL
Para comenzar los clculos se introducirn los datos de entrada que pide el
programa y que han sido detallados en apartados anteriores. Para desplazarse de
una casilla a otra de los datos de entrada se puede emplear el tabulador del
teclado.
Hay que prestar especial cuidado a la hora de introducir estos datos, ya que slo
pueden introducirse caracteres numricos y, si por fallo de la persona encargada
de esta funcin se introdujese alguna letra o carcter especial (menos el separador
decimal que es el punto), saltar un mensaje de error y se borrar
automticamente la casilla sobre la que trabajbamos. Se detalla lo explicado en
una imagen con ms detalle:
Fig. (2.16): Interfaz grfica: dinmica lateral, error por carcter no numrico.
30
D.LATERAL
Fig. (2.17): Interfaz grfica: dinmica lateral, error por valor de la batalla.
As pues, una vez introducido los datos se est en condiciones de poder realizar
los clculos. Para ello se pulsa el botn CALCULAR situado en la parte inferior
central de la pantalla.
Al presionar dicho botn el programa realiza las siguientes acciones:
Lectura y almacenamiento de cada uno de los parmetros de entrada.
Clculos numricos directos asociados a los datos de entrada:
=
9.81
9.81
=
=
1000/3600
+
Una vez realizado los clculos (U, , ), se muestran por pantalla los
parmetros de salida en sus casillas correspondientes.
31
D.LATERAL
Fig. (2.18): Interfaz grfica: dinmica lateral, imgenes mostradas en funcin del coeficiente
de subvirador.
32
D.LATERAL
Fig. (2.19): Interfaz grfica: dinmica lateral, distintas grficas en funcin del coeficiente de
subvirador.
Una vez realizados los clculos se puede cambiar algn dato de entrada
pinchando con el ratn sobre l y, despus de borrar lo anteriormente introducido,
escribir el nuevo valor. Si se vuelve a pulsar CALCULAR, se repetirn los
clculos con el/los nuevo/s dato/s y se obtendr/n el/los nuevo/s resultado/s.
Si por el contrario se desea cambiar casi la totalidad de los datos introducidos, o
empezar de nuevo por algn error a la hora de escribirlos, no es necesario salir del
programa y volver a empezar, o ir uno a uno reescribiendo los datos de entrada, ya
que disponemos del botn RESET que limpia en la pantalla tanto los datos de
entrada, como parmetros e imgenes y grficos de salida.
Para finalizar y salir del programa, adems del sistema normal utilizado en
cualquier programa de Windows (hacer clic sobre el aspa de la esquina superior
derecha), se dispone del botn SALIR que cerrar la ventana.
33
D.LATERAL
- APARTADO A:
Introduciendo los datos de entrada en el programa se obtiene la siguiente pantalla:
34
D.LATERAL
35
D.LATERAL
- APARTADO B:
36
D.LATERAL
- APARTADO C:
Para finalizar con el ejemplo se introducen los nuevos datos y se comprobar si es
cierto que el vehculo ser o no virador neutro:
37
D.LONGITUDINAL
38
D.LONGITUDINAL
3 DINMICA LONGITUDINAL.
3.1 Fundamentos tericos.
3.1.1 Curva de par. Curva de potencia.
La curva de par es la representacin del par motor del vehculo en funcin de la
velocidad de rotacin del motor. Igualmente la curva de potencia representa la
potencia desarrollada segn el rgimen de velocidades de rotacin.
La potencia en cada momento es igual al par multiplicado por la velocidad angular
a la que gira el motor (P=T*w). As pues, conociendo la curva de par de un
vehculo se conocer la de potencia o viceversa.
En cuanto a las curvas de potencia y par ideales para un vehculo, lo deseado
sera que la potencia fuera constante para cualquier velocidad y que el par tuviera
valores elevados a pequeas velocidades y valores bajos a grandes velocidades,
de forma que toda la potencia se empleara para subir elevadas pendientes a baja
velocidad o para vencer las fuerzas de rozamiento y aerodinmica a alta velocidad.
39
D.LONGITUDINAL
2
4
= .
= .
40
Ec. (3.1)
D.LONGITUDINAL
= =
2
4
Ec. (3.2)
Como el motor de los vehculos suele ser de cuatro tiempos habr una carrera
efectiva del pistn cada dos vueltas, a diferencia del de dos tiempos que slo
presentan una. Entonces se define un factor (f) que introduzca en la expresin
anterior las carreras efectivas por vuelta del pistn. En este caso f=1/2.
= =
2
4
Ec. (3.3)
2
4
Ec. (3.4)
2
4
Ec. (3.5)
2
4
Ec. (3.6)
Ec. (3.7)
Ec. (3.8)
= .
= .
Nota: todas las formulas anteriores se utilizaran con unidades del S.I.
Otro factor a tener en cuenta es que hay que limitar la velocidad lineal media de los
pistones para que no se produzca un desgaste excesivo de las camisas y de los
segmentos. Suele emplearse unos valores entre 5 m/s y 12 m/s.
41
D.LONGITUDINAL
Entonces, se llega a la siguiente situacin: por una parte se buscan motores que
tenga una curva de potencia ms o menos constante (lineal) y por otra parte se
emplean MCI que no cumplen estas caractersticas. As pues, cmo puede
corregirse dicha situacin?
Para resolver este problema entran en juego las transmisiones con velocidad
variable, es decir, las distintas relaciones de transmisin del vehculo, tema que
ser objeto de estudio en el apartado 3.1.3 de este captulo.
Si en el MCI se despreciaran los efectos dinmicos de llenado del cilindro y las
distorsiones de carburacin tendramos una curva de par constante.
42
D.LONGITUDINAL
Fuerzas tractoras
1
2
=
= .
= .
= .
43
Ec. (3.9)
D.LONGITUDINAL
Ec. (3.10)
= .
= .
= .
= .
Ec. (3.11)
= .
= .
= .
Ec. (3.12)
= .
Ec. (3.13)
= .
= .
= .
= .
44
Ec. (3.14)
D.LONGITUDINAL
= .
= .
= .
+ + + = =
Ec. (3.15)
Ec. (3.16)
= =
Ec. (3.17)
= .
= .
= .
= .
= = + + + = + + + 3
2
Ec. (3.18)
= + 3
2
Ec. (3.19)
45
Ec. (3.20)
D.LONGITUDINAL
Ec. (3.21)
Ec. (3.22)
= +
2
= =
Ec. (3.23)
Ec. (3.24)
Ec. (3.25)
Ec. (3.26)
46
Ec. (3.27)
D.LONGITUDINAL
Ec. (3.28)
1 =
1 =
( +)
( + )
Ec. (3.29)
Ec. (3.30)
Ec. (3.31)
Ec. (3.32)
A partir del par disponible, se puede evaluar el esfuerzo tractor mximo que
permite acelerar el vehculo siempre que no se supere la adherencia entre el
neumtico y la superficie de rodadura.
=
Ec. (3.33)
47
D.LONGITUDINAL
= 1 +
I 2
1.04 + 0.0025 2
Ec. (3.34)
RELACIONES DE TRANSMISIN
ALTAS
BAJAS
PRIMERA
SEGUNDA
TURISMO GRANDE
1.09
1.3
1.14
TURISMO PEQUEO
1.11
2.4
1.5
1.20
Ec. (3.35)
()
1,2 =
2
1 ()
Ec. (3.36)
()
1,2 =
2
1 ()
Ec. (3.37)
Una vez estudiadas las prestaciones que se obtienen con las relaciones de
transmisin vamos a ver cmo calcular el resto de relaciones de un vehculo.
Uno de los criterios ms empleados es partir del rango de velocidades en el cual
va a trabajar el motor (hay que tener en cuenta que dentro de dicho rango de
velocidades deben encontrarse el par motor y la potencia motriz mximas).
Como criterio de diseo hay que suponer que la velocidad de las ruedas al final de
la marcha i-1 debe coincidir con la velocidad de las ruedas al inicio de la marcha
i. Si no se cumpliera esta condicin de diseo, el coche tendra un cambio brusco
de velocidad al cambiar de una marcha a otra. Desarrollando lo expuesto:
2,(1)
= 1,
1
1
2 =
48
Ec. (3.38)
D.LONGITUDINAL
Ec. (3.39)
Ahora se representa en una grfica como varan las velocidades segn las
relaciones de transmisin:
49
D.LONGITUDINAL
Para conocer si un vehculo puede o no remontar una pendiente hay que comparar
la fuerza de traccin que posee ste con la fuerza de rozamiento entre los
neumticos y la superficie de rodadura. As se tiene que:
Si la fuerza de traccin es mayor que la fuerza de rozamiento disponible
las ruedas motrices del vehculo patinaran y no ser capaz de remontar la
pendiente.
> =
Ec. (3.40)
Ec. (3.41)
Ec. (3.42)
Si v=0 y w0
s=0
s=1
libre.
patina.
50
D.LONGITUDINAL
Traccin delantera:
=
=
Ec. (3.43)
= 0
( + + ) + = 0
= ( + + ) +
Ec. (3.44)
Ec. (3.45)
= = + + + + + =
= ( ) +
Ec. (3.47)
= = (
) +
Ec. (3.46)
( +)
Ec. (3.48)
Traccin trasera:
= ( ) +
51
Ec. (3.49)
D.LONGITUDINAL
( )
Ec. (3.50)
4
=
52
Ec. (3.48)
D.LONGITUDINAL
53
D.LONGITUDINAL
Parmetros y coeficientes:
o Pendiente: pendiente que va a remontar el vehculo en %. La
pendiente ser la calculada como metros verticales que ha subido el
vehculo por cada 100 metros de rampa. Por ejemplo, una pendiente
del 30 % ser:
100
54
30
D.LONGITUDINAL
o Densidad del aire (kg/m3): densidad del aire. Aunque su valor depende
de la presin y de la temperatura se suele emplear 1.22 kg/m 3.
o Coeficiente de resistencia aerodinmica (Cx): expresa la resistencia
que posee el vehculo al circular en contacto con el aire por razn de
su forma. En los turismos suele tener un valor que est entre 0.25 y
0.40, aunque en algunos turismos experimentales o prototipos baja de
0.20. Este dato es necesario para calcular la fuerza de resistencia
aerodinmica.
o Coeficiente de resistencia a la rodadura (): su valor oscila,
dependiendo de la naturaleza del vehculo, entre 0.009 y 0.014 para
turismos y entre 0.03 y 0.05 para vehculos industriales. Es necesario
para calcular la fuerza de resistencia a la rodadura.
o Coeficiente de adherencia (): mide la oposicin que presentan las
superficies de contacto entre dos cuerpos al deslizar uno sobre otro.
Dicho coeficiente es caracterstico de cada par de materiales y no de
uno en s. Depende de diversos factores como temperatura, velocidad
relativa entre superficies, acabado de las superficies,, etc. Los
valores caractersticos del coeficiente para la interfase neumtico
carretera sern:
55
D.LONGITUDINAL
o
56
D.LONGITUDINAL
57
D.LONGITUDINAL
Datos de entrada
Parmetros de salida
58
D.LONGITUDINAL
Al hacer clic sobre el botn de dinmica longitudinal se abrir una nueva ventana
dedicada a la simulacin de dicha dinmica:
59
D.LONGITUDINAL
Fig. (3.16): Interfaz grfica: dinmica longitudinal, error por carcter no numrico.
Adems del mensaje de error anterior, si los valores de la distribucin de los pesos
delantero y trasero no suman el 100 %, aparecer una nueva ventana con mensaje
de error indicando que la suma de los porcentajes de peso que recaen sobre los
ejes debe suponer un 100 %.
Fig. (3.17): Interfaz grfica: dinmica longitudinal, error por valor de la distribucin de pesos.
Fig. (3.18): Interfaz grfica: dinmica longitudinal, error por % superior a 100%.
60
D.LONGITUDINAL
Por ltimo hay tener presente que los coeficientes de adherencia, rodadura y
resistencia aerodinmica deben tener valor inferior a la unidad. Si esto no sucede
se mostrar un nuevo mensaje de error advirtiendo de los fallos.
Fig. (3.19): Interfaz grfica: dinmica longitudinal, error por valor de coeficientes superior a la
unidad.
Despus de introducir todos los datos de entrada por pantalla y de subsanar los
posibles errores en ellos, se puede comenzar a realizar los clculos.
El primer paso es presionar el botn CURVA DE POTENCIA. Con ello se carga
este dato y se realiza su representacin, obteniendo adems los valores de
potencia mxima y velocidad angular a la que tiene lugar.
El procedimiento empleado en la programacin para representar la curva es el
siguiente:
Cargar el array de datos global curvapar
Definir el eje x primera columna del array
Definir el eje y segunda columna del array multiplicada por la primera
(porque los datos son de par, y al multiplicar el par por la velocidad angular
obtenemos la potencia)
Dibujar la grfica se emplea el comando polyfit con un grado de regresin
de tres para obtener la funcin, y con el comando polyval se obtiene la curva
para realizar la representacin grfica.
Para calcular el valor mximo de la potencia y la velocidad angular de rotacin del
motor en esas condiciones se aplica el comando max() a la curva representada.
En la figura siguiente se ve detalladamente con una captura del programa cmo se
muestra la curva y los parmetros asociados a ella:
61
D.LONGITUDINAL
Fig. (3.20): Interfaz grfica: dinmica longitudinal, curva de potencia y lectura del valor mximo.
A continuacin hay que repetir el proceso para la curva de par pinchando sobre el
botn destinado a tal fin (CURVA DE PAR).
Al igual que para la curva de potencia, se obtienen los valores de par mximo de
la velocidad angular de rotacin del motor a la que se da esta situacin.
Para construir la grfica se vuelve a emplear el comando polyfit con regresin de
grado tres y polyval y plot para mostrarla. A diferencia de la curva de potencia no
hay que realizar ninguna operacin, ya que el array es la curva de par y la
representacin ser directa de la primera y la segunda columna.
Nuevamente se muestra una imagen para aclarar la situacin:
62
D.LONGITUDINAL
Fig. (3.21): Interfaz grfica: dinmica longitudinal, curva de par y lectura de valores mximos.
Ahora ya se puede decir que estn completados los datos de entrada (los
introducidos por pantalla y el array curvapar cargado para la curva de potencia y la
curva de par) y en condiciones para poder comenzar la simulacin en s. Para ello
se presiona el botn CALCULAR RELACIONES DE TRANSMISIN Y
PRESTACIONES.
Al pulsar el botn se realizan los siguientes clculos:
Velocidad mxima en km/h:
Para calcular la velocidad mxima del vehculo se supone, como ya se
mencion con anterioridad, potencia mxima y pendiente nula. As pues lo
que realiza el programa es resolver la siguiente ecuacin con el comando
solve():
63
D.LONGITUDINAL
1
= 9.81 + 3
2
Como resultado se obtienen tres valores, de los cuales se selecciona el valor
real de mayor magnitud. Para ello, primeramente, hay que comprobar si
cada uno de los resultados son nmeros reales o imaginarios. Esto se
consigue con el comando isreal(). Si la solucin es imaginaria cambiar su
valor por cero y lo almacenar en un vector (1x3). Si por el contrario es real,
almacenar directamente el valor en el vector. Por ltimo, se calcula el
mximo del vector donde se han almacenado los valores y as se obtiene la
solucin del apartado.
Pendiente mxima que remonta el vehculo en %:
El criterio empleado para calcular la pendiente mxima a remontar es la
perdida de adherencia de los neumticos.
<
( + )
+
( )
64
D.LONGITUDINAL
1
( + + 2 )
65
D.LONGITUDINAL
Relaciones de transmisin:
Para comenzar, se calcula la relacin ms larga como la relacin que se da
a velocidad mxima del vehculo y a la mxima potencia del motor:
5 =
( + )
1
51
4 = 5
3 = 4 = 2 5
2 = 3 = 3 5
1 = 2 = 4 5
66
D.LONGITUDINAL
1
3
2
= 0 250
Fig. (3.23): Interfaz grfica: dinmica longitudinal, diagrama de potencias y curva de carga.
Diagrama de traccin:
Para representar el diagrama de traccin hay que obtener la fuerza de
traccin del vehculo en funcin de la velocidad. Los clculos realizados son:
= = = = =
67
D.LONGITUDINAL
68
D.LONGITUDINAL
69
D.LONGITUDINAL
Fig. (3.25): Interfaz grfica: dinmica longitudinal, datos ejemplo con traccin delantera.
Fig. (3.26): Interfaz grfica: dinmica longitudinal, resultados ejemplo con traccin delantera.
70
D.LONGITUDINAL
Fig. (3.27): Interfaz grfica: dinmica longitudinal, resultados ejemplo con traccin delantera.
71
D.LONGITUDINAL
Fig. (3.28): Interfaz grfica: dinmica longitudinal, resultados ejemplo con traccin trasera.
Como resultado de inters, resaltar que con traccin trasera aumenta dbilmente el
% de pendiente mxima a remontar por el vehculo. Adems, tambin se produce
un ligero aumento de las aceleraciones mximas.
Fig. (3.29): Interfaz grfica: dinmica longitudinal, resultados ejemplo con traccin trasera.
72
D.LONGITUDINAL
Fig. (3.30): Interfaz grfica: dinmica longitudinal, resultados ejemplo con traccin total.
73
D.LONGITUDINAL
Fig. (3.31): Interfaz grfica: dinmica longitudinal, resultados ejemplo con traccin total.
74
D.VERTICAL
75
D.VERTICAL
4 DINMICA VERTICAL.
4.1 Fundamentos tericos.
4.1.1 Elementos elsticos.
Los elementos elsticos de una suspensin son los encargados de almacenar la
energa elstica destinada a acelerar la masa suspendida.
A continuacin se estudiarn de forma independiente cada uno de los principales
tipos de elementos elsticos:
Muelles helicoidales:
Estn formados por una barra de acero, circular o elptica, enrollada en
forma de espiral. Es sin duda el tipo de elemento elstico ms utilizado en la
actualidad en los automviles.
4
8 3
76
Ec. (4.1)
D.VERTICAL
=
=
=
=
Barras estabilizadoras:
Limitan el movimiento de balanceo del vehculo sin comprometer la rigidez
vertical de la suspensin.
Sobre las barras actan solicitaciones cuando el eje tome un bache que
afecte a las dos ruedas. No obstante, cuando el cuerpo del vehculo gira
respecto del eje longitudinal, la barra sufre una torsin que se opone al
movimiento a ese movimiento, es decir, incrementa su rigidez de vuelco.
Destacar que es posible emplear a la vez las barras estabilizadoras y los
muelles helicoidales, tal y como se observa en la siguiente imagen:
=
=
=
=
77
Ec. (4.2)
D.VERTICAL
Ballestas:
Tipo de resorte compuesto por lminas de acero, superpuestas, de longitud
decreciente, unidas por unas abrazaderas que permiten el deslizamiento
entre las hojas o lminas cuando stas se deforman por el peso del vehculo.
48
Ec. (4.3)
= .
= .
= .
48
3
Ec. (4.4)
78
( )3
Ec. (4.5)
D.VERTICAL
Balonas neumticas:
Almacenan la energa comprimiendo un gas (generalmente aire) en una
cmara de volumen variable, construida con un material plstico muy
resistente y flexible.
Este tipo de elementos elsticos basan su funcionamiento en las
propiedades que ofrece el aire sometido a presin. En las suspensiones
neumticas, se sustituye el resorte mecnico (muelle, ballesta o barra de
torsin) por una balona neumtica.
79
D.VERTICAL
Ec. (4.6)
=
=
= .
Ec. (4.7)
0 =
0 =
=
=
2 0 0
0 +1
Ec. (4.8)
01
Ec. (4.9)
Esta caracterstica hace que este tipo de elementos elsticos sean muy
atractivos para vehculos en los cuales hay una gran variacin entre las
situaciones de carga y de vaco, tales como camiones.
Bloques de elastmero:
Piezas de material plstico que almacenan energa y trabajan a cortante.
Suelen tener una armadura o soporte metlico.
80
D.VERTICAL
Ec. (4.10)
=
=
=
81
D.VERTICAL
82
D.VERTICAL
83
D.VERTICAL
Una de las expresiones utilizadas para ajustar los datos experimentales es:
=
1
0
2
0
, <
,
Ec. (4.11)
84
1+ /
2
Ec. (4.12)
D.VERTICAL
Ec. (4.13)
1
v
Ec.(4.14)
RUEDA:
Algunos desequilibrios que se producen en la rueda (llanta y neumtico) dan
lugar a vibraciones. Estos desequilibrios pueden provenir de diferentes
causas como:
o Desequilibrio de masa:
Cuando el desequilibrio se produce en las ruedas delanteras del vehculo
(en las directrices), las vibraciones se transmiten directamente al
conductor a travs del sistema de direccin, incrementando su nivel de
exposicin y resultando muy incmoda la conduccin. Esto se soluciona
con el equilibrado de las ruedas, que consiste en distribuir las masas de
forma que se elimine el momento alrededor del eje transversal y en
trasladar en c.d.g. de la rueda al eje de giro. Se consigue colocando una
masa en el lugar adecuado de la llanta.
85
D.VERTICAL
o Imperfecciones geomtricas:
Las imperfecciones geomtricas se dan en los neumticos como
consecuencia del proceso de fabricacin. Los neumticos imperfectos
hacen variar la altura del eje de la rueda respecto del suelo, por lo que
representa una solicitacin vertical. Adems la distancia recorrida
depender de esta deformacin, generndose una aceleracin
longitudinal en el eje que da lugar a esa variacin de velocidad. Todo esto
conlleva a que las imperfecciones geomtricas del neumtico afectan
tanto vertical como longitudinalmente.
o Variaciones radiales de rigidez:
El eje presentar variaciones de altura para la misma carga. La vibracin
es muy similar a la que producen los neumticos con imperfecciones.
Todo esto se traduce en fuerzas y momentos en direcciones vertical,
longitudinal y transversal.
MOTOR:
Las vibraciones en el motor se deben, mayormente, a la variacin del par
debido al nmero finito de cilindros del motor.
Para impedir que estas vibraciones se transfieran al resto del vehculo es
necesario realizar uniones elsticas entre el motor y el chasis del vehculo.
Dichas uniones permitirn el giro en torno al eje del par, o mejor, alrededor
del eje principal de menor inercia (suele estar inclinado respecto del par
debido a la masa de la transmisin). Destacar que si el momento de inercia
alrededor de un eje es muy grande, la variacin del momento segn dicho
86
D.VERTICAL
eje no va a ser capaz de hacerlo vibrar. Esta componente del momento tiene
menor importancia que la aplicada segn el eje de menor inercia.
Las uniones tienen que ser tan flexibles que den lugar a una frecuencia
natural inferior a la menor frecuencia de giro del motor. As las vibraciones
del motor sern absorbidas por las uniones elsticas antes de excitar al
vehculo en s. Adems, si la frecuencia natural vertical es del orden de la
correspondiente a la masa no suspendida, el motor absorber vibraciones de
la carretera.
La transmisin producir vibraciones cuando, en una junta de unin, el par
cambie de direccin. Esto se traduce en un par transmitido directamente a la
unin elstica. Cuando vara el ngulo en la junta por el movimiento vertical
del vehculo, tambin lo har el momento transmitido, siendo dicha
variabilidad una fuente de vibraciones. En el caso de vehculos pesados, las
variaciones de ngulo pueden estar ms acentuadas.
87
D.VERTICAL
88
D.VERTICAL
++ =+
Ec. (4.15)
=
=
Ec. (4.16)
Ec. (4.17)
Ec. (4.18)
89
D.VERTICAL
Ec. (4.19)
=
=
=
1+4 2 2
(1 2 )2 +4 2 2
Ec. (4.20)
90
D.VERTICAL
91
D.VERTICAL
Grficos:
Habr dos grficas de salida, una reproduccin del movimiento que realizar
el vehculo despus de actuar la suspensin y una representacin de la
funcin de transferencia en funcin de la relacin de frecuencias.
Se observa detalladamente a continuacin una captura de la pantalla inicial del
programa para la dinmica vertical:
Datos de entrada
Parmetros de salida
92
D.VERTICAL
93
D.VERTICAL
desplazarse de una casilla a otra de los datos de entrada con el tabulador del
teclado.
Nuevamente, los datos de entrada de la interfaz son valores numricos,
(exceptuando el men desplegable para elegir el tipo perfil de la carretera) por lo
que, al igual que en la dinmica lateral y en la longitudinal, si se introduce un
carcter no numrico en uno de los recuadros de toma de datos, saltar un
mensaje de error y se eliminar el valor errneo introducido.
Fig. (4.19): Interfaz grfica: dinmica vertical, error por carcter no numrico.
Una vez introducidos los datos, se pueden realizar los clculos. Para ello se
pulsar el botn CALCULAR y el programa realizar las siguientes operaciones
para obtener los resultados numricos y las representaciones grficas:
=
=
94
D.VERTICAL
Una vez calculados los tres parmetros numricos de salida, se construirn las
grficas.
Funcin de transferencia:
Calculada anteriormente la relacin de frecuencias, se calcula la funcin de
transferencia como:
X
=
Y
1 + 4 2 2
(1 2 )2 + 4 2 2
95
D.VERTICAL
case 2
end
Para hacer la representacin grfica, tanto de la entrada como de la salida,
se vuelve a implementar el comando plot().
Finalmente resaltar que se dispone, como en la interfaz de dinmica lateral y de
longitudinal, de los botones RESET y SALIR cuyas funciones se conocen ya
sobradamente.
96
D.VERTICAL
- APARTADO A:
97
D.VERTICAL
- APARTADO B:
98
ANEXOS
Captulo V: Anexos.
99
ANEXOS
5 ANEXOS.
5.1 Dinmica de vehculos: Cdigo del programa.
function varargout = SIMULACION(varargin)
%SIMULACION M-file for SIMULACION.fig
% SIMULACION, by itself, creates a new SIMULACION or raises the existing
% singleton*.
%
% H = SIMULACION returns the handle to a new SIMULACION or the handle to
% the existing singleton*.
%
% SIMULACION('Property','Value',...) creates a new SIMULACION using the
% given property value pairs. Unrecognized properties are passed via
% varargin to SIMULACION_OpeningFcn. This calling syntax produces a
% warning when there is an existing singleton*.
%
% SIMULACION('CALLBACK') and SIMULACION('CALLBACK',hObject,...) call the
% local function named CALLBACK in SIMULACION.M with the given input
% arguments.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help SIMULACION
% Last Modified by GUIDE v2.5 15-Oct-2010 18:00:03
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @SIMULACION_OpeningFcn, ...
'gui_OutputFcn', @SIMULACION_OutputFcn, ...
'gui_LayoutFcn', [], ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
100
ANEXOS
% --- Outputs from this function are returned to the command line.
function varargout = SIMULACION_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
101
ANEXOS
102
ANEXOS
103
ANEXOS
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Outputs from this function are returned to the command line.
function varargout = DL_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
104
ANEXOS
105
ANEXOS
axes(handles.axes2);
imshow(axe);
set(handles.VCtext,'string',' ');
set(handles.VC,'string',' ');
end
%____Dibujar la grafica____%
axes(handles.axes1);
N=str2num(get(handles.V,'string'));
x=0:10:N+20;
y=((l/r)+u*(x*1000/3600).^2/(9.81*r))*desmul;
plot(x,y,'r','LineWidth',2);
grid on;
106
ANEXOS
axe=imread(strcat(pwd,'\coche.jpg'));
axes(handles.axes2);
imshow(axe);
set(handles.VCtext,'string',' ');
set(handles.VC,'string',' ');
axes(handles.axes1);
X=0:180;
Y=1;
plot(X,Y,'w');
% hObject handle to RESET (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
107
ANEXOS
end
108
ANEXOS
if isnan(entrada)
errordlg('SOLO PUEDE INTRODUCIR VALORES NUMERICOS','ERROR','modal');
set(hObject,'String',' ');
end
if
str2double(get(handles.L,'string'))~=str2double(get(handles.A,'string'))+str2double(get(handles.B,'str
ing'))
errordlg('El valor de la batalla debe ser: L=a+b ','ERROR','modal');
set(hObject,'String',' ');
set(handles.L,'String',' ');
set(handles.A,'String',' ');
end
109
ANEXOS
110
ANEXOS
111
ANEXOS
112
ANEXOS
113
ANEXOS
114
ANEXOS
115
ANEXOS
% --- Outputs from this function are returned to the command line.
function varargout = DLg_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
116
ANEXOS
%____Botn RESET____%
global curvapar
x=curvapar(:,1);
q=(curvapar(:,2).*x);
y=((2*pi)/60)*q;
[P,S]=polyfit(x,y,3);
max_x=max(x);
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'w');
grid off;
set(handles.M,'String','');
set(handles.AF,'String','');
set(handles.PD,'String','');
set(handles.PT,'String','');
set(handles.L,'String','');
set(handles.H,'String','');
set(handles.D,'String','');
set(handles.RDI,'String','');
set(handles.PEND,'String','');
set(handles.DA,'String','');
set(handles.CRA,'String','');
set(handles.CRR,'String','');
set(handles.CAD,'String','');
set(handles.VMAX,'String','');
set(handles.PMX,'String','');
set(handles.POTMAX,'String','');
set(handles.WMP,'String','');
set(handles.TMAX,'String','');
set(handles.WMT,'String','');
set(handles.EJEX,'String','');
set(handles.EJEY,'String','');
set(handles.R1,'String','');
set(handles.R2,'String','');
set(handles.R3,'String','');
set(handles.R4,'String','');
set(handles.R5,'String','');
set(handles.R1T,'String','');
set(handles.R2T,'String','');
set(handles.R3T,'String','');
set(handles.R4T,'String','');
set(handles.R5T,'String','');
117
ANEXOS
set(handles.REND,'String','');
118
ANEXOS
119
ANEXOS
120
ANEXOS
121
ANEXOS
end
122
ANEXOS
end
function PEND_Callback(hObject, eventdata, handles)
% hObject handle to PEND (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of PEND as text
%
str2double(get(hObject,'String')) returns contents of PEND as a double
entrada=str2double(get(hObject,'String'));
if isnan(entrada)
errordlg('SOLO PUEDE INTRODUCIR VALORES NUMERICOS ','ERROR','modal')
set(hObject,'String',' ')
end
if 100<entrada
errordlg('La pendiente debe ser < 100% ','ERROR','modal');
set(hObject,'String',' ')
end
123
ANEXOS
entrada=str2double(get(hObject,'String'));
if isnan(entrada)
errordlg('SOLO PUEDE INTRODUCIR VALORES NUMERICOS ','ERROR','modal')
set(hObject,'String',' ')
end
124
ANEXOS
125
ANEXOS
end
126
ANEXOS
127
ANEXOS
[P,S]=polyfit(x,y,3);
max_x=max(x);
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'LineWidth',2);
grid on;
[P_MAX,WW_MAX_P] = max(curvP);
WMAXP=(WW_MAX_P+min_x);
set(handles.POTMAX,'string',num2str(P_MAX));
set(handles.WMP,'string',num2str(WMAXP));
set(handles.EJEX,'string','rpm');
set(handles.EJEY,'string','kW');
set(handles.NOMBRECURVA,'string','Curva de Potencia');
128
ANEXOS
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
129
ANEXOS
pd=pd/100;
pt = str2double(get(handles.PT,'string'));
pt=pt/100;
l = str2double(get(handles.L,'string'));
h = str2double(get(handles.H,'string'));
d = str2double(get(handles.D,'string'));
rdi = str2double(get(handles.RDI,'string'));
pen = str2double(get(handles.PEND,'string'));
pend=asin(pen/100);
da = str2double(get(handles.DA,'string'));
cra = str2double(get(handles.CRA,'string'));
crr = str2double(get(handles.CRR,'string'));
cad = str2double(get(handles.CAD,'string'));
WMAXP = str2double(get(handles.WMP,'string'));
WMAXT = str2double(get(handles.WMT,'string'));
P_MAX = str2double(get(handles.POTMAX,'string'));
T_MAX = str2double(get(handles.TMAX,'string'));
ren = str2double(get(handles.REND,'string'));
rend=ren/100;
r=d/2;
%____Calculo de la velocidad maxima____%
[solv]=solve(strcat('(',num2str(P_MAX),'*',num2str(rend),')=(',num2str(m),'*9.81*',num2str(crr),'*x)+(0.5*',
num2str(da),'*',num2str(cra),'*',num2str(af),'*x^3)'));
v1max=isreal(solv(1));
v2max=isreal(solv(2));
v3max=isreal(solv(3));
if v1max==1
vmaxa=solv(1);
else vmaxa=0;
end;
if v2max==1
vmaxb=solv(2);
else vmaxb=0;
end;
if v3max==1
vmaxc=solv(3);
else vmaxc=0;
end;
vmax=max(double([vmaxa vmaxb vmaxc]));
vmax=vmax*3600/1000;
set(handles.VMAX,'string',num2str(vmax));
%____Calculo de la pendiente maxima____%
traccion=get(handles.TRACCION,'Value');
130
ANEXOS
switch traccion
case 1
[pendmax]=solve(strcat(num2str(m),'*9.81*','(sin(x)+',num2str(crr),'*cos(x))=',num2str(cad),'*',num2
str(m),'*9.81*cos(x)*(',num2str(pd),'*',num2str(l),'+',num2str(h),'*',num2str(crr),')/(',num2str(l),'+',n
um2str(cad),'*',num2str(h),')'));
pendmax=max(double(pendmax));
pendmax=100*sin(pendmax);
set(handles.PMX,'string',num2str(pendmax));
case 2
[pendmax]=solve(strcat(num2str(m),'*9.81*','(sin(x)+',num2str(crr),'*cos(x))=',num2str(cad),'*',num2
str(m),'*9.81*cos(x)*(',num2str(pt),'*',num2str(l),'-',num2str(h),'*',num2str(crr),')/(',num2str(l),'',num2str(cad),'*',num2str(h),')'));
pendmax=max(double(pendmax));
pendmax=100*sin(pendmax);
set(handles.PMX,'string',num2str(pendmax));
case 3
[pendmax]=solve(strcat(num2str(m),'*9.81*','(sin(x)+',num2str(crr),'*cos(x))=',num2str(cad),'*',num2
str(m),'*9.81*cos(x)'));
pendmax=max(double(pendmax));
pendmax=100*sin(pendmax);
set(handles.PMX,'string',num2str(pendmax));
end
if str2double(get(handles.PMX,'string'))<str2double(get(handles.PEND,'string'))
errordlg('El vehculo no puede remontar la pendiente introducida ','ERROR','modal');
end
%____Calculo de las relaciones de transmision____%
r5t=(WMAXP*(2*pi/60)*(d/2))/(vmax*1000/3600);
r5=r5t/rdi;
set(handles.R5T,'string',num2str(r5t));
set(handles.R5,'string',num2str(r5));
r1t=((d/2)*m*9.81*(sin(asin(pendmax/100))+crr*cos(asin(pendmax/100))))/(T_MAX*rend);
r1=r1t/rdi;
set(handles.R1T,'string',num2str(r1t));
set(handles.R1,'string',num2str(r1));
k=(r1/r5)^(1/4);
set(handles.K,'string',num2str(k));
r4=k*r5;
r4t=r4*rdi;
set(handles.R4T,'string',num2str(r4t));
131
ANEXOS
set(handles.R4,'string',num2str(r4));
r3=k^2*r5;
r3t=r3*rdi;
set(handles.R3T,'string',num2str(r3t));
set(handles.R3,'string',num2str(r3));
r2=k^3*r5;
r2t=r2*rdi;
set(handles.R2T,'string',num2str(r2t));
set(handles.R2,'string',num2str(r2));
%____calculo de la aceleracion____%
global curvapar
%r1
x=(curvapar(:,1)/str2double(get(handles.R1T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
y=curvapar(:,2)*str2double(get(handles.R1T,'string'))/(str2double(get(handles.D,'string'))/2);
[P,S]=polyfit(x,y,3);
max1_x=max(x);
min1_x=min(x);
curv1P=polyval(P,[min1_x:1:max1_x]);
[PMAX,VMAX] = max(curv1P);
V1MAX=VMAX+min1_x;
%r2
x=(curvapar(:,1)/str2double(get(handles.R2T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
y=curvapar(:,2)*str2double(get(handles.R2T,'string'))/(str2double(get(handles.D,'string'))/2);
[P,S]=polyfit(x,y,3);
max2_x=max(x);
min2_x=min(x);
curv2P=polyval(P,[min2_x:1:max2_x]);
[PMAX,VMAX] = max(curv2P);
V2MAX=VMAX+min2_x;
%r3
x=(curvapar(:,1)/str2double(get(handles.R3T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
y=curvapar(:,2)*str2double(get(handles.R3T,'string'))/(str2double(get(handles.D,'string'))/2);
[P,S]=polyfit(x,y,3);
max3_x=max(x);
min3_x=min(x);
curv3P=polyval(P,[min3_x:1:max3_x]);
[PMAX,VMAX] = max(curv3P);
V3MAX=VMAX+min3_x;
%r4
132
ANEXOS
x=(curvapar(:,1)/str2double(get(handles.R4T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
y=curvapar(:,2)*str2double(get(handles.R4T,'string'))/(str2double(get(handles.D,'string'))/2);
[P,S]=polyfit(x,y,3);
max4_x=max(x);
min4_x=min(x);
curv4P=polyval(P,[min4_x:1:max4_x]);
[PMAX,VMAX] = max(curv4P);
V4MAX=VMAX+min4_x;
%r5
x=(curvapar(:,1)/str2double(get(handles.R5T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
y=curvapar(:,2)*str2double(get(handles.R5T,'string'))/(str2double(get(handles.D,'string'))/2);
[P,S]=polyfit(x,y,3);
max5_x=max(x);
min5_x=min(x);
curv5P=polyval(P,[min5_x:1:max5_x]);
[PMAX,VMAX] = max(curv5P);
V5MAX=VMAX+min5_x;
fda1=T_MAX*r1t/(d/2)(str2double(get(handles.M,'string'))*9.81*(str2double(get(handles.CRR,'string'))*cos(pend)+sin(pend
))+0.5*str2double(get(handles.DA,'string'))*str2double(get(handles.CRA,'string'))*str2double(get(ha
ndles.AF,'string'))*(V1MAX*1000/3600).^2);
fm1=1.04+0.0025*r1t^2;
a1=fda1/(fm1*m);
set(handles.A1,'string',num2str(a1));
fda2=T_MAX*r2t/(d/2)(str2double(get(handles.M,'string'))*9.81*(str2double(get(handles.CRR,'string'))*cos(pend)+sin(pend
))+0.5*str2double(get(handles.DA,'string'))*str2double(get(handles.CRA,'string'))*str2double(get(ha
ndles.AF,'string'))*(V2MAX*1000/3600).^2);
fm2=1.04+0.0025*r2t^2;
a2=fda2/(fm2*m);
set(handles.A2,'string',num2str(a2));
fda3=T_MAX*r3t/(d/2)(str2double(get(handles.M,'string'))*9.81*(str2double(get(handles.CRR,'string'))*cos(pend)+sin(pend
))+0.5*str2double(get(handles.DA,'string'))*str2double(get(handles.CRA,'string'))*str2double(get(ha
ndles.AF,'string'))*(V3MAX*1000/3600).^2);
fm3=1.04+0.0025*r3t^2;
a3=fda3/(fm3*m);
set(handles.A3,'string',num2str(a3));
fda4=T_MAX*r4t/(d/2)(str2double(get(handles.M,'string'))*9.81*(str2double(get(handles.CRR,'string'))*cos(pend)+sin(pend
133
ANEXOS
))+0.5*str2double(get(handles.DA,'string'))*str2double(get(handles.CRA,'string'))*str2double(get(ha
ndles.AF,'string'))*(V4MAX*1000/3600).^2);
fm4=1.04+0.0025*r4t^2;
a4=fda4/(fm4*m);
set(handles.A4,'string',num2str(a4));
fda5=T_MAX*r5t/(d/2)(str2double(get(handles.M,'string'))*9.81*(str2double(get(handles.CRR,'string'))*cos(pend)+sin(pend
))+0.5*str2double(get(handles.DA,'string'))*str2double(get(handles.CRA,'string'))*str2double(get(ha
ndles.AF,'string'))*(V5MAX*1000/3600).^2);
fm5=1.04+0.0025*r5t^2;
a5=fda5/(fm5*m);
set(handles.A5,'string',num2str(a5));
function REND_Callback(hObject, eventdata, handles)
% hObject handle to REND (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of REND as text
%
str2double(get(hObject,'String')) returns contents of REND as a double
entrada=str2double(get(hObject,'String'));
if isnan(entrada)
errordlg('SOLO PUEDE INTRODUCIR VALORES NUMERICOS ','ERROR','modal')
set(hObject,'String',' ')
end
if 100<entrada
errordlg('El rendimiento debe ser < 100% ','ERROR','modal');
set(hObject,'String',' ')
end
134
ANEXOS
end
% --- Executes during object creation, after setting all properties.
function PMX_CreateFcn(hObject, eventdata, handles)
% hObject handle to PMX (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
135
ANEXOS
y=((2*pi)/60)*q;
[P,S]=polyfit(x,y,3);
max_x=max(x);
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'g','LineWidth',2);
grid on;
hold on;
x=(curvapar(:,1)/str2double(get(handles.R2T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
z=curvapar(:,1);
q=(curvapar(:,2).*z);
y=((2*pi)/60)*q;
[P,S]=polyfit(x,y,3);
max_x=max(x);
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'r','LineWidth',2);
hold on;
x=(curvapar(:,1)/str2double(get(handles.R3T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
z=curvapar(:,1);
q=(curvapar(:,2).*z);
y=((2*pi)/60)*q;
[P,S]=polyfit(x,y,3);
max_x=max(x);
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'b','LineWidth',2);
hold on;
x=(curvapar(:,1)/str2double(get(handles.R4T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
z=curvapar(:,1);
q=(curvapar(:,2).*z);
y=((2*pi)/60)*q;
[P,S]=polyfit(x,y,3);
max_x=max(x);
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'k','LineWidth',2);
hold on;
x=(curvapar(:,1)/str2double(get(handles.R5T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
136
ANEXOS
z=curvapar(:,1);
q=(curvapar(:,2).*z);
y=((2*pi)/60)*q;
[P,S]=polyfit(x,y,3);
max_x=max(x);
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'m','LineWidth',2);
hold on;
x=0:250;
pen = str2double(get(handles.PEND,'string'));
pend=asin(pen/100);
y=str2double(get(handles.M,'string'))*9.81*(str2double(get(handles.CRR,'string'))*cos(pend)+sin(pend))*x/
3.6+0.5*str2double(get(handles.DA,'string'))*str2double(get(handles.CRA,'string'))*str2double(get(h
andles.AF,'string'))*(x/3.6).^3;
plot(x,y,'LineWidth',2);
hold off;
set(handles.EJEX,'string','km/h');
set(handles.EJEY,'string','kw');
set(handles.NOMBRECURVA,'string','Diagrama de potencias');
% --- Executes on button press in DTRACCION.
function DTRACCION_Callback(hObject, eventdata, handles)
% hObject handle to DTRACCION (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%____Representacin del diagrama de traccion____%
global curvapar
x=(curvapar(:,1)/str2double(get(handles.R1T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
y=curvapar(:,2)*str2double(get(handles.R1T,'string'))/(str2double(get(handles.D,'string'))/2);
[P,S]=polyfit(x,y,3);
max_x=max(x);
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'g','LineWidth',2);
grid on;
hold on;
x=(curvapar(:,1)/str2double(get(handles.R2T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
y=curvapar(:,2)*str2double(get(handles.R2T,'string'))/(str2double(get(handles.D,'string'))/2);
[P,S]=polyfit(x,y,3);
max_x=max(x);
137
ANEXOS
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'r','LineWidth',2);
hold on;
x=(curvapar(:,1)/str2double(get(handles.R3T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
y=curvapar(:,2)*str2double(get(handles.R3T,'string'))/(str2double(get(handles.D,'string'))/2);
[P,S]=polyfit(x,y,3);
max_x=max(x);
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'b','LineWidth',2);
hold on;
x=(curvapar(:,1)/str2double(get(handles.R4T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
y=curvapar(:,2)*str2double(get(handles.R4T,'string'))/(str2double(get(handles.D,'string'))/2);
[P,S]=polyfit(x,y,3);
max_x=max(x);
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'k','LineWidth',2);
hold on;
x=(curvapar(:,1)/str2double(get(handles.R5T,'string')))*(str2double(get(handles.D,'string'))/2)*(2*pi/60)*(3
600/1000);
y=curvapar(:,2)*str2double(get(handles.R5T,'string'))/(str2double(get(handles.D,'string'))/2);
[P,S]=polyfit(x,y,3);
max_x=max(x);
min_x=min(x);
curvP=polyval(P,[min_x:1:max_x]);
plot(min_x:1:max_x,curvP,'m','LineWidth',2);
hold on;
x=0:250;
pen = str2double(get(handles.PEND,'string'));
pend=asin(pen/100);
y=str2double(get(handles.M,'string'))*9.81*(str2double(get(handles.CRR,'string'))*cos(pend)+sin(pend))+0.
5*str2double(get(handles.DA,'string'))*str2double(get(handles.CRA,'string'))*str2double(get(handles
.AF,'string'))*(x*1000/3600).^2;
plot(x,y,'r','LineWidth',2);
hold on;
x=0:250;
pend=asin(50/100);
138
ANEXOS
y=str2double(get(handles.M,'string'))*9.81*(str2double(get(handles.CRR,'string'))*cos(pend)+sin(pend))+0.
5*str2double(get(handles.DA,'string'))*str2double(get(handles.CRA,'string'))*str2double(get(handles
.AF,'string'))*(x*1000/3600).^2;
plot(x,y,'LineWidth',2);
hold on;
x=0:250;
pend=asin(25/100);
y=str2double(get(handles.M,'string'))*9.81*(str2double(get(handles.CRR,'string'))*cos(pend)+sin(pend))+0.
5*str2double(get(handles.DA,'string'))*str2double(get(handles.CRA,'string'))*str2double(get(handles
.AF,'string'))*(x*1000/3600).^2;
plot(x,y,'LineWidth',2);
hold on;
x=0:250;
pend=asin(0/100);
y=str2double(get(handles.M,'string'))*9.81*(str2double(get(handles.CRR,'string'))*cos(pend)+sin(pend))+0.
5*str2double(get(handles.DA,'string'))*str2double(get(handles.CRA,'string'))*str2double(get(handles
.AF,'string'))*(x*1000/3600).^2;
plot(x,y,'LineWidth',2);
hold off;
set(handles.EJEX,'string','km/h');
set(handles.EJEY,'string','N');
set(handles.NOMBRECURVA,'string','Diagrama de traccion');
139
ANEXOS
140
ANEXOS
% --- Outputs from this function are returned to the command line.
function varargout = DV_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
141
ANEXOS
%____Boton RESET____%
set(handles.M,'String','');
set(handles.C,'String','');
set(handles.K,'String','');
set(handles.WN,'String','');
set(handles.E,'String','');
set(handles.TAU,'string','');
set(handles.F,'string','');
set(handles.SENALENTRADA,'value',1);
axes(handles.axes3);
X=0:4;
Y=1;
plot(X,Y,'w');
axes(handles.axes2);
X=0:50;
Y=0;
plot(X,Y,'w');
axes(handles.axes1);
X=0:50;
Y=0;
plot(X,Y,'w');
142
ANEXOS
w=2*pi*f;
tau=w/wn;
set(handles.TAU,'string',num2str(tau));
axes(handles.axes3);
x=0:0.01:4;
y=((1+4*e^2*x.^2)./((1-x.^2).^2+4*e^2*x.^2)).^0.5;
plot(x,y,'r','LineWidth',2);
grid on;
axes(handles.axes1);
y1=sin(2*pi*str2double(get(handles.F,'string'))*handles.ejex);
plot(handles.ejex,y1,'LineWidth',2);
axis([0 50 -1.5 1.5]);
grid on;
hold off;
axes(handles.axes2);
syms t y
solu1=@(t,y)([y(2); 2*e*wn*(2*(cos(2*pi*f*t))*pi*f)+wn^2*(sin(2*pi*f*t))-wn^2*y(1)-2*e*wn*y(2)]);
[T,Y]=ode45(solu1,[0 50],[0;0]);
plot(T,Y(:,1),'LineWidth',2);
grid on;
hold off;
case 3
w=2*pi*f;
tau=w/wn;
set(handles.TAU,'string',num2str(tau));
axes(handles.axes3);
X=0:4;
Y=1;
plot(X,Y,'w');
axes(handles.axes1);
y2=sin(2*pi*str2double(get(handles.F,'string'))*handles.ejex)+cos(3*pi*str2double(get(handles.F,'string'))*
handles.ejex);
plot(handles.ejex,y2,'LineWidth',2);
axis([0 50 min(y2)-0.5 max(y2)+0.5 ]);
grid on;
hold off;
axes(handles.axes2);
solu2=@(t,y)([y(2); 2*e*wn*(2*cos(2*pi*f*t)*pi*f3*sin(3*pi*f*t)*f*pi)+wn^2*(sin(2*pi*f*t)+cos(3*pi*f*t))-wn^2*y(1)-2*e*wn*y(2)]);
[T,Y]=ode45(solu2,[0,50],[1;0]);
plot(T,Y(:,1),'LineWidth',2);
143
ANEXOS
grid on;
hold off;
case 4
set(handles.TAU,'string','');
axes(handles.axes3);
X=0:4;
Y=1;
plot(X,Y,'w');
axes(handles.axes1);
x=linspace(0,1,600);
x=x';
y3=0.15*randn(600,1)+sin(8*pi*x)+sin(3*pi*x)+sin(6*pi*x);
[P,S]=polyfit(x,y3,10);
curvP=polyval(P,x);
plot(x,curvP,'LineWidth',2);
grid on;
hold off;
axes(handles.axes2);
syms t y
solu2=@(t,y)([y(2);
2*e*wn*(10*P(1)*t^9+9*P(2)*t^8+8*P(3)*t^7+7*P(4)*t^6+6*P(5)*t^5+5*P(6)*t^4+4*P(7)*t^3+3*P(
8)*t^2+2*P(9)*t+P(10))+wn^2*(P(1)*t^10+P(2)*t^9+P(3)*t^8+P(4)*t^7+P(5)*t^6+P(6)*t^5+P(7)*t^4
+P(8)*t^3+P(9)*t^2+P(10)*t+P(11))-wn^2*y(1)-2*e*wn*y(2)]);
[T,Y]=ode45(solu2,[0,1],[curvP(1);0]);
plot(T,Y(:,1),'LineWidth',2);
grid on;
hold off;
end
% --- Executes on button press in SALIR.
function SALIR_Callback(hObject, eventdata, handles)
%____Cerrar ventana____%
close(DV);
% hObject handle to SALIR (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
144
ANEXOS
145
ANEXOS
146
ANEXOS
147
ANEXOS
148
BIBLIOGRAFA
149
BIBLIOGRAFA
6 BIBLIOGRAFA.
Apuntes de Ingeniera del Transporte.
Autor: Francisco Javier Alonso Snchez.
Un curso de automocin.
Autor: Publio Pintado.
Tratado sobre automviles: La dinmica del automvil.
Autor: Jos Font Mezquita.
www.mecanicavirtual.org.
Amortiguadores y suspensin. Manual de automocin.
Autor: Juan Alberdi Urbieta. Universidad de Navarra.
Ingeniera del transporte. 2008.
Autor: F. Aparicio.
Aprenda Matlab 7.0. Dic. 2005.
Autor: Javier Garca de Jaln, Jos Ignacio Rodrguez, Jess Vidal.
Universidad Politcnica de Madrid.
Manual de interfaz grfica de usuario en Matlab.
Autor: Diego Orlando Barragn Guerrero.
Creacin de Interfaces Grficas de Usuario (GUI) con Matlab.
Autor: Gonzalo Fernndez de Crdoba Martos.
150