2. 多领域系统建模基础
多领域系统建模的核心难题在于:机械、电气、液压、热力等物理域看似符号体系不同,却共享同一套能量传递与守恒规律。若每个域各写一套方程,模型既难复用,也难保证接口一致。本节围绕三种互补的建模语言展开——键合图提供跨域统一的能量拓扑,端口-哈密顿提供带能量结构的系统描述,Modelica 则提供面向对象的方程建模与工具落地方式。理解它们的分工,是后续联合仿真的前提。
一、键合图:用“势—流”统一描述能量传递
键合图(Bond Graph)的基本思想是:任何物理域的能量传递都可以用一对共轭变量描述,即势变量 e(effort)与流变量 f(flow),二者乘积为功率 P = e·f。不同域的对应关系如下表所示。
| 物理域 | 势变量 e | 流变量 f | 典型元件 |
|---|---|---|---|
| 机械平移 | 力 F (N) | 速度 v (m/s) | 质量 m、弹簧 k、阻尼 c |
| 机械旋转 | 力矩 T (N·m) | 角速度 ω (rad/s) | 转动惯量 J、扭转弹簧 |
| 电气 | 电压 u (V) | 电流 i (A) | 电感 L、电容 C、电阻 R |
| 液压 | 压力 p (Pa) | 流量 q (m³/s) | 液感、液容、液阻 |
键合图的连接由三类基本节点构成:0-节点(共势节点,各支路势相等、流代数和为零,对应并联)、1-节点(共流节点,各支路流相等、势代数和为零,对应串联),以及TF/GY(变换器/回转器,用于域间能量转换,如电机将电功率转为机械功率)。储能元件用 C(容性,势的积分)和 I(惯性,流的积分)表示,耗能元件用 R 表示,源用 Se(势源)和 Sf(流源)表示。
以“直流电机驱动丝杠”为例:电气侧电压源 Se 经电阻 R 与电感 I 串联,通过 GY 回转器把电流转换为力矩,再经 1-节点进入机械侧转动惯量 I 与阻尼 R,最后经 TF 变换器把旋转运动转为直线运动。整条链路上每个节点都满足功率守恒,因此无需为每个域单独推导接口方程,这正是键合图在联合仿真中作为“能量骨架”的价值。
二、端口-哈密顿:显式保留能量结构
端口-哈密顿(Port-Hamiltonian, PH)系统把系统写成如下形式:
dx/dt = [J(x) - R(x)] · ∂H/∂x + B(x)·u
y = Bᵀ(x) · ∂H/∂x
其中 x 为状态变量,H(x) 为哈密顿函数(系统总能量),J(x) 为反对称互联矩阵(J = -Jᵀ,描述能量在内部的无损交换),R(x) 为半正定耗散矩阵(R = Rᵀ ≥ 0,描述能量耗散),B(x) 为输入矩阵,u、y 为端口输入与输出。该形式的关键优势是:能量守恒与耗散被显式编码在矩阵结构中,dH/dt = -∂Hᵀ/∂x·R·∂H/∂x + yᵀu,即能量变化只来自耗散和外部端口,不会因数值积分而凭空产生或消失。
在联合仿真中,PH 形式特别适合作为“被控对象模型”的接口:控制器只需通过端口 (u, y) 交互,无需了解内部状态细节,天然支持模块化替换与稳定性分析。例如机械臂关节可写成 PH 形式,J 描述关节间耦合,R 描述摩擦,H 为动能加势能,控制器通过力矩端口接入。
三、Modelica 核心语法与方程建模思想
Modelica 是非因果、面向对象、基于方程的建模语言。与 Simulink 等因果建模工具不同,Modelica 不要求用户指定“谁算谁”,而是声明一组等式,由编译器自动进行符号处理与因果化。其核心语法要素包括:
- 模型类:
model/connector/record/block,支持继承(extends)与参数化。 - 变量声明:
parameter(编译期常量)、constant、普通变量,配合单位与初值。 - 方程区:
equation段中写等式,algorithm段中写赋值语句,二者语义不同。 - 连接器:
connector定义接口变量,connect()自动生成势相等、流和为零的方程。 - 事件与离散:
when/if处理状态切换,der()表示时间导数。
下面是一个弹簧-质量-阻尼系统的 Modelica 示例,展示方程建模的写法:
model MassSpringDamper
parameter Real m = 1.0 "质量 kg";
parameter Real k = 100 "刚度 N/m";
parameter Real c = 2.0 "阻尼 N·s/m";
Real x(start = 0.1) "位移 m";
Real v(start = 0.0) "速度 m/s";
equation
der(x) = v;
m * der(v) = -k * x - c * v;
end MassSpringDamper;
注意这里没有写“先算 v 再算 x”的顺序,两条方程是并列声明的。编译器会通过索引约简(index reduction)和因果化,自动决定求解顺序。这种“声明式”风格使模型可以跨工具复用,也便于与键合图、PH 形式互相转换。
四、三种方法的协同关系
为了直观展示三者在建模流程中的分工与数据流向,下图给出一个协同关系示意。左侧是物理系统,中间是三种建模视角,右侧是联合仿真工具链。键合图输出拓扑与功率流,PH 输出能量结构与端口,Modelica 输出可执行方程与接口,三者共同支撑 FMI/FMU 形式的联合仿真。
从工程实践角度看,三种方法各有适用边界。键合图适合系统级拓扑梳理与跨域接口定义,尤其在多域耦合初期帮助识别能量流向;端口-哈密顿适合需要稳定性证明或能量监控的场景,如机器人、电力电子变换器;Modelica 适合需要快速迭代、参数扫描和工具链集成的场景。实际项目中,可以先画键合图确定拓扑,再把关键子系统写成 PH 形式用于控制器设计,最后用 Modelica 实现完整模型并导出 FMU 参与联合仿真。
equation 段中变量数不匹配、代数环无法求解;把键合图当成“流程图”而忽略势/流共轭关系,会导致 0-节点与 1-节点混用、功率不守恒。建议在建模初期先用纸面画出键合图拓扑,再逐节点核对势流关系,最后才进入 Modelica 编码。
本节的核心结论是:多领域建模不是把不同域的方程简单堆叠,而是先找到统一的能量语言(键合图),再显式保留能量结构(端口-哈密顿),最后用声明式方程语言(Modelica)落地。掌握这三层视角,才能在后续联合仿真中正确划分接口、判断耦合稳定性,并高效定位模型不收敛的根源。