30.1 Objetivo del proyecto
Construiremos un analizador para un móvil que recorre una ruta formada por segmentos rectos. Actúan gravedad, rozamiento cinético y una fuerza motriz tangencial constante. A partir del estado inicial, el programa calcula el estado en cada nodo.
El proyecto debe explicar sus resultados, no limitarse a mostrar una rapidez final.
30.2 Requisitos funcionales
30.3 Alcance y supuestos
- El móvil se representa como partícula y avanza hacia x creciente.
- Cada tramo es recto y tiene ancho horizontal Δx constante.
- La gravedad es uniforme y la ruta no se mueve.
- El rozamiento cumple fk = μkN.
- La fuerza aplicada es tangencial y constante durante el recorrido.
- No se incluyen resistencia del aire, rotación ni límites del motor.
30.4 Representar la ruta
La ruta se guarda como nodos con coordenadas (x, y). Dos nodos consecutivos definen:
El ángulo satisface cos α = Δx/L y sen α = Δy/L. No hace falta calcular α explícitamente para los trabajos.
30.5 Estado energético inicial
Con referencia gravitatoria y = 0:
Además se inicializan en cero el trabajo aplicado acumulado, la energía térmica generada, la distancia y el tiempo.
30.6 Trabajo de la gravedad por tramo
Depende solo del cambio de altura. Es positivo al descender y negativo al ascender. En el balance mecánico se puede usar Wg o ΔUg, pero no ambos como contribuciones independientes.
30.7 Trabajo del rozamiento
En un tramo recto, N = mg cos α. Entonces:
La simplificación final vale porque Δx > 0 en este proyecto. La energía térmica generada es Etérmica = −Wroz.
30.8 Trabajo de la fuerza motriz
Como la fuerza aplicada es tangencial y apunta en el sentido del movimiento:
Si se quisiera modelar frenado, podría admitirse Fa negativa. La interfaz actual usa una fuerza no negativa y representa el frenado mediante resistencia.
30.9 Actualización de energía cinética
Si Kf ≥ 0, la rapidez en el nodo es vf = √(2Kf/m). También debe cumplirse:
30.10 Detectar una detención dentro del tramo
En un segmento recto las fuerzas tangenciales del modelo son constantes, por lo que el trabajo crece linealmente con la fracción λ recorrida. Si el trabajo neto completo Wtramo haría K negativa:
La posición se interpola como r⃗ = r⃗i + λΔr⃗. Solo se acumulan trabajos, distancia y tiempo hasta ese punto.
30.11 Estimar el tiempo
Dentro de cada tramo la aceleración tangencial es constante. Si el movimiento no cambia de sentido:
La expresión surge de la velocidad media para aceleración constante. Si vi = vf = 0, el programa debe decidir con la fuerza neta si puede comenzar a moverse.
30.12 Potencia media de la fuerza aplicada
Una vez conocido el tiempo total:
La potencia instantánea es Fav(t). Aunque Fa sea constante, la potencia cambia con la rapidez.
30.13 Balance energético global
Para el sistema móvil–Tierra–ruta:
El residuo de auditoría es:
30.14 Arquitectura propuesta
Esta separación permite probar el motor físico sin depender del navegador.
30.15 Flujo del algoritmo
30.16 Estrategia de pruebas
30.17 Aplicación interactiva: analizador de recorrido
Editá las seis alturas y los parámetros. La ruta se recalcula en tiempo real. El verde marca la parte alcanzada y el rojo aparece si el móvil se detiene.
Analizador energético del recorrido
Cinco tramos rectos con gravedad, rozamiento y fuerza tangencial aplicada.
| Estado | x (m) | y (m) | v (m/s) | K (J) | U (J) | Em (J) | Etérmica (J) |
|---|
30.18 Motor físico en JavaScript
function analizarSegmento(estado, nodoFinal, parametros) {
const { masa, gravedad, mu, fuerzaAplicada } = parametros;
const dx = nodoFinal.x - estado.x;
const dy = nodoFinal.y - estado.y;
const longitud = Math.hypot(dx, dy);
const trabajoGravedad = -masa * gravedad * dy;
const trabajoRozamiento = -mu * masa * gravedad * dx;
const trabajoAplicado = fuerzaAplicada * longitud;
const trabajoNeto = trabajoGravedad + trabajoRozamiento + trabajoAplicado;
if (estado.cinetica + trabajoNeto < 0) {
const fraccion = estado.cinetica / -trabajoNeto;
return { alcanza: false, fraccion };
}
const cinetica = estado.cinetica + trabajoNeto;
return {
alcanza: true,
x: nodoFinal.x,
y: nodoFinal.y,
cinetica,
rapidez: Math.sqrt(2 * cinetica / masa),
trabajoAplicado,
energiaTermica: -trabajoRozamiento
};
}La aplicación completa extiende esta función para acumular distancia, tiempo y balances parciales, y para interpolar el punto exacto de detención.
30.19 Validación y tolerancias
Los parámetros deben ser finitos; m, g y Δx positivos; μ ≥ 0; v₀ ≥ 0. El residuo se compara mediante una tolerancia escalada:
Usar escala relativa evita exigir la misma tolerancia absoluta a procesos de 1 J y de 1 MJ.
30.20 Mejoras posibles
- Importar rutas desde JSON o CSV y exportar resultados.
- Agregar fuerza motriz dependiente de velocidad o potencia limitada.
- Modelar resistencia aerodinámica mediante integración numérica.
- Incluir energía cinética rotacional de ruedas.
- Permitir coeficientes de rozamiento diferentes por tramo.
- Agregar frenado regenerativo, eficiencia y batería.
- Incorporar incertidumbres y propagación de errores.
30.21 Desafíos de ampliación
- Agregar un séptimo nodo sin duplicar lógica.
- Permitir una fuerza aplicada distinta en cada tramo.
- Mostrar potencia instantánea Fav en cada nodo.
- Crear pruebas automáticas para los seis casos de la sección 30.16.
- Exportar la tabla de resultados como CSV.
- Comparar dos configuraciones y recomendar la de menor energía térmica que complete la ruta.
Criterios de aceptación
- El balance debe cerrar dentro de una tolerancia declarada.
- Una detención debe localizarse dentro del segmento, no en su extremo.
- La interfaz debe explicar toda entrada inválida.
- Los resultados deben conservar unidades y precisión sin redondear internamente.
- El modelo, la presentación y los eventos deben permanecer separados.
30.22 Cierre del curso
- El trabajo cuantifica transferencias producidas por fuerzas a lo largo de desplazamientos.
- El teorema trabajo–energía conecta fuerzas con cambios de rapidez.
- Las energías potenciales representan interacciones conservativas.
- El rozamiento transforma energía mecánica en energía interna.
- Todo proceso debe satisfacer un balance de energía coherente con el sistema.
- La potencia describe la rapidez de transferencia y el rendimiento su fracción útil.
- Programar permite calcular, visualizar y, sobre todo, verificar el modelo físico.
El analizador integrador no es un punto final: es una base comprobable para construir simulaciones más realistas y tomar decisiones energéticas mejor fundamentadas.