Uploaded by Juan Miguel Manrique Cruz

N1-Telemetria-Enunciado

advertisement
Nivel 1 – Proyecto
Telemetría en la Fórmula 1
Objetivo general
El objetivo general de este proyecto es que usted practique los conceptos estudiados en el nivel 1 del
curso.
Recuerde que este proyecto debe realizarse de forma completamente individual.
Objetivos específicos
1. Crear funciones.
2. Llamar funciones con parámetros.
3. Llamar funciones desde otras funciones (composición de funciones).
4. Crear y usar un módulo.
5. Probar las funciones de un módulo.
6. Construir interfaces de usuario basadas en consola.
Para lograr lo anterior, en este proyecto se va a crear una aplicación que permite hacer cálculos de
telemetría para el caso de la Fórmula 1.
Contexto
Telemetría en la Fórmula 1
Desde hace varias décadas se ha venido implementando el uso de sensores y servicios de monitoreo
para recopilar datos relacionados con un problema específico. Deportes tales como las carreras de
autos, específicamente la Fórmula 1, no son la excepción. La telemetría es la medición y control de
variables físicas o químicas a través de datos que llegan a una central de control, y ha sido una
herramienta fundamental para mejorar el desempeño de los equipos y sus autos.
Los equipos se han dedicado a obtener información con ayuda de sensores, tanto externos como
internos al vehículo, para calcular diferentes variables relacionadas a su desempeño.
Radares de velocidad
Uno de los sensores más antiguos que se ha usado es el radar de velocidad por radiofrecuencias. Este
hace uso de fenómenos físicos como el efecto Doppler para el cálculo de la velocidad del vehículo. Los
radares de velocidad utilizan la siguiente ecuación para calcular la velocidad (en km/h) de un cuerpo en
movimiento:
𝛥𝑓 𝑐
∗ 3.6
𝑓 2
Donde Δ𝑓 es diferencia entre la frecuencia emitida y la recibida por el radar en KHz, 𝑓 es la frecuencia
𝑚
que emite el radar en GHz y 𝑐 la constante de la velocidad de la luz que equivale a 3 ∗ 108 𝑠 .
𝑣𝑒𝑙 =
Veamos este concepto aplicado a un ejemplo concreto. Suponga que el radar emite ondas a una
frecuencia de 10.6 GHz y recibe ondas a una diferencia de frecuencia de 0.981 KHz. Tenemos que:
𝑣𝑒𝑙 =
0.981 ∗ 103 3 ∗ 108
∗ 3.6 = 49.98 𝑘𝑚/ℎ
10.6 ∗ 109
2
Nótese que se realizó conversión de unidades (KHz a Hz, y GHz a Hz) utilizando notación científica
(0.981*103 y 10.6*109) lo cual en Python podría realizarse de la siguiente forma: 0.981e3 y 10.6e9 para
que sea más fácil de escribir en el código.
Velocidad a partir de las revoluciones por minuto
Otra técnica utilizada para calcular la velocidad (en km/h) de los vehículos es utilizar sensores que
midan las revoluciones por minuto de las llantas y las transmitan a una unidad de cómputo que utiliza
la siguiente ecuación:
𝑟𝑝𝑚𝑙𝑙𝑎𝑛𝑡𝑎𝑠 ∗ 𝑑𝑖𝑎𝑚𝑒𝑡𝑟𝑜𝑙𝑙𝑎𝑛𝑡𝑎𝑠 ∗ 𝜋 ∗ 60
𝑣𝑒𝑙𝑟𝑝𝑚 =
1000
Donde 𝑟𝑝𝑚𝑙𝑙𝑎𝑛𝑡𝑎𝑠 son las revoluciones por minuto de las llantas y 𝑑𝑖𝑎𝑚𝑒𝑡𝑟𝑜𝑙𝑙𝑎𝑛𝑡𝑎𝑠 el diámetro de las
llantas del vehículo en metros.
Veamos este concepto aplicado a un ejemplo concreto. Suponga que las llantas del vehículo van a 877
revoluciones por minuto y el diámetro de las llantas es de 0.58 metros. Tenemos que:
𝑣𝑒𝑙𝑟𝑝𝑚 =
877 ∗ 0.58 ∗ 𝜋 ∗ 60
= 95.83 𝑘𝑚/ℎ
1000
Tenga en cuenta que para π se utilizó un valor de 3.14
Distancia a partir de la velocidad
Es posible calcular la distancia (en km) que se desplaza un vehículo si este va a una velocidad
constante, con lo que los equipos pueden estimar la distancia que va a recorrer el vehículo y hacerle
seguimiento. Para ello se utiliza la siguiente fórmula:
𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = 𝑣𝑒𝑙𝑟𝑝𝑚 ∗ 𝛥𝑡
Donde 𝑣𝑒𝑙𝑟𝑝𝑚 es la velocidad obtenida a partir de las revoluciones por minuto de las llantas y Δ𝑡 el
intervalo de tiempo en el que el vehículo está en movimiento.
Veamos este concepto aplicado a un ejemplo concreto. Suponga que la velocidad del vehículo es de
95.83 km/h y viaja durante 0.5 horas. Tenemos que:
𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎 = 95.83 ∗ 0.5 = 47.92 𝑘𝑚
Presión sobre los frenos
Un elemento muy importante en las carreras son los frenos del vehículo. En estos se pueden colocar
sensores que midan la presión (en Pascales) ejercida para evitar su deterioro y realizar mantenimiento
oportuno. La presión ejercida sobre los frenos se puede calcular de la siguiente manera:
4 ∗ 𝑓𝑢𝑒𝑟𝑧𝑎
𝑝𝑟𝑒𝑠𝑖ó𝑛 =
𝜋 ∗ 𝑑𝑖𝑎𝑚𝑒𝑡𝑟𝑜2
Donde 𝑓𝑢𝑒𝑟𝑧𝑎 es la fuerza aplicada sobre el pedal del freno y 𝑑𝑖𝑎𝑚𝑒𝑡𝑟𝑜 es el diámetro de los cilindros
del freno.
Veamos este concepto aplicado a un ejemplo concreto. Suponga que el piloto ejerce 400 Newtons
sobre el pedal y el diámetro de los cilindros es de 0.02 metros. Tenemos que:
𝑝𝑟𝑒𝑠𝑖ó𝑛 =
4 ∗ 400
= 1273885.35 𝑃𝑎
𝜋 ∗ 0.022
Tenga en cuenta que para π se utilizó un valor de 3.14
Relación de transmisión
Todo vehículo hace uso de las relaciones de transmisión (conexión existente entre las velocidades de
rotación de dos engranajes conectados entre sí) para modificar la velocidad y así mantener las
revoluciones del motor en un rango que no afecte drásticamente su vida útil. De esta manera, la
relación de transmisión se da entre la velocidad de entrada y de salida del engranaje, y a su vez esta
velocidad depende de las dimensiones de los piñones de acuerdo con la siguiente fórmula.
𝑟𝑒𝑙𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑡𝑟𝑎𝑛𝑠𝑚𝑖𝑠𝑖ó𝑛 =
𝑑𝑖𝑒𝑛𝑡𝑒𝑠𝑒𝑛𝑡𝑟𝑎𝑑𝑎 ∗ (𝑔𝑟𝑜𝑠𝑜𝑟𝑒𝑛𝑡𝑟𝑎𝑑𝑎 + 𝑒𝑠𝑝𝑎𝑐𝑖𝑎𝑑𝑜 𝑑𝑒 𝑙𝑜𝑠 𝑑𝑖𝑒𝑛𝑡𝑒𝑠𝑒𝑛𝑡𝑟𝑎𝑑𝑎 )
𝑑𝑖𝑒𝑛𝑡𝑒𝑠𝑠𝑎𝑙𝑖𝑑𝑎 ∗ (𝑔𝑟𝑜𝑠𝑜𝑟𝑠𝑎𝑙𝑖𝑑𝑎 + 𝑒𝑠𝑝𝑎𝑐𝑖𝑎𝑑𝑜 𝑑𝑒 𝑙𝑜𝑠 𝑑𝑖𝑒𝑛𝑡𝑒𝑠𝑠𝑎𝑙𝑖𝑑𝑎 )
Por ejemplo, si se tiene un engranaje donde la entrada tiene 40 dientes, un grosor de 12mm y un
espaciado entre los dientes de 4mm, y una salida con 14 dientes, grosor de 12mm y espaciado de
2mm, la relación de transmisión sería la siguiente:
40 ∗ (12 × 10−3 𝑚 + 4 × 10−3 𝑚)
𝑟𝑒𝑙𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑡𝑟𝑎𝑛𝑠𝑚𝑖𝑠𝑖ó𝑛 =
= 3.26
14 ∗ (12 × 10−3 𝑚 + 2 × 10−3 𝑚)
Revoluciones por minuto del motor
Como se mencionó en la relación de transmisión, los vehículos tienen un rango en el que las
revoluciones por minuto (rpm) del motor mantienen la vida útil prevista por los fabricantes. Por esto,
conocer las revoluciones en cada instante, permite tomar decisiones respecto a la relación de
transmisión ideal en una situación y ayuda a disminuir el desgaste del motor. Este cálculo se puede
realizar mediante la siguiente fórmula:
𝑟𝑝𝑚𝑚𝑜𝑡𝑜𝑟 = 𝑟𝑝𝑚𝑙𝑙𝑎𝑛𝑡𝑎𝑠 ∗ 𝑟𝑒𝑙𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑡𝑟𝑎𝑛𝑠𝑚𝑖𝑠𝑖ó𝑛
Siguiendo con el ejemplo de la relación de transmisión, si adicionalmente se tienen 900 rpm en las
llantas, las revoluciones del motor son las siguientes:
𝑟𝑝𝑚𝑚𝑜𝑡𝑜𝑟 = 900𝑟𝑝𝑚 ∗ 3.26 = 2934𝑟𝑝𝑚
Actividad 1: Preparación del ambiente de trabajo
1. Cree una carpeta para trabajar, poniéndole su nombre o login.
2. Abra Spyder y cambie la carpeta de trabajo para que sea la carpeta que creó.
Actividad 2: Construir un módulo de telemetría
3. Usando Spyder, cree en su carpeta de trabajo un nuevo archivo con el nombre
“calculadora_formula_1.py”. En este archivo usted va a construir su módulo en el que va a hacer
varios cálculos comunes sobre velocidades, distancias, revoluciones por minuto, transmisión y
presión sobre los vehículos que participan en la Fórmula 1. En cada caso le indicaremos qué valores
conocemos sobre las magnitudes físicas del vehículo y de su desplazamiento y qué queremos
calcular. Los retornos de las funciones deben estar redondeados a dos decimales.
4. Defina e implemente funciones en su nuevo archivo de acuerdo con la siguiente información.
ATENCIÓN: para asegurar que no haya problemas durante el proceso de calificación, usted debe
definir las funciones con los nombres, parámetros y tipos exactos que se presentan a continuación.
Las funciones deben estar definidas en el mismo orden.
Nombre de la función
Descripción de la función
Parámetros
Nombre
df
f
Tipo
float
float
Retorno
float
calcular_velocidad_radar
Calcula la velocidad del vehículo de acuerdo con las mediciones de
un radar de velocidad
Descripción
Diferencia de la frecuencia medida por el radar, en Hz
Frecuencia transmitida por el radar, en Hz
La velocidad del vehículo en kilómetros por hora (km/h) redondeada
a 2 decimales
Nombre de la función
Descripción de la función
calcular_velocidad_rpm
Calcula la velocidad del vehículo de acuerdo con las revoluciones por
minuto de sus llantas y su diámetro
Parámetros
Nombre
rpm_llantas
diametro_llanta
Tipo
float
float
Retorno
float
Nombre de la función
Descripción de la función
Descripción
Revoluciones por minuto de las llantas
Diámetro de las llantas en metros
La velocidad del vehículo en kilómetros por hora (km/h) redondeada
a 2 decimales
calcular_distancia_recorrida_con_rpm_llantas
Calcula la distancia que recorre un vehículo dado un intervalo de
tiempo y suponiendo revoluciones por minuto constantes
Parámetros
Nombre
Tipo
dt
rpm_llantas
diametro_llanta
float
float
float
Retorno
float
Nombre de la función
Descripción de la función
Descripción
Intervalo de tiempo en horas en el que el vehículo está en
movimiento
Revoluciones por minuto de las llantas
Diámetro de las llantas en metros
La distancia recorrida por el vehículo en kilómetros (km) redondeada
a 2 decimales
presion_aplicada_sobre_frenos
Calcula la presión aplicada sobre los frenos.
Parámetros
Nombre
fuerza
diametro
Retorno
Tipo
float
float
float
Descripción
Magnitud de la fuerza aplicada sobre el pedal del freno en newtons
Diámetro de los cilindros del freno en metros
La presión aplicada en Pascales (Pa) redondeada a 2 decimales
Nombre de la función
Descripción de la función
Parámetros
Nombre
dientes_in
grosor_in
espaciado_dientes_in
calcular_relacion_de_transmision
Calcula la relación de transmisión de los engranajes de
acuerdo con las dimensiones del engranaje
Tipo
int
float
float
Descripción
Cantidad de dientes del piñón de entrada
Grosor del piñón de entrada en metros
Distancia entre los dientes del piñón de entrada en metros
dientes_out
grosor_out
espaciado_dientes_out
Retorno
int
float
float
float
Nombre de la función
Descripción de la función
Cantidad de dientes del piñón de salida
Grosor del piñón de salida en metros
Distancia entre los dientes del piñón de salida en metros
La relación de transmisión redondeada a 2 decimales
calcular_revoluciones_por_minuto
Calcula las revoluciones por minuto del motor.
Parámetros
Nombre
rpm_llantas
dientes_in
grosor_in
espaciado_dientes_in
dientes_out
grosor_out
espaciado_dientes_out
Tipo
float
int
float
float
int
float
float
Retorno
float
Descripción
Revoluciones por minuto de las llantas
Cantidad de dientes del piñón de entrada
Grosor del piñón de entrada en metros
Distancia entre los dientes del piñón de entrada en metros
Cantidad de dientes del piñón de salida
Grosor del piñón de salida en metros
Distancia entre los dientes del piñón de salida en metros.
Las revoluciones por minuto del motor redondeadas a 2
decimales
Actividad 3: Construir interfaces de usuario basadas en consola
En esta actividad usted tiene que construir las interfaces basadas en consola para que el usuario
interactúe con la aplicación.
ATENCIÓN: las interfaces basadas en consola deben seguir el estándar de construcción de consolas
visto en clase.
5. Construya un nuevo archivo Python para cada uno de los 6 problemas que se resuelven con la
aplicación. Los nombres deben ser:
 consola_velocidad_radar.py
 consola_velocidad_rpm.py
 consola_distancia_recorrida.py
 consola_presion_frenos.py
 consola_ratio_engranajes.py
 consola_rpm_motor.py
ATENCIÓN: estos archivos deben ser creados dentro de la misma carpeta donde se encuentra su
módulo de telemetría.
6. Los nuevos archivos deben importar su módulo de telemetría para que puedan usar las funciones
que definió en el módulo. Por ejemplo, podría usar la siguiente línea para importar el módulo:
import calculadora_formula_1 as cf
7. Implemente cada uno de los seis programas de interfaz por consola. Cada uno de estos debe
pedirle al usuario los datos necesarios para resolver el problema y debe informarle de su resultado.
A modo de ejemplo, la siguiente imagen muestra lo que podría ser el resultado del ejecutar el
programa “consola_velocidad_rpm.py” desde la consola de Windows y desde Spyder.
Desde Spyder:
Desde la consola:
8. Ejecute cada uno de los 6 programas para asegurar que estén funcionando.
Actividad 4: Verificar el módulo de telemetría
9. Ejecute cada uno de los 6 programas utilizando los datos que se presentan a continuación y
asegúrese que los resultados sean consistentes con lo que se presenta como resultado esperado en
la tabla.
Programa
calcular_velocidad_radar
calcular_velocidad_radar
calcular_velocidad_rpm
Entradas
Diferencia de frecuencia: 0.981 ∗ 103 𝐻𝑧
Frecuencia: 10.6 ∗ 109 𝐻𝑧
Diferencia de frecuencia: 2.35 ∗ 103
Frecuencia: 10.6 ∗ 109 𝐻𝑧
Rpm llantas: 1698
Salidas
49.98
119.72
105.63
Diámetro llantas: 33.02cm = 0.3302m
calcular_velocidad_rpm
Rpm llantas: 875.66
Diámetro llantas: 48cm = 0.48m
calcular_distancia_recorrida_con_rpm_llantas Intervalo de tiempo: 1.36 horas
Rpm llantas: 1698
Diámetro llantas: 0.3302m
calcular_distancia_recorrida_con_rpm_llantas Intervalo de tiempo: 0.69 horas
Rpm llantas: 875.66
Diámetro llantas: 0.48m
presion_aplicada_sobre_frenos
Presión: 676 N
Diámetro cilindros: 0.032m
presion_aplicada_sobre_frenos
Presión: 274 N
Diámetro cilindros: 0.019m
Dientes de entrada: 30
Grosor de entrada: 15 × 10−3 𝑚
Espaciado de dientes de entrada: 3 ×
10−3 𝑚
Dientes de salida: 10
Grosor de salida: 15 × 10−3 𝑚
Espaciado de dientes de salida: 2 ×
calcular_relacion_de_transmision
10−3 𝑚
Dientes de entrada: 25
Grosor de entrada: 10 × 10−3 𝑚
Espaciado de dientes de entrada: 7×
10−3 𝑚
Dientes de salida: 14
Grosor de salida: 22 × 10−3 𝑚
Espaciado de dientes de salida: 8 ×
calcular_relacion_de_transmision
10−3 𝑚
Rpm llantas: 1470
Dientes de entrada: 30
Grosor de entrada: 15 × 10−3 𝑚
Espaciado de dientes de entrada: 3 ×
10−3 𝑚
Dientes de salida: 10
Grosor de salida: 15 × 10−3 𝑚
Espaciado de dientes de salida: 2 ×
calcular_revoluciones_por_minuto
10−3 𝑚
Rpm llantas: 3550
Dientes de entrada: 25
Grosor de entrada: 10 × 10−3 𝑚
Espaciado de dientes de entrada: 7×
10−3 𝑚
calcular_revoluciones_por_minuto
Dientes de salida: 14
79.19
143.66
54.64
840963.38
966882.51
3.18
1.01
4674.6
3585.5
Grosor de salida: 22 × 10−3 𝑚
Espaciado de dientes de salida: 8 ×
10−3 𝑚
10. Si alguno de sus programas presenta algún error o si el resultado es diferente al esperado, revise y
corrija su módulo de telemetría. Es posible que le aparezcan errores causados por fallos de tecleo
en el nombramiento de las funciones, o causados por declarar los parámetros en el orden
equivocado. Cada vez que corrija algo, vuelva a realizar las pruebas.
Nota: Las pruebas que está realizando son un mecanismo para identificar posibles problemas con
un programa, pero no pueden ser consideradas una garantía de su corrección. Entre más completas
estén las pruebas, por ejemplo, verificando casos normales, extremos y anormales, más
tranquilidad tendremos de que el programa está bien construido.
Entrega
11. Comprima la carpeta con su proyecto resuelto. El archivo debería llamarse N1-PROY-login.zip,
donde login es su nombre de usuario de Uniandes.
12. Entregue el archivo comprimido a través de Bloque Neón en la tarea designada como Proyecto del
Nivel 1.
Download