1. 课程导入与受迫振动问题界定

旋转机械的转子不平衡、车辆驶过不平路面、高层建筑遭遇脉动风载,这些看似无关的工程场景背后有一个共同的力学本质:系统在持续的外部激励作用下产生的振动。与自由振动不同,受迫振动的核心特征在于外部激励持续向系统输入能量,系统的响应不仅取决于自身的质量、刚度和阻尼特性,还强烈依赖于激励的频率、幅值与作用位置。理解并预测这种响应,是机械、车辆、土木等领域工程师的基本功。

本课程以动力方程的建模与仿真为主线,目标不是泛泛介绍振动理论,而是让学习者能够从一个实际工程对象出发,完成"物理简化→方程建立→参数确定→数值求解→结果判读"的完整闭环。课程整体分为四个模块:第一模块建立单自由度与多自由度受迫振动的方程体系,明确惯性力、弹性恢复力、阻尼力与外激励之间的平衡关系;第二模块讨论简谐激励、周期激励与瞬态冲击等不同激励形式的数学描述与响应特征;第三模块进入数值仿真,使用MATLAB/Simulink与Python(SciPy)两条工具链实现方程求解与可视化;第四模块通过旋转机械、悬架系统与建筑结构三个案例进行综合演练。工具链的选择遵循一个原则:解析推导用于理解机理,数值仿真用于处理解析方法难以覆盖的复杂激励与非线性因素。

在进入建模之前,必须先界定"受迫振动问题"的边界。工程中的振动问题大致可分为三类:自由振动(无外部持续激励,仅由初始条件激发)、自激振动(系统自身运动反馈产生交变力,如颤振)与受迫振动(外部激励独立于系统响应)。本课程聚焦第三类。需要特别注意的是,实际对象往往是连续体,直接建立偏微分方程在工程上既不必要也不可行,因此建模的第一步永远是离散化与自由度选择。例如一个电机-底座系统,若关注的是电机沿竖直方向的跳动,可简化为单自由度质量-弹簧-阻尼系统;若同时关注俯仰摆动,则至少需要两个自由度。自由度选取得当,方程规模可控且能捕捉主要动态;选取过多,参数难以准确获得,反而引入虚假精度。

建模前先回答三个问题:关注哪个方向的响应?激励从何处输入?系统的主要弹性与阻尼元件在哪里?这三个问题的答案直接决定自由度数目与方程形式。

以一个可复现的教学示例说明建模的起点。考虑一台安装在弹性支座上的旋转电机,总质量 m = 50 kg,支座等效刚度 k = 2.0×10⁵ N/m,等效阻尼系数 c = 800 N·s/m,转子偏心产生的不平衡激励力幅值 F₀ = 200 N,激励频率等于转频。取竖直向上为正方向,静平衡位置为坐标原点,则电机偏离平衡位置的位移 x(t) 满足:

m·ẍ + c·ẋ + k·x = F₀·sin(ωt)

代入示例参数:
50·ẍ + 800·ẋ + 2.0e5·x = 200·sin(ωt)

这里需要明确符号约定:x 为相对静平衡位置的位移,速度与加速度同向为正;激励力以正弦形式作用于质量块,方向与 x 正方向一致。这一约定将在全课程中保持一致,后续若切换坐标系必须显式说明。由参数可算出固有频率 ωₙ = √(k/m) ≈ 63.2 rad/s(约10.1 Hz),阻尼比 ζ = c/(2√(km)) ≈ 0.127,属于欠阻尼系统。当转频接近10 Hz时,即使激励力仅200 N,响应幅值也会因共振而显著放大——这正是受迫振动问题在工程上必须被认真对待的原因。

受迫振动建模与仿真总体框架 工程对象 旋转机械 / 车辆悬架 建筑结构 确定关注方向与边界 物理简化 质量-弹簧-阻尼 自由度选择 m, k, c 参数识别 动力方程 mẍ + cẋ + kx = F(t) 激励形式描述 符号约定统一 数值仿真 MATLAB/Simulink Python/SciPy 时域与频域响应 结果判读与工程判断 共振频率识别 · 幅频特性 · 相位滞后 · 是否超出许用振幅 参数修正 / 模型迭代 示例参数:m=50 kg,k=2.0×10⁵ N/m,c=800 N·s/m,F₀=200 N,ωₙ≈63.2 rad/s,ζ≈0.127 建模主线:对象 → 简化 → 方程 → 仿真 → 判读,判读结果可反馈修正简化与参数

上图给出了本课程的整体技术路线。需要强调的是,这条路线不是单向的:仿真结果若与预期或实测不符,往往需要回到物理简化环节检查自由度是否遗漏、参数是否准确。例如上述电机示例中,若仿真得到的共振峰远高于实测值,可能意味着实际支座存在额外的非线性刚度或阻尼,此时应修正模型而非怀疑求解器。

关于仿真工具链,本课程采用"双轨并行"策略。MATLAB/Simulink适合快速搭建框图模型,利用Transfer Fcn模块或State-Space模块直接输入传递函数,配合Sine Wave激励源即可在示波器中观察响应;Python/SciPy则更适合批量参数扫描与自定义后处理,使用scipy.integrate.solve_ivp对状态方程进行数值积分,将二阶方程化为一阶状态空间形式:令 x₁ = x,x₂ = ẋ,则状态方程为 ẋ₁ = x₂,ẋ₂ = (F₀sin(ωt) − c·x₂ − k·x₁)/m。两种工具得到的结果应相互印证,这也是检验建模正确性的一种实用手段。

学习本课程后,你应当能够:面对一个实际振动对象,判断它是否属于受迫振动问题并合理简化;写出与简化模型对应的动力方程并明确符号约定;根据激励类型选择合适的求解策略;读懂时域波形与幅频曲线中的关键信息,并据此给出工程判断。后续各节将围绕这条主线逐步展开,从单自由度简谐激励的解析解出发,逐步过渡到多自由度与复杂激励的数值仿真。