Documentaciónmasa_resorte_forzado(m, k, c, x0, v0, t0, t1, dt, expr_Ft)
Nombre
masa_resorte_forzado - Simula un sistema masa-resorte-amortiguador con forzado externo.
Sinopsis
tray = fisicas.masa_resorte_forzado(m, k, c, x0, v0, t0, t1, dt, expr_Ft)
Descripcion
Simula la evolucion temporal de la posicion x(t) y la velocidad v(t) de un oscilador amortiguado y forzado.
Modelo integrado:
Ecuacion fisica de referencia:
Comportamiento
- Calcula internamente la cantidad de pasos a partir de
t0,t1ydt. - Delega la integracion en
fisicas.rk4_2_tabla_forzado(). - Retorna una
TABLAcon tres vectores:t,xyv. - Es util para estudiar oscilaciones forzadas, resonancia y respuesta transitoria.
Funciones API relacionadas
fisicas.balistica()fisicas.rk4_2_tabla_forzado()
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| m | NUMERICO | Masa. |
| k | NUMERICO | Constante del resorte. |
| c | NUMERICO | Coeficiente de amortiguacion. |
| x0 | NUMERICO | Posicion inicial en x; en formulas se representa como . |
| v0 | NUMERICO | Velocidad inicial; en formulas se representa como . |
| t0 | NUMERICO | Tiempo inicial. |
| t1 | NUMERICO | Tiempo final. |
| dt | NUMERICO | Paso de integracion h (Δt). |
| expr_Ft | STRING | Expresion de la fuerza externa Ft(t), evaluable por RESOLVER(). |
Valor de retorno
TABLA - TABLA con tres vectores: t, x y v.
Ejemplo
ejemplo.blox
// ----------------------------------------------------------
// Masa-resorte forzado (wrapper) usando rk4_2_tabla_forzado
// Estado:
// x' = v
// v' = (-k*x - c*v + Ft)/m
//
// Mapeo:
// a = x
// b = v
//
// Retorna: { t, x, v }
// ----------------------------------------------------------
//
// FUNCION masa_resorte_forzado(m, k, c, x0, v0, t0, t1, dt, expr_Ft)
//
// m --> masa
// k --> constante de elasticidad del resorte
// c --> coeficiente de amortiguamiento
// x0 --> Posicion x inicial
// v0 --> Velocidad inicial
// t0 --> Tiempo inicial
// t1 --> Tiempo final
// dt --> Delta t
// expr_ft --> fuerza aplicada
// ----------------------------------------------------------
INCLUIR "fisicas.api"
INCLUIR "graficos.api"
FUNCION PRINCIPAL
INICIO
TABLA r1, r2, r3
NUMERICO m, k, c, x0, v0, t0, t1, dt
STRING expr_Ft1, expr_Ft2, expr_Ft3
m = 1
k = 20
c = 0.3
x0 = 0
v0 = 0
t0 = 0
t1 = 20
dt = 0.01
expr_Ft1 = "1/100 * delta(t)"
r1 = fisicas.masa_resorte_forzado(m, k, c, x0, v0, t0, t1, dt, expr_Ft1)
expr_Ft2 = "arcsin(sin(pi*t))"
r2 = fisicas.masa_resorte_forzado(m, k, c, x0, v0, t0, t1, dt, expr_Ft2)
expr_Ft3 = "500 * (u(t) - u(t-0.01))"
r3 = fisicas.masa_resorte_forzado(m, k, c, x0, v0, t0, t1, dt, expr_Ft3)
TABLA curvas
curvas[1] = { T = r1.t, Y = r1.x, nombre = expr_Ft1 }
curvas[2] = { T = r2.t, Y = r2.x, nombre = expr_Ft2 }
curvas[3] = { T = r3.t, Y = r3.x, nombre = expr_Ft3 }
// Solo necesita las curvas, el rango en x y el nro de puntos
//
graficos.graficar_trayectorias_t(curvas, "Masa–resorte forzado", "PROG98 - FISICAS - masa-resorte.png")
FINAL
Restringido: este ejemplo no puede ejecutarse en el Playground web porque la API requerida no está disponible en el sandbox.