scieee AI-readable full text Open interactive document viewer

Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas

Raya Ramos, Isidro

Abstract

La necesidad de reducir las emisiones de gases de efecto invernadero ha hecho que la importancia de los vehículos eléctricos no haya dejado de crecer en los últimos años, hasta el punto de que empieza a vislumbrarse el fin de los vehículos propulsados por motores de combustión interna. De hecho, son muchos los fabricantes que están poniendo gran parte de su empeño y sus recursos en el desarrollo de modelos de este tipo, habiendo incluso algunos que han determinado fecha de caducidad a los que hacen uso únicamente de diésel o gasolina. Si a lo anterior añadimos una cuestión tan importante para el conjunto de la sociedad como es la seguridad vial, obtenemos un tema perfecto sobre el que basar un trabajo fin de grado, y es lo que ocurre en este caso. De esta manera, en el presente documento se desarrolla el trabajo llevado a cabo sobre un vehículo eléctrico con cuatro motores en las ruedas con el objetivo de seguir profundizando en el estudio de las diferentes estrategias de control de tracción y estabilidad que pueden implementarse en este tipo de vehículos. El vehículo en cuestión se trata del dispuesto por el departamento de ingeniería de sistemas y automática de la Escuela Técnica Superior de Ingeniería de Sevilla, el conocido como FOX. En los años previos a la realización de este trabajo se plantearon varias estrategias de control que tenian el objetivo de ser implementadas en dicho vehículo, algunas de las cuales llegaron hasta tal punto y otras se encontraban en camino. Con el propósito de llevar a cabo un análisis más extenso de dichas estrategias, implementarlas definitivamente sobre el vehículo y comparar los resultados obtenidos de las mismas en pruebas reales, surgieron dos trabajos fin de grado. El otro fue elaborado por Juan Carlos Fraile y en él podrá encontrarse toda la información que complementa a la que contiene este documento.

Full text

Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería de Tecnologías Industriales Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas Autor: Isidro Raya Ramos Tutor: Miguel Ángel Ridao Carlini Juan José Márquez Quintero Dpto. de Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 iii Trabajo Fin de Grado Grado en Ingeniería de Tecnologías Industriales Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas Autor: Isidro Raya Ramos Tutor: Miguel Ángel Ridao Carlini Catedrático Juan José Márquez Quintero Investigador FPI Dpto. de Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 v Proyecto Fin de Carrera: Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas Autor: Isidro Raya Ramos Tutor: Miguel Ángel Ridao Carlini Juan José Márquez Quintero El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2019 El Secretario del Tribunal vii Agradecimientos Es para mí un orgullo poder agradecer este trabajo a mis padres, por su apoyo incondicional durante todos estos años y por haberme ayudado siempre en todo lo que han podido y más. De igual forma, me gustaría agradecérselo a esas personas especiales que siempre han estado ahí, acompañándome y aguantándome, y que no hace falta nombrar. Querría mencionar también a mis compañeros, algunos de los cuáles se han convertido en amigos, por hacer que los años de estudio hayan sido más que eso. Antes de acabar, me gustaría agradecer a Juan Carlos toda la ayuda proporcionada para solventar los problemas que iban surgiendo cada día y haber hecho el trabajo mucho más llevadero. Por último, quiero agradecer a Miguel Ángel la oportunidad que me ha brindado de trabajar en este proyecto y especialmente a Juanjo el esfuerzo realizado para conducir el FOX, sobre todo en los meses de verano, y la paciencia demostrada desde el primer momento. Isidro Raya Ramos Sevilla, 2019 ix Resumen La necesidad de reducir las emisiones de gases de efecto invernadero ha hecho que la importancia de los vehículos eléctricos no haya dejado de crecer en los últimos años, hasta el punto de que empieza a vislumbrarse el fin de los vehículos propulsados por motores de combustión interna. De hecho, son muchos los fabricantes que están poniendo gran parte de su empeño y sus recursos en el desarrollo de modelos de este tipo, habiendo incluso algunos que han determinado fecha de caducidad a los que hacen uso únicamente de diésel o gasolina. Si a lo anterior añadimos una cuestión tan importante para el conjunto de la sociedad como es la seguridad vial, obtenemos un tema perfecto sobre el que basar un trabajo fin de grado, y es lo que ocurre en este caso. De esta manera, en el presente documento se desarrolla el trabajo llevado a cabo sobre un vehículo eléctrico con cuatro motores en las ruedas con el objetivo de seguir profundizando en el estudio de las diferentes estrategias de control de tracción y estabilidad que pueden implementarse en este tipo de vehículos. El vehículo en cuestión se trata del dispuesto por el departamento de ingeniería de sistemas y automática de la Escuela Técnica Superior de Ingeniería de Sevilla, el conocido como FOX. En los años previos a la realización de este trabajo se plantearon varias estrategias de control que tenian el objetivo de ser implementadas en dicho vehículo, algunas de las cuales llegaron hasta tal punto y otras se encontraban en camino. Con el propósito de llevar a cabo un análisis más extenso de dichas estrategias, implementarlas definitivamente sobre el vehículo y comparar los resultados obtenidos de las mismas en pruebas reales, surgieron dos trabajos fin de grado. El otro fue elaborado por Juan Carlos Fraile y en él podrá encontrarse toda la información que complementa a la que contiene este documento. Figura 6.5: Aceleración del vehículo en prueba SKIDPAD sin control 42 Figura 6.6: Aceleración del vehículo en prueba SKIDPAD con contrl 42 Figura 6.7: Ángulo de giro del volante en prueba SKIDPAD sin control 43 Figura 6.8: Ángulo de giro del volante en prueba SKIDPAD con control 43 Figura 6.9: Señal del acelerador en prueba SKIDPAD sin control 44 Figura 6.10: Señal del acelerador en prueba SKIDPAD con control 44 Figura 6.11: Velocidad del vehículo en prueba SKIDPAD sin control 45 Figura 6.12: Velocidad del vehículo en prueba SKIDPAD con control 45 Figura 6.13: Error en el cálculo de la referencia de yaw rate 46 Figura 6.14: Fallo en el cálculo del steering angle 47 Figura 6.15: Slip rate sin control en prueba de aceleración 48 Figura 6.16: Slip rate con control en prueba de aceleración 48 xvii Acrónimos ACEA European automobile manufacturers association APV Coches de propulsión alternativa (Alternatively-Powered Cars) ECV Vehículos eléctricos recargables HVEs Vehículos eléctricos no enchufables UE Unión Europea E.T.S.I. Escuela Técnica Superior de Ingeniería BMS Sistema de Gestión de Baterías (Battery Management System) ECU Unidad de Control Electrónica (Electronic Control Unit) IMU Unidad de Medición Inercial (Inertial Measurement Unit) COG Centro De Gravedad (Center Of Gravity) GPS Sistema de Posicionamiento Global (Global Positioning System) NED Norte Este Abajo (North East Down) CAN Protocolo de comunicaciones (Controller Area Network) HMI Interfaz hombre-máquina (Human-Machine Interface) Introducción xviii 1 1 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas 1 INTRODUCCIÓN 1.1 Motivación del proyecto Los vehículos propulsados por motores de combustión interna llevan más de 100 años entre nosotros y resulta difícil imaginar un futuro en el que estos no estén presentes. Sin embargo, a medida que pasan los años, ese ejercicio de imaginación parece menos complicado y el motivo no es otro que la aparición de un nuevo actor en el sector de la automoción, el vehículo eléctrico. La creciente preocupación del conjunto de la sociedad por la conservación del medio ambiente y la necesidad de reducir la emisión de gases de efecto invernadero, ha puesto de manifiesto la importancia de este tipo de vehículos, lo que a su vez ha provocado que los diferentes fabricantes inviertan en el desarrollo de esta tecnología y el catálogo de modelos sea cada vez más amplio. Aunque a día de hoy los vehículos propulsados mediante combustibles fósiles siguen acaparando los mayores porcentajes de ventas, en los países desarrollados está teniendo lugar una migración hacia la movilidad eléctrica. Prueba de ello son las cifras de nuevas matriculaciones durante el primer trimestre de este año proporcionadas por ACEA, según la cual, los vehículos propulsados por combustibles alternativos (APV) han supuesto el 8.5% del mercado europeo, lo que implica un incremento del 25.9% respecto al mismo período del año anterior. Dentro de este grupo, el crecimiento más acusado lo han experimentado los vehículos eléctricos recargables (ECV), que gracias a las 99.174 unidades registradas han apuntado un aumento del 40%. Respecto a los vehículos eléctricos híbridos no enchufables (HVEs), el aumento de matriculaciones se cifra en un 33.3%, mientras que en el caso de los propulsados por combustibles alternativos de otro tipo, como puede ser el gas natural, se ha experimentado una recesión del 7.2%. Un dato interesante proporcionado por la fuente anterior es que, durante el primer trimestre de este año, España ha sido el segundo país de la UE cuya demanda de este tipo de vehículos ha sufrido un mayor incremento (+48.9%), por detrás únicamente de Alemania (+62.9%) [1]. Bien es cierto que las cifras de nuevas matriculaciones en nuestro país están lejos de alcanzar a los países miembros que se encuentran a la cabeza de esa lista, pero es importante hacer notar que también aquí el vehículo alternativo se está abriendo paso en el mercado. Figura 1.1: Matriculaciones de VE durante el primer trimestre de 2019 en la Unión Europea [1] Introducción 2 Como se indicó al principio de este apartado, el motivo por el cual este tipo de vehículos está llamado a ser una parte fundamental del parque automovilístico es el problema medioambiental. La necesaria reducción de la emisión de gases de efecto invernadero a la atmósfera, en especial el CO2, pasa por disminuir el número de vehículos propulsados con motores de combustión interna que circulan por nuestras carreteras. Estos son los responsables de gran parte de dichas emisiones, contribuyendo en un 72% al total de las que provienen del sector transporte. En su conjunto, el aporte de este sector a las emisiones de dióxido de carbono totales de la UE se estima en torno al 30% [2]. Es por esto por lo que los diferentes gobiernos están adoptando medidas que incentiven la compra de vehículos alternativos y así poder alcanzar los objetivos de emisiones impuestos por la UE para el futuro, que son cada vez más estrictos. Prueba de ello es la normativa aprobada recientemente, que pretende reducir las emisiones de CO2 de los turismos en un 37,5% para el año 2030 con respecto a los límites ya establecidos para el año 2021. Antes de eso, en el año 2025, estas emisiones ya deberían haber decrecido en un 15% [3]. Lo que pretende hacerse ver con todo lo expuesto anteriormente es que el modelo de movilidad de la sociedad está cambiando. A medida que esta se ha ido desarrollando, la demanda de vehículos se ha incrementado hasta niveles casi insostenibles que provocarán, en un futuro no muy lejano, problemas irreparables para el medio ambiente. Es por esto por lo que se está incentivando el desarrollo del vehículo eléctrico y su introducción en el mercado, en detrimento del resto de vehículos tradicionales propulsados por diésel o gasolina. Estos son los motivos por los que se considera de interés seguir profundizando en el estudio de los vehículos eléctricos, ya que muy probablemente acaben constituyendo un pilar fundamental en la industria automotriz. Con esa premisa surgió el interés en la realización de este trabajo, centrado a su vez en una parte fundamental de cualquier tipo de vehículo, los sistemas de control de tracción y estabilidad. Para ello se dispuso del vehículo desarrollado por el departamento de ingeniería de sistemas y automática de la E.T.S.I. de Sevilla durante el proyecto FOX, destinado a ser utilizado como banco de pruebas de diferentes estrategias de control aplicables en vehículos eléctricos. 1.2 Objetivos Este proyecto nació con el objetivo general de llevar a cabo una revisión de todos los trabajos previos realizados sobre el vehículo FOX, en los que se diseñaron varias estrategias de control con la intención de ser implementadas y utilizadas en este. Algunas fueron planteadas teóricamente y testadas en simulación mientras que otras llegaron a probarse en pista, aunque no de todas ellas se alcanzó a documentar los resultados obtenidos. Es por esto por lo que a través de este trabajo se pretende continuar avanzando en el desarrollo de estos controladores y dejar constancia de todas las observaciones extraídas de las pruebas realizadas. Figura 1.2: Porcentaje de emisiones de CO2 debido al tráfico rodado [2] 3 3 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas La idea es llegar a ofrecer una comparativa del funcionamiento de las diferentes estrategias de control que sirva para determinar cuál o cuáles aseguran un mejor comportamiento del vehículo. Para lograr un buen funcionamiento de los controladores es necesario ajustar sus parámetros, y la única manera que había de hacer esto era modificar el código de control antes de instalarlo en el vehículo. De esta forma, si se pretendía probar diferentes controladores y cada uno de ellos con parámetros diferentes, había que programar primero cada una de estas versiones de código en un ordenador externo y luego pasarlas al vehículo para poder utilizarlas. La operación resultaba poco práctica, así que el primer objetivo fue desarrollar una nueva interfaz hombre-máquina que permitiera interactuar con el vehículo y modificar los parámetros de control antes mencionados. Para todo lo anterior se trabajó de manera conjunta con Juan Carlos Fraile, que realizó su trabajo fin de grado de forma paralela a este. Mientras que durante la primera parte del proyecto el objetivo fue compartido, centrándonos ambos en conseguir modificar el software del vehículo y adaptar las nuevas funcionalidades que se requerían, en la segunda parte del mismo el trabajo se repartió. De esta manera, él se encargó de probar y analizar tres de las estrategias de control planteadas para el vehículo FOX mientras que este documento se centra en el resto, por lo que a lo largo de todo el texto se encontrarán continuas menciones a su trabajo. Introducción 4 5 5 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas 2 DESCRIPCIÓN DEL FOX 2.1 Características principales Construido sobre el chásis de un coche de carreras Silver Car S2, el vehículo FOX se utilizará como banco de pruebas de las diferentes estrategias de control de tracción y estabilidad. Cuenta con cuatro motores eléctricos alimentados por un sistema de baterías y cada uno de ellos se encuentra ubicado en una rueda, lo que dota al vehículo de tracción integral. El chásis tubular de acero original fue ligeramente modificado para acomodar todos estos elementos, así como para añadir un segundo asiento dentro del habítaculo. En cuanto a la carrocería, está compuesta por varias piezas de fibra de vidrio reforzada y dos puertas acristaladas, aunque estas últimas no aparecen en la Figura 2.1. 2.1.1 Motores Como se ha dicho, el vehículo FOX cuenta con tracción total gracias a los cuatro motores eléctricos de los que dispone, característica que es claramente ventajosa a la hora de elaborar los diferentes algoritmos de control. Al estar estos motores instalados directamente en las ruedas del vehículo no son necesarios elementos mecánicos intermedios que transfieran el par hacia estas, lo que hace que la transmisión de potencia sea mucho más eficiente. En cuanto a las características técnicas, son motores sin escobillas con una potencia de 7 kW y capaces de transmitir un par máximo de 80 Nm. El empleo de motores brushlees (sin escobillas) está justificado, entre otras cosas, por su mejor relación velocidad-par motor, su mayor eficiencia y su menor necesidad de mantenimiento, siendo por esto habitual su utilización en la industria del automóvil. Para terminar este apartado cabe destacar que el vehículo cuenta con un sistema de frenos de disco independiente a los motores cuya activación se realiza de manera mecánica desde el pedal correspondiente. Esto garantiza el correcto funcionamiento de los mismos durante la realización de cualquier prueba. Figura 2.1: Vehículo FOX [5] Descripción del FOX 6 2.1.2 Baterías El vehículo cuenta con una batería de litio-ferrofosfato compuesta por seis paquetes de cuatro celdas cada uno. Este tipo de batería es muy adecuado para cargas rápidas, característica muy demandada en los vehículos eléctricos actuales, además de que no son explosivas, lo que en este caso es de vital importancia teniendo en cuenta la cercanía de estos dispositivos al habitáculo del piloto. A parte de esto, son baterías que mantienen la totalidad de su poder hasta que se agotan, lo que permitirá que las prestaciones del vehículo no se vean perjudicadas al acercarse ese momento 1 . Las baterías tienen como objetivo alimentar a los motores eléctricos instalados en las ruedas del vehículo y para ello es necesaria la existencia de un convertidor que modifique la corriente continua procedente de estas. Existe también un sistema comercial de gestión de baterías (BMS) encargado de controlarlas y que proporciona una serie de datos en tiempo real, tales como su nivel de carga o la tensión de las celdas. 2.1.3 ECU y Supervisor Se llama Unidad de Control Electrónica, o ECU por sus siglas en inglés, al ordenador encargado de recopilar todos los datos procedentes de los sensores, de su posterior tratamiento y de llevar a cabo los cálculos necesarios para la correcta aplicación de la estrategia de control correspondiente. Se trata de un computador embebido que sigue el estándar PC104 y funciona con el sistema operativo de tiempo real QNX. Además, existe otro ordenador con las mismas características que el anterior que funciona con una versión limitada de Windows XP y contiene el supervisor. Se llama así al software programado en LabVIEW que permite visualizar durante la conducción cierta información relacionada con el vehículo y modificar algunos parámetros de los controladores Esta última funcionalidad fue implementada durante la realización de este proyecto, por lo que será explicada con más de detalle a continuación (véase capítulo 3). 2.1.4 IMU La Unidad de Medición Inercial o IMU es el sensor más importante de los que dispone el vehículo y en este caso se trata del modelo 3DM-GX3-35 del fabricante Microstrain. Gracias a ella se pueden conocer datos como la aceleración o el yaw rate del vehículo, parámetros de gran influencia en su estabilidad (véase capítulo 4). Toda la información procedente de este dispositivo estará referenciada en un sistema de ejes locales propio que depende de la orientación con la que se instale. Este hecho es de importancia ya que las diferentes medidas deberán ser referenciadas en un sistema de ejes común centrado en el COG del coche y que se muestra en la Figura 2.2. La forma de llevar a cabo la transformación entre ambos sistemas de referencia aparece en [4]. 1 Las características de estas baterías se han extraído de: https://www.bateriasdelitio.net Figura 2.2: Sistemas de referencia del FOX [4] 7 7 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas La IMU cuenta además con un Sistema de Posicionamiento Global (GPS) que informa de la posición y velocidad del vehículo. Esta última se expresa en un sistema de referencia global (ejes NED) y es proporcionada como un vector donde las tres primeras componentes son las coordenadas norte, este y abajo y las dos últimas el módulo y el ángulo polar. 2.1.5 Otros sensores El vehículo dispone de otros sensores a parte de la IMU que resultan de gran utilidad, entre los que destacan: ▪ Sensor del acelerador, que informa de la posición del pedal mediante una señal con un valor comprendido entre 0 y 5 voltios. ▪ Sensor del pedal de freno, que sirve para detectar su activación y detener la demanda de par a los motores desde la ECU. ▪ Potenciómetros de la amortiguación, que al igual que ocurre en el acelerador, proporciona una señal comprendida entre 0 y 5 voltios en función de su posición. ▪ Potenciómetro del volante, que de nuevo proporciona una señal entre 0 y 5 voltios en función de la posición del mismo. En este caso cabe aclarar que se toma como sentido positivo de giro del volante el sentido horario, es decir, hacia la derecha, mientras que un giro antihorario o a la izquierda se considera negativo. Por el contrario el giro de las ruedas se considera positivo cuando estas giran a la izquierda y negativo cuando lo hacen hacia la derecha. 2.1.6 Esquema de comunicaciones del FOX La comunicación entre la ECU y el resto de elementos tratados en este capítulo sigue el esquema mostrado en la Figura 2.4. En ella se aprecia cómo la transferencia de información entre los controladores de cada motor, la BMS, el supervisor y la ECU se realiza mediante un bus de datos con protocolo de comunicaciones CAN. Por otro lado se encuentran los potenciómetros tanto de la suspensión como de los pedales y el volante, que se conectan a la ECU a través de una tarjeta de adquisición de datos, y la unicdad de medición inercial, que lo hace mediante un puerto serie. Figura 2.3: Potenciómetro en el amortiguador del FOX [5] Nuevo supervisor 14 supervisor.on = TRUE; pthread_mutex_unlock(&mut_supervisor); break; case ID_PARAM_DAVID: pthread_mutex_lock(&mut_supervisor); us_aux1 = (uint8_t) rxmsg.data[0]; us_aux1 = us_aux1<<8; us_aux1 += (uint8_t) rxmsg.data[1]; us_aux2=(uint8_t)rxmsg.data[2]; us_aux2=us_aux2<<8; us_aux2 += (uint8_t)rxmsg.data[3]; supervisor.param_david.Kp = (float) us_aux1/100; supervisor.param_david.Ki = (float) us_aux2/100; pthread_mutex_unlock(&mut_supervisor); break; case ID_PARAM_MIGUEL: pthread_mutex_lock(&mut_supervisor); us_aux1 = (uint8_t) rxmsg.data[0]; us_aux1 = us_aux1<<8; us_aux1 += (uint8_t) rxmsg.data[1]; us_aux2=(uint8_t)rxmsg.data[2]; us_aux2=us_aux2<<8; us_aux2 += (uint8_t)rxmsg.data[3]; us_aux3=(uint8_t)rxmsg.data[4]; us_aux3=us_aux3<<8; us_aux3 += (uint8_t)rxmsg.data[5]; us_aux4=(uint8_t)rxmsg.data[6]; us_aux4=us_aux4<<8; us_aux4 += (uint8_t)rxmsg.data[7]; supervisor.param_miguel.Kt = (float) us_aux1/100; supervisor.param_miguel.Kp = (float) us_aux2/100; supervisor.param_miguel.Kd = (float) us_aux3/100; supervisor.param_miguel.umbral = (float) us_aux4/100; pthread_mutex_unlock(&mut_supervisor); break; case ID_PARAM_ANGEL: pthread_mutex_lock(&mut_supervisor); us_aux1 = (uint8_t) rxmsg.data[0]; us_aux1 = us_aux1<<8; us_aux1 += (uint8_t) rxmsg.data[1]; us_aux2=(uint8_t)rxmsg.data[2]; us_aux2=us_aux2<<8; us_aux2 += (uint8_t)rxmsg.data[3]; supervisor.param_angel.K = (float) us_aux1/10; supervisor.param_angel.theta_front = (float) us_aux2/100; pthread_mutex_unlock(&mut_supervisor); break; case ID_PARAM_ANGEL2: pthread_mutex_lock(&mut_supervisor); us_aux1 = (uint8_t) rxmsg.data[0]; us_aux1 = us_aux1<<8; us_aux1 += (uint8_t) rxmsg.data[1]; us_aux2=(uint8_t)rxmsg.data[2]; us_aux2=us_aux2<<8; us_aux2 += (uint8_t)rxmsg.data[3]; us_aux3=(uint8_t)rxmsg.data[4]; us_aux3=us_aux3<<8; us_aux3 += (uint8_t)rxmsg.data[5]; supervisor.param_angel2.K = (float) us_aux1/10; supervisor.param_angel2.umbral_yaw = (float) us_aux2/100; 15 15 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas supervisor.param_angel2.umbral_beta = (float) us_aux3/100; pthread_mutex_unlock(&mut_supervisor); break; case ID_SUPERV_OFF: break; default: } } De nuevo se utiliza una estructura de control switch-case para extraer la información del mensaje en función del identificador del mismo y copiarla en una estructura llamada “supervisor”, cuyo prototipo se encuentra en la biblioteca “estructuras_fox.h”. Al estar definida de forma global al proceso es accesible desde todos los hilos del mismo, por lo que una vez que este hilo interpreta el mensaje y guarda la información en dicha estructura, otro hilo, en este caso el de control, podrá disponer de esa información y conocer cuáles son los valores de los parámetros de los controladores que el copiloto ha elegido. El prototipo de la estructura “supervisor” aparece reflejado en el Código 3.4. Los primeros campos de la misma se rellenan cada vez que llega el heartbeat, mensaje que verifica la conexión entre la ECU y el supervisor mediante una variable booleana con el mismo nombre. Además, este mensaje incluye otra información de importancia como es la activación o no de los motores, lo que permite realizar pruebas sin tracción a las cuatro ruedas en caso de que así lo requiera el copiloto. En el mensaje anterior se ha incluido también, como novedad, una variable entera de ocho bits que sirve para indicar qué controlador se desea probar, de forma que puede seleccionarse desde el supervisor la estrategia de control a utilizar en cada prueba o variar de una a otra durante la realización de la misma. Código 3.4: Estructura que guarda la información referente al supervisor typedef struct { BOOL heartbeat; BOOL enviado_off; BOOL peticion_off; BOOL on; BOOL motor_on[NUM_MOTORES]; uint8_t controlador; float beta; float pseudodes[4]; float ang_deriva_FL, ang_deriva_RL, ang_deriva_FR, ang_deriva_RR; struct { float Kp, Ki; }param_david; struct { float Kp, Kt, Kd, umbral; }param_miguel; struct { float K, theta_front; }param_angel; struct { float K, umbral_yaw, umbral_beta; }param_angel2; } est_superv_t; Dentro de la estructura “supervisor” se incluyeron también las variables que almacenan los valores de los parámetros para los diferentes controladores. Estos valores no pueden ser enteros como el utilizado para seleccionar el controlador. Deben ser números reales que permitan variar los parámetros de los controladores en uno o dos decimales con el objetivo de conseguir un mejor ajuste de los mismos. No obstante, esta característica requiere un tratamiento especial tanto en el envío como en la recepción de datos. Nuevo supervisor 16 Mediante una transmisión CAN se pueden enviar o recibir, como mucho, ocho tramas de datos de ocho bits cada una. Esto hace que para enviar un número real con uno o dos decimales de precisión haya que multiplicarlo primero por 10 o por 100, respectivamente, para convertirlo en entero y luego dividir la transmisión en dos envíos de ocho bits cada uno (suponiendo que, como en este caso, se utilicen 16 bits para representar los números). Por este motivo se definen las variables auxiliares que aparecen al principio del Código 3.3. Dado que la transmisión de cada una de las variables está dividida en dos envíos de ocho bits, primero se recibe una parte de la misma y se guarda en una de las variables auxiliares. Después de esto se desplaza dicho número binario ocho bits hacia la izquierda con el comando “<<”, lo que permite completarlo mediante la adición de la segunda parte del envío. Por último quedaría dividir por 10 o por 100 la variable auxiliar (según el número por el que haya sido multiplicado previamente el valor en el supervisor) para obtener el valor real y asignarlo a la variable correspondiente. Las otras variables que aparecen definidas en la estructura del Código 3.4 también se incluyeron durante la realización de este trabajo y se utilizan para enviar nueva información al supervisor. Estas contienen el ángulo de deslizamiento del vehículo (beta), el coeficiente de deslizamiento de las ruedas (pseudodes) y los ángulos de deriva de las mismas (ang_deriva). Estas variables son calculadas en el hilo de control durante su ejecución y en cada iteración se copian en la estructura “supervisor”, desde donde pueden ser enviadas mediante el procedimiento explicado a continuación. El envío de información al supervisor se realiza, como ya se ha explicado, a través de interrupciones periódicas de una señal que provocan la activación de un manejador cuya misión es realizar la transmisión. Cada vez que se activa el manejador se incrementa un contador de ciclos (“cnt_ciclos_can”) que permite enviar paquetes de datos con distintos períodos. En el fragmento de código siguiente aparece, a modo de ejemplo, el envío de un paquete de datos que se realiza cada dos invocaciones del manejador. Código 3.5: Envío de un paquete de datos al supervisor if((cnt_ciclos_can % 2) == 0) { /* Envio de mensaje: Angulos de deriva calculados en ctrl_tracc_estab */ msg_can_out.id = ID_IMU_DATOS_6; msg_can_out.frame_inf.inf.DLC = 8; pthread_mutex_lock(&mut_supervisor); s_aux1 = (int16_t) roundf(supervisor.ang_deriva_FL * 100); s_aux2 = (int16_t) roundf(supervisor.ang_deriva_RL * 100); s_aux3 = (int16_t) roundf(supervisor.ang_deriva_FR * 100); s_aux4 = (int16_t) roundf(supervisor.ang_deriva_RR * 100); pthread_mutex_unlock(&mut_supervisor); msg_can_out.data[0] = (BYTE) ((s_aux1 & MASK_BYTE_ALTO)>>8); msg_can_out.data[1] = (BYTE) (s_aux1 & MASK_BYTE_BAJO); msg_can_out.data[2] = (BYTE) ((s_aux2 & MASK_BYTE_ALTO)>>8); msg_can_out.data[3] = (BYTE) (s_aux2 & MASK_BYTE_BAJO); msg_can_out.data[4] = (BYTE) ((s_aux3 & MASK_BYTE_ALTO)>>8); msg_can_out.data[5] = (BYTE) (s_aux3 & MASK_BYTE_BAJO); msg_can_out.data[6] = (BYTE) ((s_aux4 & MASK_BYTE_ALTO)>>8); msg_can_out.data[7] = (BYTE) (s_aux4 & MASK_BYTE_BAJO); pthread_mutex_lock(&mut_hdl); CanWrite(hdl, &msg_can_out); pthread_mutex_unlock(&mut_hdl); } En este caso se representa la parte del código que envia al supervisor los ángulos de deriva las ruedas. Cabe recordar que en cada transmisión se pueden incluir un máximo de ocho bytes de información divididos en tramas de un byte. Por este motivo, si se desea enviar nueva información, debe agruparse bajo un nuevo identificador o bien incluirla en alguna transmisión donde no se haya superado el límite. 17 17 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas La estructura “msg_can_out” corresponde a la estructura de un mensaje CAN y su prototipo es el mismo que el comentado en el caso de la recepción de mensajes desde el supervisor (definido en “canstr.h”). El primer elemento que incluye es el identificador del mensaje, dato fundamental para que el supervisor pueda interpretar la información que le llega. Después se define el campo “frame_inf.inf.DLC”, en el que se especifica el número de tramas de un byte que van a enviarse. Se procede entonces a copiar en variables auxiliares los datos que se desean enviar, previa transformación de los mismos en un valor entero. Por último, estos valores deben dividirse en dos fragmentos de ocho bits para poder enviarlos por separado. Para ello se multiplican primero por 0xFF00 (MASK_BYTE_ALTO) y se desplaza el resultado ocho bits a la derecha, dando lugar a la primera parte de la transmisión. Como ocurría en el caso de la recepción, la primera parte del envío corresponderán a los ocho bits más significativos. La segunda parte del envío se obtiene de multiplicar el valor por 0x00FF (MASK_BYTE_BAJO). 3.4 Adaptación del hilo de control La mayor parte del trabajo realizado sobre este hilo consistió en revisar y ordenar los códigos de todos los algoritmos de control desarrollados previamente en el vehículo. El objetivo era eliminar las partes del código que dejaron de utilizarse en las últimas versiones del programa además de algunas variables y cálculos que se encontraban repetidos en varios controladores. Se unificó también la manera de guardar los datos para poder copiarlos en un fichero de texto tras la realización de una prueba. Con todo ello, el código quedó mejor estructurado y es ahora más legible. A parte de esto se introdujeron algunos cambios para adaptar las nuevas funcionalidades del supervisor. Como se ha explicado en los apartados anteriores, los datos procedentes de este se guardan en una estructura global llamada “supervisor” a la que tienen acceso el resto de hilos del proceso. De esta forma, al comienzo de cada iteración de este hilo, se accede a los datos de dicha estructura para conocer tanto los parámetros de los controladores como el controlador en cuestión que se desea utilizar. Al final del bucle, después de haber realizado todos los cálculos necesarios, se copia en la misma estructura las variables que se quieren enviar al supervisor para que el hilo “can_superv_fox” envie dicha información. Por último, cabe indicar que la forma de poder ejecutar un controlador u otro en función del valor seleccionado desde el supervisor es utilizar una estructura de control switch-case. Esto permite emplear una estrategia de control u otra según la variable “controlador” contenida dentro de la estructura antes mencionada, evitando de esta forma llevar a cabo operaciones innecesarias que requieran tiempo de procesamiento. 3.5 Interfaz y funcionamiento del nuevo supervisor El supervisor dispone de varias ventanas cuya función es mostrar al copiloto información relativa a diferentes partes de coche. Cuenta con una ventana de información general en la que se representan datos referentes a la conducción del vehículo (velocidad, actuación sobre los pedales, ...) y parámetros relacionados con el comportamiento dinámico del mismo (Figura 3.3). Otra de las ventanas está dedicada a mostrar toda la información de la que se dispone sobre los motores eléctricos y permite mostrarla de forma independiente o agrupada por ejes (Figura 3.4). También se incluye un apartado dedicado a las baterías (Figura 3.5) y una ventana que muestra todos los errores detectados por la ECU (Figura 3.6). Las nuevas funcionalidades del supervisor, como son la elección del controlador a utilizar y los parámetros de los mismos, se gestionan desde las ventanas mostradas en Figura 3.8 y Figura 3.7. Nuevo supervisor 18 Figura 3.3: Ventana de información general del supervisor Figura 3.4: Ventana dedicada a los motores 19 19 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas Figura 3.5: Ventana dedicada a las baterías Figura 3.6: Ventana de errores del supervisor Nuevo supervisor 20 La ventana mostrada en la figura anterior sirve para conocer el estado de la comunicación entre la ECU y el supervisor. Cuenta además con el botón de recepción, también llamado RX, que es el utilizado para habilitar la recepción de datos procedentes de la ECU. La última ventana es la más importante en lo que respecta a este trabajo ya que es la encargada de gestionar las nuevas funciones añadidas al supervisor durante el desarrollo del mismo. Desde ella se pueden seleccionar los motores que se desean activar mediante los botones M1, M2, M3 y M4 así como variar los parámetros de los diferentes controladores. Figura 3.8: Ventana CAN del supervisor Figura 3.7: Ventana ESC del supervisor [6] 21 21 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas Mediante el botón ESC se puede deshabilitar el control de tracción y estabilidad del vehículo de forma que este funcione aplicando en cada rueda el par demandado desde el pedal del acelerador, es decir, sin emplear ningún reparto de par especial. Por otro lado contamos con el botón TX, que se utiliza para enviar un heartbeat. Cabe recordar que mediante este mensaje se pasaba a la ECU los motores que se encontraban activados y el controlador seleccionado. Con todo lo anterior, las instrucciones de uso del supervisor serían las siguientes: • Una vez arrancado el programa principal en la ECU, presionar el botón RX. • Ir a la ventana ESC y seleccionar los motores que se desean activar. Presionar el botón ESC (ESC ON) y seleccionar el controlador que se quiere probar. Pulsar el botón TX para activar los motores. • Para modificar los parámetros de los controladores se pueden utilizar los botones situados de la derecha de cada variable (ajuste fino) o pulsar el botón APROX y utilizar la barra deslizante (menor precisión, pero útil para acercarnos al valor deseado más rápidamente). Hecho esto, se puede pulsar el botón “Modificar parámetros” o de nuevo el botón TX. Nuevo supervisor 22 23 23 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas 4 CONTROL Y DINÁMICA DEL AUTOMÓVIL En este capítulo se incluye una descripción general del funcionamiento y de los objetivos de las técnicas de control empleadas habitualmente en los automóviles. Después se introducirán los conceptos teóricos relacionados con el comportamiento dinámico del vehículo necesarios para elaborar alguna de estas técnicas, así como las expresiones utilizadas en los cálculos de las estrategias de control analizadas posteriormente. El objetivo es reunir en un único capítulo la base de conocimiento necesaria para comprender de forma clara los algoritmos de control implementados en el vehículo FOX, que serán desarrollados en el capítulo siguiente. 4.1 El control de tracción Los sistemas de control de tracción tienen como objetivo evitar la pérdida de adherencia de los neumáticos, ya sea debida a la aplicación de un par excesivo durante la aceleración del vehículo o por estar circulando este sobre una superficie demasiado resbaladiza. La forma de reconocer que una rueda está deslizando es medir su velocidad de giro. Si esta es mayor de lo que debería ser teniendo en cuenta la velocidad a la que se desplaza el vehículo, el sistema entiende que se está produciendo deslizamiento y para tratar de detenerlo actúa sobre los frenos de la rueda en cuestión o disminuye la entrega de par procedente del motor. Los nombres comerciales más conocidos de este sistema son ASR (Anti-Slip Regulation) y TCS (Traction Control System). Para tomar las medidas necesarias y actuar en consecuencia se utilizan los sensores y mecanismos del sistema antibloqueo de frenos o ABS (Antilock Brake System), que puede ser considerado también un control de tracción. Este sistema tiene como objetivo evitar el bloqueo de los neumáticos durante una frenada de emergencia, para lo que reduce la presión del freno de la rueda cuando detecta que su velocidad de giro es nula. Con esto se consigue reducir la distancia necesaria para que el vehículo se detenga completamente además de proporcionar al conductor un mayor control de la trayectoria del vehículo durante la frenada. 4.2 El control de estabilidad El objetivo de este sistema de control es asegurar que la trayectoria que sigue el vehículo se corresponde con la demandada por el conductor a través del volante. Desde hace algunos años es obligatoria su instalación en todos los turismos y vehículos comerciales ligeros que se venden en la Unión Europea y en función del fabricante recibe un nombre diferente: ESC (Electronic Stability Control), ESP (Electronic Stability Program), DSC (Dynamic Stability Control) o VSA (Vehicle Stability Assist), entre otros 4 . El sistema calcula la trayectoria que debería llevar el vehículo a partir del ángulo girado por el volante y la compara con la que está siguiendo en realidad, que la obtiene gracias a las medidas de diferentes sensores. En 4 Denominación del control de estabilidad según fabricantes: https://es.wikipedia.org/wiki/Control_de_estabilidad Control y dinámica del automóvil 30 4.3.4 Modelado del vehículo Utilizar un modelo del vehículo tiene como objetivo analizar teóricamente la dinámica lateral de este y así poder diseñar las diferentes estrategias de control de estabilidad. Este modelo debe reproducir el comportamiento del vehículo a través de expresiones matemáticas y hacerlo de una manera simplificada para que requiera el menor tiempo de computación posible. Es por esto por lo que se utiliza el modelo de la bicicleta, modelo que recibe este nombre porque, aparte de llevarse a cabo otras simplificaciones, las ruedas izquierda y derecha de cada eje son consideradas como una sola [8]. Como se comentó en el apartado 4.3.1 la variable a controlar con el propósito de garantizar la estabilidad del vehículo es su momento yaw, para lo que será necesario calcular un yaw rate de referencia. Para ello se llevan a cabo una serie de simplificaciones en el modelo del vehículo con el objetivo de reducir el coste computacional de la operación y se llega a la siguiente expresión: 𝑟𝑟𝑒𝑓 = 𝑣 𝐿+𝑚 𝐿∙( 𝑏 𝐶𝛼𝐹 −𝑎 𝐶𝛼𝑅)∙𝑣2∙𝛿 (4.11) Figura 4.10: Modelo de la bicicleta [16] Figura 4.9: Coeficiente de fricción frente a slip rate [9] 31 31 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas Donde 𝑣 es la velocidad del vehículo, 𝑚 su masa, 𝛿 es el ángulo de giro de las ruedas delanteras, 𝐶𝛼𝐹 y 𝐶𝛼𝑅 la rigidez lateral de los neumáticos delanteros y traseros respectivamente y el resto de los parámetros corresponden a las dimensiones del FOX (Ver Figura 4.6). El ángulo representado en la figura anterior como 𝛽, que recibe el nombre de ángulo de deriva lateral o vehicle sideslip angle (VSA), está estrechamente relacionado con el comportamiento dinámico del vehículo y el control de estabilidad se encargará de que no alcance valores demasiado elevados, lo que haría muy difícil volver a restaurar la estabilidad del coche. Al contrario de lo que ocurre con la aceleración lateral del vehículo o el yaw rate, que pueden ser obtenidos mediante sensores de bajo coste, el parámetro anterior puede medirse únicamente a partir de un sensor óptico que presenta problemas de coste, fiabilidad y tolerancia a fallos, lo que hace inviable su instalación incluso en vehículos de producción en serie. Esto hace que la estimación de este parámetro siga siendo objeto de estudio tanto en el mundo académico como el industrial [10] y en el caso de los controladores analizados en este documento se hace según la siguiente expresión: 𝛽= tan−1(𝑣𝑦 𝑣𝑥) (4.12) Siendo 𝑣𝑥 y 𝑣𝑦 las componentes longitudinal y transversal de la velocidad del vehículo, respectivamente. Debido al interés de mantener esté ángulo en los valores más cercanos al cero como sea posible, la referencia que se utiliza en las diferentes estrategias de control para este parámetro es dicho valor. No obstante, esta situación sólo tiene lugar mientras la velocidad del vehículo sólo tenga componente longitudinal, es decir, cuando este circula en línea recta. En el momento en el que tome una curva siempre aparecerá la componente transversal, siendo el objetivo del control de estabilidad hacer que esta sea lo más pequeña posible. 𝛽𝑟𝑒𝑓 =0 (4.13) En cuanto a las fuerzas laterales que soportan las ruedas del vehículo se pueden encontrar dos maneras de calcularla en la documentación previa del proyecto FOX. La primera de ellas se basa en el modelo lineal del neumático, donde la rigidez lateral del mismo (𝐶𝑥) relaciona la fuerza lateral que este soporta con su ángulo de deslizamiento (𝛼𝑥). 𝐹𝑦𝑥 = 𝐶𝑥∙𝛼𝑥 (4.14) Otro método es el propuesto en [11], que consiste en aproximar las fuerzas laterales que soporta cada eje del vehículo a partir de la derivación de las ecuaciones dinámicas que rigen el movimiento del modelo anterior. De esta forma se obtienen las siguientes expresiones: 𝐹𝑦𝑓 = 𝐽𝑍𝑍𝑟󰇗+𝑚𝑎𝑦𝑏 𝐿𝑐𝑜𝑠(𝛿) (4.15) 𝐹𝑦𝑟 = −𝐽𝑍𝑍𝑟󰇗+𝑚𝑎𝑦𝑎 𝐿 (4.16) Donde 𝐽𝑍𝑍 es el momento de inercia del vehículo, 𝑟󰇗 es la derivada del yaw rate y el resto de elementos son ya conocidos o corresponden a las dimensiones del vehículo en cuestión. Una vez conocidas las fuerzas laterales que soporta cada eje del vehículo se estima la soportada por cada neumático del mismo mediante un factor que pondera la carga vertical aplicada sobre la rueda con la que soporta el eje completo. En la expresión siguiente se muestra como ejemplo el cálculo de esta fuerza para una de las ruedas, siendo la fórmula igual para el resto: Control y dinámica del automóvil 32 𝐹𝑦𝐹𝐿 = 𝐹𝑦𝑓∙𝐹𝑍𝐹𝐿 𝐹𝑍𝐹𝐿+𝐹𝑍𝐹𝑅 (4.17) Donde 𝐹𝑦𝐹𝐿 es la fuerza lateral transmitida por el neumático delantero izquierdo y 𝐹𝑍𝐹𝐿 y 𝐹𝑍𝐹𝑅 son las cargas verticales aplicadas sobre los neumáticos delanteros izquierdo y derecho respectivamente. 33 33 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas 5 CONTROLES DE TRACCIÓN Y ESTABILIDAD IMPLEMENTADOS EN EL FOX Son varias las estrategias de control que se desarrollaron para el vehículo FOX durante los años previos a la realización de este trabajo y en este capítulo se lleva a cabo una breve explicación de aquellas que son analizadas en él. Con esto se pretende que el lector comprenda los códigos necesarios para implementarlas en la ECU y tenga una referencia a la que poder acudir una vez que se analicen los resultados obtenidos en las pruebas de las mismas. 5.1 Controles de tracción Se incluyen dentro de este apartado las estrategias de control de tracción propuestas por José Carlos Alonso durante la realización de su trabajo fin de grado [4]. Estas tienen como único objetivo evitar el deslizamiento de los neumáticos durante la aceleración del vehículo, para lo que se plantearon dos técnicas diferentes que fueron probadas en simulación y cuya implantación en el FOX se encontraba en proceso, por lo que no se disponía de ningún ensayo real documentado. 5.1.1 Elipsoide de tracción (Estimación de la máxima fuerza transmisible) El comportamiento del neumático frente a la aplicación combinada de la fuerza longitudinal y transversal que aparece en la superficie de contacto con el suelo (véase apartado 4.3.3) se recoge en la denominada “elipse o elipsoide de tracción”. Esta es una representación gráfica que muestra la capacidad de generación de esfuerzos del neumático, la cual es limitada y cuyo valor total corresponde a la suma de los esfuerzos longitudinal y transversal. Al presentar la mayoría de los neumáticos una mayor capacidad de generación de esfuerzos en la dirección longitudinal, se obtiene la forma elíptica característica que se muestra en la Figura 5.1 [12]. Figura 5.1: Elipse de tracción del neumático [12] Controles de tracción y estabilidad implementados en el FOX 34 La primera de las estrategias de control se basa en la estimación del máximo esfuerzo transmisible por el neumático como el producto de la carga vertical soportada por este y el coeficiente de fricción entre el neumático y la superficie de apoyo. De esta forma, el módulo de la fuerza transmitida por el neumático debe ser menor que dicho valor límite, es decir, el esfuerzo debe estar contenido dentro de la elipse de tracción o, de lo contrario, se producirá una situación de deslizamiento. 𝜇∙𝐹𝑧≥√𝐹𝑥2+𝐹𝑦2 (5.1) Donde 𝜇 es el coeficiente de fricción, 𝐹𝑧 la carga vertical soportada por el neumático y 𝐹𝑥 y 𝐹𝑦 las componentes longitudinal y transversal de la fuerza transmitida por el mismo. El coeficiente de fricción se estimará según la expresión (4.10), la fuerza vertical soportada por la rueda según las expresiones (4.1)-(4.4) y la aplicada en la dirección transversal de la misma según (4.17). A partir de la expresión anterior se puede despejar el valor de la componente longitudinal de la máxima fuerza transmisible, que es la utilizada para calcular el par máximo aplicable en las ruedas: 𝑇𝑙í𝑚𝑖𝑡𝑒 = 𝑟𝐹𝑥𝑙𝑖𝑚 (5.2) Siendo 𝑇𝑙í𝑚𝑖𝑡𝑒 el par máximo que el motor podría aplicar sobre la rueda correspondiente sin provocar el deslizamiento de esta, 𝑟 el radio del neumático y 𝐹𝑥𝑙𝑖𝑚 la componente longitudinal de la fuerza máxima que este podría transmitir. Debido a las aproximaciones utilizadas para calcular los parámetros empleados en esta técnica de control y la dificultad que entraña estimar el comportamiento del neumático en función del tipo de suelo, el par máximo transmisible obtenido puede estar por encima del valor real y su aplicación puede provocar el deslizamiento de la rueda. Para solucionar este problema se incluye la siguiente corrección: 𝑇𝑙í𝑚𝑖𝑡𝑒 = 𝑟𝐹𝑥𝑙𝑖𝑚−𝐾𝑒𝑠𝑙𝑖𝑝 (5.3) Donde 𝐾 es un parámetro ajustable y 𝑒𝑠𝑙𝑖𝑝 es el error de deslizamiento, definido como: 𝑒𝑠𝑙𝑖𝑝 = {𝜆𝑟𝑒𝑓 − 𝜆 𝑠𝑖 𝜆𝑟𝑒𝑓 <𝜆 0 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜 (5.4) Donde 𝜆 es el slip rate del neumático (expresión ( 4.5)) y 𝜆𝑟𝑒𝑓 será el valor deseado para este parámetro, que según se observó en la Figura 4.9 se encontrará en torno al 0.2. 5.1.2 MTTE (Estimación del máximo par transmisible) Esta técnica se basa en calcular el par máximo transmisible por cada rueda a partir de su velocidad de giro y del par que demanda el conductor a través del acelerador. Esto hace que no sea necesario ningún otro sensor que aporte información como la aceleración o la velocidad del vehículo ni tampoco determinar la relación entre el neumático y la superficie de apoyo, como sí ocurría en la estrategia anterior [13]. Cuando tiene lugar el deslizamiento de un neumático, la diferencia entre la velocidad del vehículo y la de la rueda es cada vez mayor, o lo que es lo mismo, la aceleración de la rueda es mayor que la del vehículo. Teniendo en cuenta esto, la condición para que no ocurra el deslizamiento o para que este no vaya en aumento sería mantener ambas aceleraciones parejas, cuya relación se expresa mediante el parámetro denominado “factor de relajación”: 𝛼= 𝑣󰇗 𝑣𝑤 󰇗 (5.5) Donde 𝑣󰇗 es la aceleración del vehículo y 𝑣𝑤 󰇗 la de la rueda. El parámetro anterior se fijará en un valor constante a la hora de estimar el par máximo transmisible y deberá tener un valor próximo a la unidad, lo que significaría que ambas aceleraciones se mantienen similares y, por 35 35 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas tanto, el deslizamiento es reducido. Cabría pensar que la situación ideal es que valiera exactamente uno, pero tal y como se observa en la Figura 4.9, debe existir cierta diferencia entre ambas aceleraciones para que se genere la fuerza de fricción necesaria que otorga la tracción al neumático. Teniendo en cuenta lo anterior, se calcula el par máximo transmisble a partir de la siguiente expresión: 𝑇𝑚á𝑥 =( 𝐽𝑤 𝛼𝑀𝑟2+1)𝑟𝐹𝑑 (5.6) Donde 𝐽𝑤 es la inercia de la rueda, 𝑟 su radio, 𝑀 la masa del vehículo y 𝐹𝑑 la fuerza de fricción que aparece entre el neumático y el suelo. Tal y como se muestra en el artículo citado al final del primer párrafo, a partir de las ecuaciones dinámicas del movimiento longitudinal del vehículo, el único tratado en este caso, se obtiene la forma de calcular la fuerza de fricción aparecida en la expresión anterior a partir del par demandado por el acelerador del vehículo y la velocidad angular de la rueda. 𝐹𝑑=𝑇𝑑𝑒𝑚𝑎𝑛𝑑𝑎𝑑𝑜 −𝐽𝑤𝜔󰇗 𝑟 (5.7) Cuando se produce el deslizamiento del neumático, su velocidad angular (𝜔󰇗) se incrementa y esto provoca la disminución del valor de la fuerza de fricción (𝐹𝑑). Debido a este hecho y a la fijación del factor de relajación (𝛼) en un valor constante, el par máximo transmisible estimado (𝑇𝑚á𝑥) también se ve reducido, por lo que aplicando este a la rueda en vez del demandado por el conductor se consigue reducir su deslizamiento. 5.2 Control de estabilidad basado en ganancias Este controlador fue desarrollado por Miguel Navas [14] con el objetivo de conseguir una vectorización del par mediante el ajuste de dos ganancias, cada una de ellas dedicada a corregir un aspecto del comportamiento del vehículo. De esta forma, el par demandado por el conductor a través del pedal del acelerador es modificado, para cada rueda, de la siguiente manera: 𝑇𝑎𝑝𝑙𝑖𝑐𝑎𝑑𝑜 = 𝐾𝑡𝑟𝑎𝑐𝑐𝑖ó𝑛 ∙𝐾𝑒𝑠𝑡𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑∙𝑇𝑑𝑒𝑚𝑎𝑛𝑑𝑎𝑑𝑜 (5.8) Se trata de un controlador bastante simple que, a parte de requerir un tiempo de computación reducido, permite un ajuste más sencillo mediante pruebas reales que el resto de las estrategias de control. 5.2.1 Ganancia de tracción El cálculo de esta ganancia se basa en el hecho de que cuanto mayor sea la carga vertical que soporta la rueda, mayor es la capacidad de tracción de la que dispone (véase apartado 4.3.3). El cálculo de este parámetro para cada unas de las ruedas se haría como sigue a continuación: 𝐾𝑡𝑟𝑎𝑐𝑐𝑖ó𝑛 =4∙𝐾𝑡∙𝐹𝑧 𝑚 (5.9) Donde 𝐾𝑡 es un parámetro ajustable, 𝑚 la masa del vehículo y 𝐹𝑧 la fuerza vertical soportada por la rueda en cuestión (expresiones (4.1)-(4.4)). Se observa que el único parámetro variable que interviene en la expresión es la carga vertical soportada por el neumático. Esto hace que cuánto mayor sea este, mayor sea la ganancia para la rueda en cuestión y mayor también el par aplicado sobre ella. Controles de tracción y estabilidad implementados en el FOX 36 5.2.2 Ganancia de estabilidad Esta ganancia se diseña para corregir los errores de yaw rate del vehículo, es decir, modifica su trayectoria cuando este sufre una situación de inestabilidad (subviraje o sobreviraje). 𝐾𝑒𝑠𝑡𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑𝐹𝐿 =1−𝐾𝑃∙𝑒𝑟 (5.10) 𝐾𝑒𝑠𝑡𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑𝑅𝐿 =1−𝐾𝑃∙𝑒𝑟 (5.11) 𝐾𝑒𝑠𝑡𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑𝑅𝑅 =1+𝐾𝑃∙𝑒𝑟 (5.12) 𝐾𝑒𝑠𝑡𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑𝐹𝑅 =1+𝐾𝑃∙𝑒𝑟 (5.13) Donde 𝐾𝑃 es un parámetro ajustable y 𝑒𝑟 representa el error en yaw rate. El error en yaw rate se define como 𝑒𝑟=𝑟𝑑𝑒𝑠 −𝑟, donde el primer término se corresponde con la referencia de yaw rate estimada según el ángulo de giro del volante (exprexión (4.11)) y el segundo con el yaw rate actual del vehículo medido a través de la IMU. Para entender el funcionamiento de esta ganancia y el por qué de los signos empleados para su cálculo aparece explicado en [14] como funcionaría esta en un caso de sobreviraje, cuya interpretación puede aplicarse de igual manera al subviraje. La comprensión de esta idea resulta de interés ya que se repite en varios de los controladores actualmente implementados en el FOX. 5.2.3 Corrección del deslizamiento A la ganancia anterior se le aplica una corrección con el objetivo de reducir el deslizamiento del neumático en caso de que este supere un cierto umbral. Cuando esto ocurre se aplica la expresión mostrada a continuación, lo que provoca la reducción de la ganancia de estabilidad y la consiguiente disminución del par aplicado sobre la rueda en cuestión, lo que debería disminuir el deslizamiento de la misma. 𝐾𝑒𝑠𝑡𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 =𝐾𝑒𝑠𝑡𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 ∙1 𝐾𝑑∙ 𝑠𝑙𝑖𝑝 𝑟𝑎𝑡𝑒 (5.14) Donde 𝐾𝑑 es un parámetro ajustable. Con la idea de evitar la activación y desactivación continuada de esta corrección, se introduce una histéresis. Esto podría ocurrir en caso de que los valores del deslizamiento estuvieran constantemente en torno al umbral de activación y daría lugar a sensaciones indeseadas durante la conducción del vehículo. De esta forma, la corrección se aplicará siguiendo el siguiente esquema: • slip rate > umbral (U) + histéresis (epsilon): Se aplica corrección. • slip rate < umbral (U) – histéresis (epsilon): No se aplica corrección. • umbral (U) – histéresis (epsilon) < slip rate < umbral (U) + histéresis (epsilon): Se sigue actuando como se hacía anteriormente. Es decir, si se estaba aplicando la corrección se sigue haciendo y si no es así, sigue sin aplicarse. Figura 5.2: Histéresis de la corrección del deslizamiento 37 37 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas 6 PRUEBAS REALIZADAS Y RESULTADOS En este capítulo se muestran los resultados de las pruebas que son considerados de interés, así como algunas observaciones que pueden ser de utilidad para los próximos trabajos que se realicen con el vehículo FOX. Cabe recordar que los controladores que no han sido analizados en este documento están disponibles junto con las conclusiones y resultados extraídos de los mismos en el trabajo realizado por Juan Carlos Fraile [6]. 6.1 Zona de pruebas Para llevar a cabo las pruebas es necesario disponer de un espacio abierto que permita la realización de las diferentes maniobras con garantías de seguridad. En este caso, al igual que ocurrió en los trabajos previos realizados para el proyecto FOX, el único espacio disponible en la E.T.S.I. de Sevilla con estas características eran las pistas deportivas. Esta superficie cuenta con algunas peculiaridades que influyen enormemente en el comportamiento del vehículo. Primero de todo, la adherencia que presentan los neumáticos en este tipo de suelo es bastante menor que la que tendrían en asfalto, además de que esta parece no ser homogénea a lo largo de toda la superficie, existiendo puntos donde la tendencia al deslizamiento es mayor que en otros. Por otro lado, las dimensiones de la pista no permiten alcanzar velocidades demasiado elevadas, especialmente el ancho de la misma, que unido a la tendencia al subviraje que presenta el vehículo hace que en ocasiones no se disponga de espacio suficiente para realizar un giro completo. Figura 6.1: Zona de pruebas. Imagen extraída de: www.google.es Pruebas realizadas y resultados 38 6.2 Control de estabilidad basado en ganancias Las maniobras que se han utilizado para comprobar el funcionamiento de los controles de estabilidad están basadas en la prueba conocida como SKIDPAD. Esta consiste en trazar una trayectoria parecida a la que se muestra en la Figura 6.2 5 , donde se realizan dos giros concéntricos en un lado de la pista y después se repite la operación en el otro extremo, pero esta vez en sentido contrario. Dicho de otra forma, el vehículo debe describir un “ocho” sobre el suelo pasando dos veces consecutivas por cada circunferencia. Decidió emplearse esta prueba ya que es la que ofrece mayor información sobre la dinámica lateral del vehículo teniendo en cuenta las limitaciones de espacio que tiene la pista donde se realizó. En la figura se ha representado la trazada oficial de la Formula Student, competición que pone a prueba todos los años los monoplazas desarrollados por varias universidades de todo el mundo, aunque se ha añadido únicamente como ayuda para visualizar mejor la maniobra elegida, ya que no se tuvieron en cuenta ni las dimensiones oficiales ni la normativa vigente para llevar a cabo estas pruebas. El código utilizado para implementar este controlador se muestra a continuación, donde aparece destacada una de las modificaciones necesarias para su correcto funcionamiento. Esta consiste en la desactivación del control sobre el deslizamiento del vehículo (apartado 5.2.3) y será tratada en el apartado 0. Código 6.1: Código implementado para el control de estabilidad basado en ganancias /*Referencia de yaw rate*/ yr_des_miguel=(-1)*(velocidad*steering_angle_filtrado[0])/(DIST_EJES_LX +((MASS_FOX/DIST_EJES_LX)*((DIST_R_LX/CF)-(DIST_F_LX/CR))*(pow(velocidad,2)))); /*Error*/ error_yr_miguel=yr_des_miguel-yaw_rate; /*Calculo de la ganancia del control de nivel de traccion*/ K_tracc_RL=(4*Kt_miguel*Fz_RL)/MASS_FOX; K_tracc_FL=(4*Kt_miguel*Fz_FL)/MASS_FOX; K_tracc_RR=(4*Kt_miguel*Fz_RR)/MASS_FOX; K_tracc_FR=(4*Kt_miguel*Fz_FR)/MASS_FOX; 5 Imagen extraída de las normas oficiales de la Formula Student del año 2019: https://www.fsaeonline.com Figura 6.2: Trayectoria de la prueba SKIDPAD 39 39 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas /*Calculo de la ganancia del control de estabilidad*/ K_est_FL=1-Kp_miguel*error_yr_miguel; K_est_RL=1-Kp_miguel*error_yr_miguel; K_est_FR=1+Kp_miguel*error_yr_miguel; K_est_RR=1+Kp_miguel*error_yr_miguel; //Acotación entre 0 y 1 if(K_est_FL<0) K_est_FL=0; if(K_est_RL<0) K_est_RL=0; if(K_est_FR<0) K_est_FR=0; if(K_est_RR<0) K_est_RR=0; if(K_est_FL>1) K_est_FL=1; if(K_est_RL>1) K_est_RL=1; if(K_est_FR>1) K_est_FR=1; if(K_est_RR>1) K_est_RR=1; /*Control sobre el pseudodeslizamiento de las ruedas. Incluyendo Histéresis*/ if(pseudodes[0]>umbral_miguel+eps) correccion_desliz_RL[0]=(1/Kd_miguel*pseudodes[0]); if(pseudodes[1]>umbral_miguel+eps) correccion_desliz_FL[0]=(1/Kd_miguel*pseudodes[1]); if(pseudodes[2]>umbral_miguel+eps) correccion_desliz_RR[0]=(1/Kd_miguel*pseudodes[2]); if(pseudodes[3]>umbral_miguel+eps) correccion_desliz_FR[0]=(1/Kd_miguel*pseudodes[3]); if(pseudodes[0]<umbral_miguel-eps) correccion_desliz_RL[0]=1; if(pseudodes[1]<umbral_miguel-eps) correccion_desliz_FL[0]=1; if(pseudodes[2]<umbral_miguel-eps) correccion_desliz_RR[0]=1; if(pseudodes[3]<umbral_miguel-eps) correccion_desliz_FR[0]=1; if(umbral_miguel-eps<pseudodes[0]<umbral_miguel+eps){ correccion_desliz_RL[0]=correccion_desliz_RL[1]; } if(umbral_miguel-eps<pseudodes[1]<umbral_miguel+eps){ correccion_desliz_FL[0]=correccion_desliz_FL[1]; } if(umbral_miguel-eps<pseudodes[2]<umbral_miguel+eps){ correccion_desliz_RR[0]=correccion_desliz_RR[1]; } if(umbral_miguel-eps<pseudodes[3]<umbral_miguel+eps){ correccion_desliz_FR[0]=correccion_desliz_FR[1]; } /************** Modificación necesaria ***************/ //Control de deslizamiento desactivado correccion_desliz_RL[0]=1; correccion_desliz_FL[0]=1; correccion_desliz_RR[0]=1; correccion_desliz_FR[0]=1; K_est_RL=K_est_RL*correccion_desliz_RL[0]; K_est_FL=K_est_FL*correccion_desliz_FL[0]; K_est_RR=K_est_RR*correccion_desliz_RR[0]; K_est_FR=K_est_FR*correccion_desliz_FR[0]; /**********************************************************/ correccion_desliz_RL[1]=correccion_desliz_RL[0]; correccion_desliz_FL[1]=correccion_desliz_FL[0]; correccion_desliz_RR[1]=correccion_desliz_RR[0]; correccion_desliz_FR[1]=correccion_desliz_FR[0]; Pruebas realizadas y resultados 46 Durante las pruebas que se llevaron a cabo de esta manera, el comportamiento del vehículo no era predecible. La demanda de par a los motores por parte del controlador se hacía de forma errónea e intermitente, lo que hacía que el vehículo experimentara aceleraciones súbitas de muy corta duración que provocaban sacudidas. Se pensó que el problema podría darse únicamente en el momento de arrancar desde parado, por lo que se introdujo un umbral de activación en función de la velocidad del coche para esta parte del control. También se realizaron diversas pruebas variando de todas las maneras posibles los parámetros referentes a esta parte del controlador, el umbral de activación e histéresis y el peso, pero en ningún caso se obtuvieron resultados positivos. Por otro lado, en algunos trabajos previos se planteó una prueba diferente a la que se ha utilizado en este para evaluar el comportamiento de los controladores. Esta consistía en avanzar con el vehículo a una velocidad constante y realizar después un giro brusco. Esta maniobra fue utilizada en varias ocasiones para ajustar el controlador que aquí se trata y se detectó mientras tanto un problema que se dejará documentado para que se tenga en cuenta en trabajos futuros. Se realizaron varias pruebas donde se daban vueltas a la pista siempre en la misma dirección, por lo que el volante se giraba hacia un lado y después volvía a su posición central. Al representar los resultados de dichas pruebas se observaba que la referencia del yaw rate no se calculaba de manera correcta. Cuando el vehículo terminaba de girar y volvía a encarar una recta, la referencia, que debería ser cero, era calculada como si el vehículo estuviera girando hacia el otro lado, mientras que el yaw rate medido por la IMU sí era correcto y marcaba ese valor. El fallo anterior se debe a la estimación del steering angle o ángulo de giro de las ruedas delanteras, dato que se utiliza para calcular la referencia de yaw rate. Dicha estimación se hace a partir de los valores máximos y mínimos de tensión leídos por el potenciómetro instalado en el volante. Si solo realizamos giros hacia un lado, la izquierda en el caso de ejemplo, y devolvemos después el volante a la la posición central durante varias veces, en la calibración del volante se termina detectando como valor máximo de tensión el que ofrece el potenciómetro cuando el volante se encuentra en el centro. Esto hace que el giro de las ruedas sea calculado como aparece en la Figura 6.14, lo cual no tiene sentido ya que no se están girando hacia ambos lados, sólo hacia la izquierda. La solución a este problema es sencilla y consiste en girar el volante al máximo hacia ambos lados antes de realizar una prueba de este tipo, para que los valores máximos y mínimos utilizados en la calibración sean reconocidos correctamente. Figura 6.13: Error en el cálculo de la referencia de yaw rate 47 47 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas 6.3 Controles de tracción En cuanto a las modificaciones que fueron necesarias introduducir en la implementación de los controles de tracción, cabe hacer mención a una referente a la estrategia basada en MTTE. En la versión 30.14 del código, el parámetro α, denominado factor de relajación (véases apartado 5.1.2), no era definido como una constante, si no que se calculaba según la expresión (5.5). En la estrategia original, a ese factor se le debe asignar un valor constante próximo a uno, ya que es esto precisamente lo que permite que las velocidades del chásis y la rueda no difieran demasiado y por tanto, no se produzca el deslizamiento. De esta forma, fue esta la única modificación que hubo que realizar para que el código fuera fiel al algoritmo de control planteado originalmente. En cuanto a las pruebas realizadas, se mostrarán a continuación los resultados obtenidos durante una prueba de aceleraciones. Estas consisten en aplicar una aceleración repentina al vehículo mientras este circula a una velocidad constante y en línea recta. El objetivo es que ese incremento de par aplicado sobre los neumáticos provoque el deslizamiento de estos y comprobar así si el controlador es capaz de evitarlo. Tras la realización de muchas pruebas en las que se calcularon los deslizamientos del neumático de varias formas, los resultados obtenidos fueron los que se muestran en la página siguiente. La primera de las gráficas corresponde al deslizamiento medido justo en el momento de aplicar el incremento de par cuando el control está desactivado y el segundo exactamente lo mismo pero aplicando el MTTE. En un primer momento se pensó que estos resultados eran válidos, ya que se aprecia como desaparecen los picos de deslizamiento producidos justo en el momento de la aceleración. No obstante, después de muchas pruebas en las que se variaron las formas de calcular el deslizamiento, la velocidad inicial a la que circulaba el vehículo en el momento de aplicar el incremento de aceleración, realizar las pruebas con diferentes factores de relajación e incluso realizar la misma prueba sobre una superficie diferente, se observó que los resultados eran siempre exactamente igual. Es decir, la gráfica del slip rate adoptaba exactamente la misma forma siempre para el caso sin control. El hecho anterior ha llevado a pensar que dichos resultados no se ajustan a la realidad, sino más bien a los cálculos que al algoritmo lleva a cabo, que hacen que los valores calculados del deslizamiento adopten una forma u otra en función de si se aplica o no la estrategia de control. A parte de esto, las pruebas intentaban realizarse siempre durante la misma distancia, es decir, se tomaban dos líneas de la pista como referencia para comenzar acelerar y frenar. Si el control de deslizamiento funcionara correctamente, podría pasar que al tratarse de una distancia corta el vehículo alcanzara mayor velocidad por la mayor tracción que adquieren los neumático en el punto de salida. Sin embargo, esto tampoco ocurre. Figura 6.14: Fallo en el cálculo del steering angle Pruebas realizadas y resultados 48 Figura 6.15: Slip rate sin control en prueba de aceleración Figura 6.16: Slip rate con control en prueba de aceleración 49 49 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas 7 CONCLUSIONES Y TRABAJO FUTURO En primer lugar, se muestran las conclusiones extraídas de la estrategia de control de estabilidad cuyos resultados han sido desarrollados en el capítulo anterior. En este se indicó que mientras el error de yaw rate durante la realización de pruebas sin control llegaba a alcanzar los ±0.8 rad/s, cuando se repetían dichas pruebas con el control de estabilidad activado difícilmente alcanzaba los ±0.3 rad/s. En cuanto al error relativo, las pruebas sin control oscilaban la mayor parte del tiempo entre el 30% y el 40%, aunque en algunas de ellas las cifras eran bastante mayores, mientras que en las pruebas con el control activado este era mucho más constante y oscilaba en torno al 20%. Tabla 7.1: Comparativa de errores obtenidos en las pruebas Controlador Error absoluto (rad/s) Error relativo (%) Sin control ±0.8 40-100 Con control ±0.3 ~20 Estos datos pretenden ser orientativos y demostrar que, efectivamente, el control de estabilidad cumple su función y reduce el error en yaw rate. Comparando estos resultados con los obtenidos por Juan Carlos Fraile [6] durante las pruebas realizadas con el resto de las estrategias de control de estabilidad, se comprueba que todas aportan resultados similares. Datos a parte, se considera de importancia reflejar las sensaciones que este controlador aportaba durante la conducción. En primer lugar, hay que destacar que una vez se encontraban los parámetros que conseguían un buen funcionamiento de este, el comportamiento del vehículo mejoraba notablemente en el paso por curva y esto era perceptible por el piloto. De igual manera, el rango en el que dichos parámetros ofrecían un buen comportamiento no era muy grande, y las variaciones de los mismos dentro de ese espectro no aportaban mejorías notables. Lo que se pretende decir en el párrafo anterior es que, aunque la estrategia de control probada presenta un funcionamiento bastante correcto, que incluso es perceptible durante la conducción del vehículo, se intuye complicado ajustar los parámetros de forma que esta ofrezca resultados mucho mejores. No obstante, cabe resaltar que sólo se pudo realizar una prueba SKIDPAD como tal, es decir, una en la que se seguía una trayectoria definida y a partir de la cual es más fácil observar diferencias de comportamiento. Los parámetros empleados en esta prueba fueron los determinados a partir de pruebas anteriores que no tenían como objetivo el ajuste del controlador, si no más bien realizar comprobaciones sobre diversos aspectos del mismo. Lo que se pretende decir con esto es que es posible que realizando pruebas específicas de ajuste de parámetros se pueda encontrar un mejor comportamiento de este controlador. Conclusiones y trabajo futuro 50 El motivo por el cual no pudieron realizarse más pruebas de ajuste de parámetros del controlador anterior fueron los problemas mecánicos que presentó el FOX hacia el final de este trabajo. Estos tuvieron otra consecuencia en lo que respecta al cuplimiento de objetivos de este, ya que no permitieron llevar a cabo el análisis de otra estrategia de control de estabilidad que en un principio estaba pensado hacerse. De esta forma, la primera propuesta de trabajo futuro consistirá en realizar las pruebas de dicha estrategia, la cual está basada en un control predictivo basado en modelo, y documentarlas de forma que se disponga de una comparativa completa de todos los controladores implementados en el FOX. Pasando ahora a los controles de tracción, tal y como se explicó en el apartado correspondiente, los resultados obtenidos no se consideran válidos. Tras realizar un considerable número de pruebas diferentes, las gráficas de deslizamiento y par aplicado no afrecían variación alguna, considerando dichos resultados producto del tratamiento que el programa hace de los datos obtenidos de los cálculos. A parte de esto, una prueba del correcto funcionamiento del control podría haber sido la observación de una mayor velocidad alcanzada por el vehículo al final de la prueba. Al realizarse estas en distancias cortas, con una longitud aproximadamente igual, el hecho de reducir el deslizamiento de los neumáticos podría haber supuesto una mejora en ese aspecto. Pero tal y como se explicó en el capítulo anterior, tampoco fue el caso. En cuanto a este apartado, la propuesta de trabajo futuro estaría enfocada a tratar de conseguir unas mejores medidas de la velocidad angular de los neumáticos, ya que se considera que la velocidad del chásis, proporcionada por la IMU, es lo suficientemente precisa y estable. Además, podría plantearse otro tipo de experimento que permitiera obtener unos resultados más fiables. 51 51 Control de tracción y estabilidad para un vehículo eléctrico con motores en las ruedas 53 REFERENCIAS [1] ACEA, «New passenger car registrations by fuel type,» 8 Mayo 2019. [En línea]. Available: http://www.acea.be. [Último acceso: 10 Septiembre 2019]. [2] Parlamento Europeo, «European Parliament,» 18 Marzo 2019. [En línea]. Available: http://www.europarl.europa.eu/news/en/headlines/society/20190313STO31218/co2-emissions-from- cars-facts-and-figures-infographics. [Último acceso: 10 Septiembre 2019]. [3] Consejo de la Unión Europea, «Consejo Europeo - Comunicados de prensa,» 16 Enero 2019. [En línea]. Available: https://www.consilium.europa.eu/es/press/press-releases/2019/01/16/co2-emission-standards- for-cars-and-vans-council-confirms-agreement-on-stricter-limits/. [Último acceso: 10 Septiembre 2019]. [4] J. C. Alonso Cañizal, Implementación de control de tracción en vehículos eléctricos con tracción integral, Sevilla: Universidad de Sevilla, 2015. [5] D. Marcos Rodríguez, Contributions to power management and dynamics control in hybrid vehicles, Sevilla: Universidad de Sevilla, 2014. [6] J. C. Fraile García, Control de la dinámica de vehículos eléctricos con motores en las ruedas, Sevilla: Universidad de Sevilla, 2019. [7] K. Jalali, Stability Control of Electric Vehicles with In-wheel Motors, Waterloo, Ontario: University of Waterloo, 2010. [8] U. Kiencke y L. Nielsen, Automotive control systems for engine, driveline and vehicle, Segunda ed., Springer, 2005. [9] T. K. Bera, A. Samantaray y K. Bhattacharya, «Evaluation of antilock braking system with an integrated model of full vehicle system dynamics,» Simulation Modelling Practice and Theory, vol. IX, nº 10, pp. 2131-2150, Noviembre 2011. [10] D. Chindamo, B. Lenzo y M. Gadola, «On the Vehicle Sideslip Angle Estimation: A Literature Review of Methods, Models,and Innovations,» Applied Sciences, vol. VIII, nº 3, p. 355, Marzo 2018. [11] S.-Y. Ko, J.-W. Ko, S.-M. Lee, J.-S. Cheon y H.-S. Kim, «A study on in-wheel motor Control to improve vehicle stability using human-in-the-loop simulation,» Journal of power electronics, vol. XIII, nº 4, pp. 536-545, Julio 2013. [12] C. Heras, Estudio del comportamiento dinámico de la banda de rodadura de un neumático, Madrid: Universidad Carlos III de Madrid, 2010. [13] D. Yin y Y. Hori, «A novel traction control without chassis velocity for electric vehicles,» World Electric Vehicle Journal, vol. III, nº 2, pp. 282-288, Mayo 2009. [14] M. Navas Alcántara, Diseño de controladores para vehículo eléctrico con cuatro motores en rueda, Sevilla: Referencias 54 Universidad de Sevilla, 2017. [15] G. Hernández Rodríguez, Control de estabilidad basado en MPC para un vehículo eléctrico con motores en rueda, Sevilla: Universidad de Sevilla, 2015. [16] M. Choi y S. B. Choi, Model Predictive Control for Vehicle Yaw Stability with Practical Concerns, 2014. [17] K. Jalali, S. Lambert, J. Mcphee y T. K. Uchida, «Development of an Advanced Torque Vectoring Control System for an Electric Vehicle with In-Wheel Motors using Soft Computing Techniques,» SAE International Journal of Alternative Powertrains, vol. II, pp. 261-278, Abril 2013. 55