3. 联合仿真平台与工具链选型
在机电联合仿真中,工具链选型本质上不是“选一个软件”,而是选一套接口方式 + 求解器协调策略 + 数据交换机制的组合。同一对工具,用不同的接口和步长策略,可能得到完全不同的稳定性与精度。本节围绕三类主流方案展开:Simulink+Simscape、Adams+Matlab、AMESim+Simulink,重点分析它们的接口形式、求解器如何协调、数据如何交换,并给出可操作的选型判断依据。
一、三类主流方案的接口方式
Simulink+Simscape属于“同源同求解器”方案。Simscape 模型在 Simulink 环境中以物理网络方式建模,二者共享同一求解器框架。Simscape 支持两种求解方式:局部求解器(Local Solver)和全局求解器(Global Solver)。局部求解器把物理网络单独积分,再以固定步长与 Simulink 交换;全局求解器则把物理方程并入 Simulink 的连续状态统一求解。接口上不需要额外的进程通信,数据以内存变量直接传递,因此延迟最小、配置最简单。
Adams+Matlab属于“多体动力学 + 控制”的跨工具方案。Adams 负责机械多体动力学,Matlab/Simulink 负责控制逻辑。接口方式主要有三种:一是 Adams/Controls 导出被控对象为 S-Function,嵌入 Simulink 求解;二是通过 FMI/FMU 交换;三是通过共享内存或 TCP/IP 做联合仿真。前两种属于“模型交换”,第三种属于“协同仿真”。Adams 侧通常使用变步长积分器(如 GSTIFF、WSTIFF),Simulink 侧使用定步长或变步长,二者需要约定通信步长。
AMESim+Simulink属于“液压/热流体 + 控制”的典型组合。AMESim 提供 SimuCosim 接口,把 AMESim 模型编译为 S-Function 或 FMU,供 Simulink 调用。AMESim 侧常用变步长求解器(如标准积分器),Simulink 侧可定步长或变步长。接口支持两种模式:一是 AMESim 作为主求解器、Simulink 作为从属;二是 Simulink 作为主求解器、AMESim 作为从属。主从关系决定了谁控制通信步长和推进节奏。
二、求解器协调:谁推进时间,谁决定步长
联合仿真的稳定性,很大程度上取决于“谁控制时间推进”。常见有三种协调模式:
- 统一求解器:所有方程并入一个求解器,如 Simscape 全局求解器。优点是精度高、无通信误差;缺点是模型规模大时计算量急剧上升。
- 主从协同:一个工具作为主求解器,按固定通信步长推进,另一个工具作为从属,在两次通信之间独立积分。AMESim+Simulink 的 SimuCosim 常用这种模式。通信步长必须小于最快动态的时间常数,否则会出现数值不稳定。
- 模型交换:把一方模型导出为 S-Function 或 FMU,嵌入另一方求解器。Adams 导出 S-Function 给 Simulink 就属于此类。此时被导出模型的求解器被“冻结”,由宿主求解器统一推进。
以 Adams+Simulink 为例,若 Adams 侧机械系统最低阶频率约 20 Hz,则通信步长建议不超过 1/(20×10)=5 ms,工程上常取 1 ms 或 0.5 ms。若通信步长取 10 ms,机械侧在两次通信之间已经历多个振荡周期,Simulink 侧看到的力/位移会严重失真,表现为仿真发散或高频抖动。
三、数据交换机制:变量、单位与采样
数据交换不只是“传几个数”,需要明确三件事:交换变量、单位约定、采样与保持方式。
交换变量方面,机械侧通常输出位移、速度、加速度,控制侧输出力、力矩、电流或阀开度。以 Adams+Simulink 为例,Adams 侧通过 Adams/Controls 的 Plant Input/Plant Output 定义接口变量:Plant Input 接收 Simulink 传来的力或力矩,Plant Output 输出位移、速度等状态量。变量名、方向、正负号必须在两侧一致,否则会出现“控制方向反了”的典型错误。
单位约定方面,Adams 默认常用 mm、N、s,Simulink 常用 m、N、s。若不做单位换算,位移量会差 1000 倍,控制增益完全失配。建议在接口层统一为 SI 单位,或在 S-Function 内部做显式换算。
采样与保持方面,主从协同模式下,从属工具在通信间隔内通常采用零阶保持(ZOH)或一阶保持(FOH)。零阶保持实现简单,但会引入相位滞后;一阶保持精度更高,但需要传递变化率。对于控制带宽接近通信频率的场景,建议使用一阶保持或缩短通信步长。
四、选型判断:从系统特征出发
选型不应只看“哪个软件更熟”,而应从系统特征出发。以下判断表可作为工程参考:
| 系统特征 | 推荐方案 | 接口方式 | 求解器协调 | 通信步长建议 |
|---|---|---|---|---|
| 电气-机械-控制紧耦合,模型规模中等 | Simulink+Simscape | 内存直传 | 全局求解器统一求解 | 无需外部通信步长 |
| 机构运动学/动力学复杂,控制频率较低 | Adams+Matlab | S-Function 或 FMU | Simulink 主,Adams 从 | ≤ 1/10 机械最低阶周期 |
| 液压/热流体非线性强,控制带宽中等 | AMESim+Simulink | SimuCosim / FMU | AMESim 主或 Simulink 主 | ≤ 1/10 液压最低阶周期 |
| 多工具异构,需跨团队交付 | FMI/FMU 统一封装 | FMU 2.0/3.0 | 宿主求解器统一推进 | 按 FMU 接口步长 |
综合来看,Simulink+Simscape 适合“同源紧耦合、追求稳定与实时”的场景;Adams+Matlab 适合“机械动力学复杂、控制相对独立”的场景;AMESim+Simulink 适合“液压/热流体非线性突出、需要专业流体库”的场景。若团队需要跨工具、跨团队交付,FMI/FMU 是更通用的封装方式,但需注意 FMU 的求解器类型(模型交换 vs 协同仿真)与宿主工具的兼容性。选型的最终依据,是系统动态特性、接口实时性要求和团队既有工具链三者的交集。