2. 耦合系统建模基础

多变量耦合动力系统的建模,核心任务不是“把几个方程写在一起”,而是回答三个问题:用什么量描述系统的瞬时状态、各子系统之间通过什么物理量相互影响、这些影响必须服从哪些守恒与约束。本节围绕这三个问题展开,并以一个可手算的弹簧—质量—阻尼耦合系统作为贯穿示例。

一、状态变量的选取原则

状态变量是能够完全决定系统未来演化所需的最小信息集合。对机械系统,通常取位移与速度;对电路,取电容电压与电感电流;对热系统,取各节点温度。选取时遵循四条准则:

  • 完备性:给定 t₀ 时刻全部状态变量值及此后输入,系统未来行为唯一确定。
  • 独立性:状态变量之间不存在代数约束(否则应消去冗余量)。
  • 可观测性:尽量选取可测量或可估计的量,便于后续辨识与验证。
  • 量纲一致性:同一子系统的状态变量量纲统一,便于构造耦合矩阵与无量纲化。

以两自由度弹簧—质量系统为例:质量块 m₁、m₂ 由弹簧 k₁ 连接至固定端,两质量块之间由弹簧 k₂ 与阻尼器 c 并联耦合。取状态向量 x = [x₁, v₁, x₂, v₂]T,其中 x₁、x₂ 为相对各自平衡位置的位移,v₁、v₂ 为对应速度。这里约定位移向右为正、速度与位移同向为正,全文与图示保持一致。

二、耦合项的数学描述

耦合项刻画子系统间的能量与信息交换。常见形式有三类:

  1. 弹性耦合(势能型):力与相对位移成正比,Fc = k₂(x₂ − x₁)。它只依赖状态差,不依赖速度。
  2. 阻尼耦合(耗散型):力与相对速度成正比,Fd = c(v₂ − v₁),方向总是阻碍相对运动。
  3. 惯性/陀螺耦合:出现在质量矩阵非对角或旋转系统中,表现为加速度层面的交叉项。

耦合项的关键特征是作用力与反作用力成对出现且符号相反:m₁ 受到 k₂(x₂−x₁) 向右的力,则 m₂ 受到等大反向的力。这一对称性是后续能量守恒校验的依据。若耦合项写成 k₂(x₁−x₂) 却未同步修改另一方程,系统将凭空产生或耗散能量,属于典型建模错误。

三、常微分方程建模

对每个质量块分别应用牛顿第二定律,得到耦合常微分方程组:

m₁·dv₁/dt = −k₁·x₁ + k₂·(x₂ − x₁) + c·(v₂ − v₁)
m₂·dv₂/dt = −k₂·(x₂ − x₁) − c·(v₂ − v₁)
dx₁/dt = v₁
dx₂/dt = v₂

写成矩阵形式 ẋ = Ax + Bu,其中状态矩阵 A 的非对角块即体现耦合强度。取示例参数 m₁=1.0 kg、m₂=2.0 kg、k₁=40 N/m、k₂=20 N/m、c=0.5 N·s/m,可算得 A 中耦合相关元素为 a13=k₂/m₁=20、a14=c/m₁=0.5、a31=k₂/m₂=10、a34=c/m₂=0.25。这些数值直接决定两模态的耦合程度与拍频现象。

建模检查:将 A 阵代入特征值计算,若实部全为负,说明阻尼耦合与弹簧耦合共同保证了渐近稳定;若出现正实部,应优先排查耦合项符号是否写反。

四、差分方程建模

当系统以采样数据或离散控制实现时,需将连续模型离散化。采用前向欧拉法,步长 Δt:

x₁[k+1] = x₁[k] + Δt·v₁[k]
v₁[k+1] = v₁[k] + Δt·[−k₁·x₁[k] + k₂·(x₂[k]−x₁[k]) + c·(v₂[k]−v₁[k])]/m₁
x₂[k+1] = x₂[k] + Δt·v₂[k]
v₂[k+1] = v₂[k] + Δt·[−k₂·(x₂[k]−x₁[k]) − c·(v₂[k]−v₁[k])]/m₂

离散化必须关注稳定性:前向欧拉法要求 Δt 小于系统最快模态时间常数的约两倍,否则数值解会发散,被误判为物理不稳定。对本例,最高固有频率约 7.5 rad/s,建议 Δt ≤ 0.02 s;若采用后向欧拉或梯形法,可放宽至 0.05 s 量级。差分方程中的耦合项与连续形式逐项对应,符号约定不得改变。

五、物理守恒与约束关系

耦合模型必须通过守恒校验。对本例,无外激励时总机械能为

E = ½m₁v₁² + ½m₂v₂² + ½k₁x₁² + ½k₂(x₂−x₁)²

当 c=0 时 dE/dt=0,能量守恒;当 c>0 时 dE/dt = −c(v₂−v₁)² ≤ 0,耗散功率恒非正。这一条可直接作为代码中的断言:每步计算能量变化率,若为正则说明耦合项符号或系数有误。

此外还有约束关系需要显式处理:若两质量块之间存在刚性连杆或位移限位,则出现代数约束 x₂−x₁=L,此时系统成为微分代数方程(DAE),不能简单消元后当作独立 ODE 处理,否则约束力信息丢失。工程上常用罚函数法或拉格朗日乘子法引入约束力,并在状态变量中保留约束反力作为代数变量。

两自由度弹簧—质量—阻尼耦合系统建模关系图 固定端 k₁=40 m₁ 1.0 kg x₁, v₁ k₂=20 c=0.5 m₂ 2.0 kg x₂, v₂ F=k₂(x₂−x₁)+c(v₂−v₁) 状态空间方程 ẋ = A·x x = [x₁, v₁, x₂, v₂]ᵀ a₁₃ = k₂/m₁ = 20 a₁₄ = c/m₁ = 0.5 a₃₁ = k₂/m₂ = 10 a₃₄ = c/m₂ = 0.25 守恒与约束校验 E = ½m₁v₁² + ½m₂v₂² + ½k₁x₁² + ½k₂(x₂−x₁)² dE/dt = −c(v₂−v₁)² ≤ 0 (c>0 时耗散) 刚性约束 x₂−x₁=L → DAE,需引入约束反力 耦合项符号成对相反,否则能量不守恒 离散化:前向欧拉 Δt ≤ 0.02 s 耦合项逐项对应,符号约定不变

六、建模流程中的关键判断

实际建模时,建议按以下顺序推进并留下可核查的记录:先列出全部储能元件与耗能元件,确定状态变量个数(等于独立储能元件数);再对每个子系统写平衡方程,把所有跨子系统的力/流项显式标为耦合项;然后检查耦合项是否成对出现、符号是否相反;接着组装矩阵并计算特征值判断稳定性;最后用能量变化率做数值校验。若系统含代数约束,必须在组装前识别并选择消元、罚函数或乘子法,不能默认所有变量都可独立积分。

需要强调的是,状态变量选取并非唯一。同一系统可选绝对位移也可选相对位移,前者物理直观、后者常使耦合项更简洁。无论选哪种,都应在建模文档开头写明坐标原点、正方向与零势能参考点,并在方程、代码与图示三处保持一致。这是多变量耦合系统建模中最容易被忽视、却最直接影响结果可信度的基础工作。