Documentaciónmasa_resorte_forzado(m, k, c, x0, v0, t0, t1, dt, expr_Ft)

masa_resorte_forzado(m,k,c,x0,v0,t0,t1,dt,exprFt)\texttt{masa\_resorte\_forzado}(m, k, c, x_{0}, v_{0}, t_{0}, t_{1}, dt, expr_{F_t})

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:

x=vx' = v

v=kxcv+Ft(t)mv' = \frac{-kx-cv+F_t(t)}{m}

Ecuacion fisica de referencia:

mx+cx+kx=F(t)m x'' + c x' + kx = F(t)

Comportamiento

  • Calcula internamente la cantidad de pasos a partir de t0, t1 y dt.
  • Delega la integracion en fisicas.rk4_2_tabla_forzado().
  • Retorna una TABLA con tres vectores: t, x y v.
  • Es util para estudiar oscilaciones forzadas, resonancia y respuesta transitoria.

Funciones API relacionadas

  • fisicas.balistica()
  • fisicas.rk4_2_tabla_forzado()

Parámetros

ParámetroTipoDescripción
mNUMERICOMasa.
kNUMERICOConstante del resorte.
cNUMERICOCoeficiente de amortiguacion.
x0NUMERICOPosicion inicial en x; en formulas se representa como x0x_{0}.
v0NUMERICOVelocidad inicial; en formulas se representa como v0v_{0}.
t0NUMERICOTiempo inicial.
t1NUMERICOTiempo final.
dtNUMERICOPaso de integracion h (Δt).
expr_FtSTRINGExpresion de la fuerza externa Ft(t), evaluable por RESOLVER().

Valor de retorno

TABLA - TABLA con tres vectores: t, x y v.

Ejemplo

ejemplo.blox
Solo lectura
// ----------------------------------------------------------
// 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.