结构受迫振动计算核心

response-physics.js 同时支持浏览器全局 VIVResponse 和 Node require。它是单向简谐荷载对照模型,不是 CFD,不反馈结构运动到尾流,不预测锁定区间。

参数和方程

所有力与质量均按单位展向长度定义:m kg/m、k N/m²、c N·s/m²、rho kg/m³、D m、U m/s、y m。zeta、St、CL 无量纲。CL 是升力系数幅值。

m ÿ + c ẏ + k y = (rho U(t)² D CL / 2) sin(theta);thetȧ = 2π St U(t)/D。

fn = sqrt(k/m)/(2π);c = 2 zeta sqrt(k m)。刚度是输入,固有频率由质量和刚度导出。扫速时连续积分相位,不能把时间直接代入 sin(2π fs(t) t)。

const p = VIVResponse.parameters({ m: 1, k: 39.4784176, zeta: 0.05,
  rho: 1.225, D: 0.1, St: 0.2, CL: 0.8 });
// p.fn, p.omega (亦为 p.wn), p.c, p.fd, p.Ucross
const history = VIVResponse.simulate(p, { mode: 'up', cycles: 120,
  minRatio: 0.5, maxRatio: 1.5, initialY: 0, initialVelocity: 0 });
const frame = VIVResponse.sample(history, 35.7); // 物理时间 s
const steady = VIVResponse.steadyState(p, p.Ucross);
const curve = VIVResponse.sweep(p, { minRatio: 0.3, maxRatio: 1.8, count: 301 });

simulate 选项

- mode: fixed(默认)、up、down、free、custom。

- fixed 的 U 缺省为参数的 U,参数未给 U 则用 Ucross。

- up/down: 初段保持 → 平滑升/降速 → 末段保持。holdFraction 默认 0.12,前后各占总时长 12%;中间采用三次平滑函数。返回 stages 可标注三个阶段。默认频比从 0.5 到 1.5,降速相反。

- duration 单位 s,优先于 cycles;缺省 120 / fn s。提高 cycles 可观察慢扫频,有限速率扫频结果不必落在稳态解析曲线上。

- free: 风速及外力为零;缺省 initialY=0.1D。所有模式都可指定 initialY、initialVelocity、initialPhase。

- custom: 必须提供 windSpeed(t) 和非负上界 maxU;返回值超出声明范围会抛错。

- dt: 请求积分步长上限;计算器还会按最高激励频率、固有频率和阻尼限制步长。maxSamples 默认 4000,仅控制展示数据点数,不改变积分。

返回物理时间数组 t 及同长度数组:y,q=y/D,v,a,theta,U,fs,ratio,forceAmplitude,force,springForce,dampingForce,inertiaForce,energy,powerIn,powerLoss,workIn,workLoss,energyResidual。

springForce=-ky、dampingForce=-cv 为作用在结构上的有符号力;inertiaForce=ma,因此 force+springForce+dampingForce=inertiaForce。外力、弹簧力、阻尼力单位 N/m;能量与累积功单位 J/m;功率单位 W/m。energyResidual=E(t)-E(0)-workIn+workLoss。diagnostics 在全部积分步计算,不受抽样影响。sample 仅为播放插值,能量验收应使用 history.diagnostics。

steadyState 返回 amplitude(m)、q、ratio、phase(位移相对荷载滞后,rad)、forceAmplitude、amplification 等。它是瞬时风速对应的无限久稳态,不代表瞬态实测包络;力幅随风速平方改变,扫速幅值曲线不能误读成恒幅外力的标准放大系数曲线。零阻尼精确共振的稳态幅值为 Infinity,时域解仍为有限时间内增长响应。

执行 node response-check.cjs 检验解析受迫响应、共振、阻尼趋势、自由衰减、能量平衡、扫速相位连续性与刚度影响。