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 形式互相转换。

建模思想对照:键合图回答“能量怎么流”,端口-哈密顿回答“能量结构是什么”,Modelica 回答“方程怎么写、工具怎么算”。三者不是替代关系,而是同一物理系统的三种视角。实际工程中常见做法是:用键合图梳理拓扑,用 PH 形式保证能量一致性,用 Modelica 落地为可仿真代码。

四、三种方法的协同关系

为了直观展示三者在建模流程中的分工与数据流向,下图给出一个协同关系示意。左侧是物理系统,中间是三种建模视角,右侧是联合仿真工具链。键合图输出拓扑与功率流,PH 输出能量结构与端口,Modelica 输出可执行方程与接口,三者共同支撑 FMI/FMU 形式的联合仿真。

多领域建模三视角协同关系 物理系统 机械 + 电气 + 液压 + 热 能量传递 与守恒 键合图 势 e / 流 f 0-节点 / 1-节点 TF / GY / C / I / R → 能量拓扑 端口-哈密顿 J 反对称互联 R 半正定耗散 H(x) 总能量 → 能量结构 Modelica equation / connect 非因果 · 面向对象 → 可执行方程 联合仿真工具链 FMI / FMU 接口 Dymola · OpenModelica Simulink · Adams 多域耦合求解 键合图梳理拓扑 · 端口-哈密顿保证能量一致 · Modelica 落地为可仿真代码

从工程实践角度看,三种方法各有适用边界。键合图适合系统级拓扑梳理与跨域接口定义,尤其在多域耦合初期帮助识别能量流向;端口-哈密顿适合需要稳定性证明或能量监控的场景,如机器人、电力电子变换器;Modelica 适合需要快速迭代、参数扫描和工具链集成的场景。实际项目中,可以先画键合图确定拓扑,再把关键子系统写成 PH 形式用于控制器设计,最后用 Modelica 实现完整模型并导出 FMU 参与联合仿真。

常见误区:把 Modelica 当成“画框连线的仿真软件”而忽略方程语义,会导致 equation 段中变量数不匹配、代数环无法求解;把键合图当成“流程图”而忽略势/流共轭关系,会导致 0-节点与 1-节点混用、功率不守恒。建议在建模初期先用纸面画出键合图拓扑,再逐节点核对势流关系,最后才进入 Modelica 编码。

本节的核心结论是:多领域建模不是把不同域的方程简单堆叠,而是先找到统一的能量语言(键合图),再显式保留能量结构(端口-哈密顿),最后用声明式方程语言(Modelica)落地。掌握这三层视角,才能在后续联合仿真中正确划分接口、判断耦合稳定性,并高效定位模型不收敛的根源。