30.1 Objetivo del proyecto
El sistema contiene un bloque A sobre una mesa horizontal y una masa B colgante. Ambos están conectados por una cuerda ideal que pasa sobre una polea fija ideal. Entre A y la mesa puede existir rozamiento.
El programa deberá:
- Determinar si el rozamiento estático puede conservar el reposo.
- Pasar al modelo cinético cuando el estado estático no sea posible.
- Calcular aceleración común, tensión y fuerza de rozamiento.
- Actualizar el movimiento mediante pasos fijos.
- Detenerse cuando la masa colgante alcanza el límite del escenario.
30.2 Supuestos y alcance
g = 9,81 m/s².El proyecto impone 0 ≤ μk ≤ μs como condición de sus datos. Aunque no sea una desigualdad universal, representa el conjunto de materiales elegido para este simulador.
30.3 Variables y convención de signos
Usaremos una coordenada común s:
s > 0: A avanza hacia la polea.- El mismo incremento hace descender a B.
v = ds/dtya = d²s/dt²comparten esa convención.
Esta igualdad proviene de la longitud constante de la cuerda. Reduce el movimiento a un grado de libertad mientras el vínculo permanezca tenso.
30.4 Estados del simulador
Las fórmulas activas dependen del estado. Una máquina de estados explícita evita aplicar simultáneamente rozamiento estático y cinético.
30.5 Comprobar el reposo
Si el sistema permanece en reposo, la masa B necesita T = mBg. Sobre A, esa tensión debe ser equilibrada por rozamiento estático:
La normal sobre A es N = mAg y el máximo disponible:
El reposo es posible si mB ≤ μsmA. En ese estado a = 0, v = 0 y no debe iniciarse la integración del deslizamiento.
30.6 Ecuaciones durante el deslizamiento
Cuando B desciende y A se mueve hacia la polea, el rozamiento cinético sobre A apunta en sentido opuesto:
Para B: mBg − T = mBa
Con fk = μkmAg, la aceleración es:
Bajo las condiciones elegidas, si falla el reposo y μk ≤ μs, esta aceleración es positiva.
30.7 Calcular tensión y fuerzas de contacto
Una vez conocida la aceleración:
fk = μkmAg
N = mAg
La misma tensión debe satisfacer T = mAa + fk. Comparar ambas expresiones es una verificación independiente.
También deben cumplirse T ≥ 0 y N ≥ 0. Un valor imposible señalaría un error de datos, signos o modelo.
30.8 Arquitectura por responsabilidades
s y v.Separar estas responsabilidades permite probar la dinámica sin dibujar y cambiar la visualización sin modificar las ecuaciones.
30.9 Estructura de datos
El estado mínimo puede expresarse como:
{ tiempoS, desplazamientoM, velocidadMps, fase, pasos }Los parámetros permanecen separados:
{ masaAKg, masaBKg, muEstatico, muCinetico, gravedad, dtS, recorridoMaximoM }Reiniciar crea un estado nuevo en vez de reutilizar referencias modificadas. La fase se vuelve a decidir con los parámetros actuales.
30.10 Algoritmo de actualización
- Validar parámetros y conservar
μk ≤ μs. - Si
v = 0, comprobar si el rozamiento estático puede mantener el reposo. - Si el sistema desliza, calcular normal, rozamiento cinético, aceleración y tensión.
- Actualizar primero la velocidad y después el desplazamiento mediante Euler semimplícito.
- Avanzar el reloj y el contador de pasos.
- Comprobar si se alcanzó el recorrido máximo.
sn+1 = sn + vn+1Δt
30.11 Paso fijo y controles
La reproducción utiliza un acumulador de tiempo real y subpasos de tamaño Δt. La interfaz ofrece:
- Reproducir/Pausar: controla el consumo de tiempo real.
- Avanzar un paso: facilita inspeccionar una transición.
- Reiniciar: restaura posición, velocidad, tiempo y fase.
Modificar un parámetro detiene y reinicia el escenario. Así nunca se mezclan estados calculados con conjuntos de parámetros diferentes.
30.12 Evento final y dominio del modelo
El modelo es válido mientras A no alcanza la polea y B no toca el suelo. Ambos límites se representan mediante un recorrido máximo común.
Cuando s ≥ smax, el simulador:
- Ajusta visualmente
sal límite. - Cambia la fase a
finalizado. - Detiene el reloj físico.
- No intenta resolver la colisión posterior.
30.13 Plan de verificación
| Caso | Resultado esperado |
|---|---|
mB ≤ μsmA | Reposo, tensión mBg y rozamiento estático igual. |
μs = μk = 0 | a = mBg/(mA + mB). |
mB → 0 | El sistema tiende al reposo bajo las condiciones iniciales. |
Reducir Δt | El tiempo y la velocidad al alcanzar el límite deben converger. |
| Ecuaciones de tensión | mB(g − a) ≈ mAa + f. |
| Restricción | Los desplazamientos de A y B conservan el mismo módulo. |
30.14 Simulador integrador
Probá configuraciones que permanezcan en reposo y otras que deslicen. Reducí el paso temporal y compará el estado final.
Bloque, polea, cuerda y rozamiento
La masa B intenta descender y arrastra al bloque A hacia la polea.
30.15 Núcleo dinámico en JavaScript
La función decide el estado inicial y devuelve las fuerzas compatibles:
function evaluarSistema(parametros) {
const { masaA, masaB, muS, muK, g = 9.81 } = parametros;
if (!(masaA > 0 && masaB > 0 && muS >= 0 && muK >= 0 && muK <= muS)) {
throw new RangeError('Parámetros fuera del dominio del modelo');
}
const normal = masaA * g;
const necesario = masaB * g;
const maximoEstatico = muS * normal;
if (necesario <= maximoEstatico) {
return { fase: 'estatico', aceleracion: 0, tension: necesario, rozamiento: necesario };
}
const rozamiento = muK * normal;
const aceleracion = (masaB * g - rozamiento) / (masaA + masaB);
const tension = masaB * (g - aceleracion);
return { fase: 'deslizamiento', aceleracion, tension, rozamiento };
}
console.log(evaluarSistema({ masaA: 5, masaB: 3, muS: 0.4, muK: 0.25 }));Un paso semimplícito modifica únicamente el estado cinemático y respeta el límite del escenario:
function avanzarEstado(estado, aceleracion, dt, recorridoMaximo) {
if (estado.fase !== 'deslizamiento') return { ...estado };
const velocidad = estado.velocidad + aceleracion * dt;
const desplazamientoCalculado = estado.desplazamiento + velocidad * dt;
const finalizado = desplazamientoCalculado >= recorridoMaximo;
return {
...estado,
velocidad,
desplazamiento: Math.min(desplazamientoCalculado, recorridoMaximo),
tiempo: estado.tiempo + dt,
fase: finalizado ? 'finalizado' : 'deslizamiento'
};
}
const inicial = { fase: 'deslizamiento', desplazamiento: 0, velocidad: 0, tiempo: 0 };
console.log(avanzarEstado(inicial, 2, 0.1, 3));30.16 Pruebas mínimas del proyecto
- Rechazar masas no positivas y coeficientes fuera de rango.
- Ajustar o rechazar configuraciones con
μk > μs. - Comprobar correctamente los dos lados del umbral estático.
- Verificar la tensión desde la ecuación de A y desde la de B.
- Confirmar que el reinicio crea exactamente el estado inicial.
- Ejecutar una cantidad conocida de pasos y comparar con un cálculo independiente.
- Comprobar que nunca se supera el recorrido máximo almacenado.
- Repetir con
Δt/2y estudiar convergencia.
Cada error corregido debe conservarse como prueba de regresión.
30.17 Desafíos de ampliación y criterios de evaluación
Ampliaciones propuestas
- Mostrar diagramas de cuerpo libre separados para A y B.
- Agregar un registro descargable de
t,s,v,a,Ty rozamiento. - Comparar Euler explícito y semimplícito.
- Permitir una fuerza externa adicional sobre A y volver a derivar el umbral estático.
- Detectar con mayor precisión el instante en que B alcanza el límite.
- Construir pruebas automáticas para valores aleatorios dentro del dominio.
Criterios de evaluación
| Área | Evidencia esperada |
|---|---|
| Modelo físico | Supuestos, ejes, diagramas y ecuaciones coherentes. |
| Estados | Transición correcta entre reposo, deslizamiento y final. |
| Código | Responsabilidades separadas, datos validados y funciones comprobables. |
| Integración numérica | Paso fijo, reinicio completo y evento final controlado. |
| Verificación | Casos límite, residuos, convergencia y pruebas de regresión. |
| Comunicación | Unidades, estados y resultados visibles para el usuario. |
30.18 Cierre del curso
El proyecto reúne el recorrido completo: identificar interacciones, dibujar fuerzas, elegir ejes, aplicar las leyes de Newton, imponer restricciones, seleccionar el modelo de rozamiento, representar datos, acumular fuerzas, integrar y verificar.
- Una simulación comienza con un modelo físico explícito.
- Las fuerzas se evalúan según el estado y se suman vectorialmente.
- Las restricciones conectan la dinámica de varios cuerpos.
- Los cambios de contacto exigen cambiar de ecuación.
- El paso temporal y el método numérico forman parte del resultado.
- La verificación debe acompañar cada etapa del desarrollo.
Con esta base, el alumno está preparado para abordar trabajo y energía, cantidad de movimiento, rotaciones y simulaciones físicas de mayor complejidad.