30. Proyecto integrador: analizador energético de un recorrido con gravedad y rozamiento

El proyecto final reúne trabajo, energía cinética y potencial, rozamiento, potencia, balance y programación. El resultado es una herramienta que analiza una ruta por tramos, detecta detenciones y audita la conservación de la energía total.

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

Entradas editablesMasa, gravedad, rapidez, coeficiente de rozamiento, fuerza y perfil de alturas.
Resultados auditablesK, U, Em, energía térmica, trabajo aplicado, rapidez y tiempo.
Fallos visiblesDatos inválidos, detención dentro de un tramo y residuo energético.

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.
Un resultado es válido dentro de estos supuestos. Extender el programa exige ampliar primero el modelo físico.

30.4 Representar la ruta

La ruta se guarda como nodos con coordenadas (x, y). Dos nodos consecutivos definen:

Δx = xf − xi,   Δy = yf − yi,   L = √(Δx² + Δy²)

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:

K₀ = ½mv₀²,   U₀ = mgy₀,   Em,0 = K₀ + U₀

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

Wg = −mgΔy = mg(yi − yf)

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:

Wroz = −μkmg cos α·L = −μkmgΔx

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:

Waplicado = FaL

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

Kf = Ki + Wg + Wroz + Waplicado

Si Kf ≥ 0, la rapidez en el nodo es vf = √(2Kf/m). También debe cumplirse:

Em,f − Em,i = Wroz + Waplicado

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:

λdetención = Ki/|Wtramo|,   0 ≤ λ < 1

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:

Δt = 2L/(vi + vf)

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:

Paplicada,media = Waplicado,total/ttotal

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:

Em,0 + Waplicado = Em,f + Etérmica

El residuo de auditoría es:

R = Em,0 + Waplicado − Em,f − Etérmica

30.14 Arquitectura propuesta

ModeloFunciones puras para geometría, trabajos y actualización de estados.
ControladorLee entradas, valida, ejecuta el recorrido y decide mensajes.
VistaFormatea números y actualiza SVG, tabla y resultados.

Esta separación permite probar el motor físico sin depender del navegador.

30.15 Flujo del algoritmo

LeerParámetros y nodos
ValidarDominio físico
RecorrerSegmentos
ActualizarTrabajo y estado
AuditarResiduo
MostrarGráficos y tabla

30.16 Estrategia de pruebas

Horizontal idealSin fuerza ni rozamiento, v debe permanecer constante.
Caída idealLa pérdida de U debe igualar el aumento de K.
Rozamiento puroLa disminución de Em debe igualar Etérmica.
Fuerza aplicadaΔEm = FaL si μ = 0.
DetenciónEl estado final debe tener K = 0 dentro del tramo.
Auditoría|R| debe quedar dentro de la tolerancia.

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.

Recorrido completado · vf = 17,18 m/s Posición horizontal x Altura y Perfil del recorrido, nodos y parte alcanzada por el móvil.
Azul: ruta completa; verde: recorrido alcanzado; rojo: punto de detención.
Distancia acumulada Energía Violeta K · Verde U · Azul Em · Rojo Etérmica acumulada Evolución de energías cinética, potencial, mecánica y térmica a lo largo del recorrido.
El trabajo aplicado puede elevar Em; el rozamiento aumenta la energía térmica.
Rapidez final17,18 m/s
Distancia alcanzada33,69 m
Tiempo estimado2,46 s
Trabajo aplicado3,37 kJ
Energía térmica3,92 kJ
Residuo0 J
Estadox (m)y (m)v (m/s)K (J)U (J)Em (J)Etérmica (J)
Balance verificado: energía inicial + trabajo aplicado = energía mecánica final + energía térmica.

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:

|R| ≤ ε·max(1, |Em,0|, |Wa|, |Em,f|, |Etérmica|)

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

  1. Agregar un séptimo nodo sin duplicar lógica.
  2. Permitir una fuerza aplicada distinta en cada tramo.
  3. Mostrar potencia instantánea Fav en cada nodo.
  4. Crear pruebas automáticas para los seis casos de la sección 30.16.
  5. Exportar la tabla de resultados como CSV.
  6. 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.