1. Simpack软件入门

Simpack 是面向多体系统动力学的专业仿真平台,核心用途是把机械系统抽象为“刚体/柔体 + 运动副 + 力元 + 激励”的计算模型,再通过时域积分求解系统的位移、速度、加速度与约束反力。对初学者而言,入门阶段最重要的不是立刻掌握复杂建模技巧,而是先建立对软件工作环境的整体认知:界面由哪些区域组成、各模块分别负责什么、模型以什么文件形式保存、从新建到出结果需要经过哪些必要环节。只有把这条主线理顺,后续的建模、参数设置与结果分析才不会变成零散操作。

一、界面布局:围绕“模型树 + 图形视图 + 属性编辑”组织

Simpack 的典型工作界面可以理解为四个协同区域。左侧是模型树(Model Tree),它以层级方式列出整个模型的所有对象,例如 Bodies(体)、Joints(运动副)、Force Elements(力元)、Measurements(测量)、Sensors(传感器)以及 Solver 设置等。模型树是导航中心,几乎所有对象都可以在这里选中、右键新建或拖拽调整。中部是图形视图(3D View),用于显示几何模型、坐标系、运动副标记和仿真动画,是检查装配位置与运动关系是否正确的直观窗口。右侧通常是属性编辑器(Property Editor),选中模型树中的任意对象后,这里会显示该对象的参数页,例如质量、惯量、初始位置、刚度、阻尼等。底部或独立窗口是信息/输出区,用于显示求解日志、警告、错误以及结果曲线。

需要特别注意的是,Simpack 中大量对象都依赖参考坐标系(Reference Frame)定义位置和方向。入门阶段应养成习惯:新建体或运动副时先确认它挂在哪个坐标系下,再填写位置与姿态。否则模型树看起来完整,图形视图中的装配却可能错位。

Simpack 入门工作界面与建模主线 模型树 Model Tree ▸ Bodies(体) ▸ Joints(运动副) ▸ Force Elements(力元) ▸ Measurements(测量) ▸ Sensors(传感器) ▸ Solver Settings ▸ Results(结果) 选中对象后 右键可新建 / 编辑 拖拽可调整层级 双击打开属性页 图形视图 3D View 基座 Body 摆臂 转动副 Joint X Z 显示几何、坐标系、运动副标记与动画 属性编辑器 对象:Body_01 质量 m = 2.5 kg 惯量 Ixx = 0.02 kg·m² 初始位置 (0, 0, 0.5) 参考坐标系:ISO_CS 参数修改后 需重新求解 才能反映到结果 图形视图同步刷新 基本流程:新建模型 → 定义体与坐标系 → 添加运动副/力元 → 设置求解器 → 求解 → 查看结果

二、模块组成:从建模到求解的功能分工

Simpack 的功能模块可以按“建模—求解—后处理”三段来理解。建模阶段主要使用 Model Setup 相关功能:在模型树中创建体、定义质量与惯量、通过 Joint 建立体与体之间的相对运动约束、通过 Force Element 添加弹簧、阻尼、衬套或外力。求解阶段由 Solver 模块承担,常见设置包括积分器类型、仿真时间、步长、输出步长以及是否进行静平衡计算。后处理阶段使用 Results / Post-Processing 模块,把仿真生成的曲线、动画和测量数据可视化。

此外,Simpack 还提供 Parameter Variation 与 Optimization 等扩展能力,用于批量改变参数并比较结果。入门阶段不必全部掌握,但应知道这些模块存在,并理解它们都建立在同一个模型树之上:模型树是唯一数据源,求解与后处理都读取它。

三、文件类型:模型、结果与脚本各司其职

Simpack 常见文件类型包括:.spck 模型文件,保存完整的模型树、参数与拓扑关系,是核心工作文件;.sbr 结果文件,保存求解后的时间历程数据;.spck.bak 备份文件,用于防止误操作丢失模型;.slv 求解器输入文件,由模型导出后交给求解器执行;以及 .tcl / .py 等脚本文件,用于自动化建模或批量处理。理解这些文件的区别,可以避免把结果文件误当模型文件打开,也能在模型损坏时快速从备份恢复。

文件类型作用使用场景
.spck模型文件,保存模型树与参数日常建模、保存与打开
.sbr结果文件,保存仿真时间历程后处理绘图与动画
.slv求解器输入文件命令行或批处理求解
.spck.bak模型备份误操作后恢复

四、基本操作流程:一个可复现的最小示例

下面以一个单摆模型为例,说明从新建到出结果的最小闭环。示例参数为合理假设,用于教学演示,并非实测数据。

  1. 新建模型:启动 Simpack,选择新建模型,指定重力方向为 -Z,单位制采用 mm-kg-s。
  2. 创建基座:在模型树中新建 Body,命名为 Base,质量设为 10 kg,固定于全局坐标系。
  3. 创建摆臂:新建 Body,命名为 Arm,质量 2.5 kg,惯量 Ixx = 0.02 kg·m²,初始位置设为 (0, 0, 0.5) m。
  4. 添加转动副:在 Base 与 Arm 之间新建 Revolute Joint,旋转轴设为 Y 轴,检查图形视图中铰点位置是否正确。
  5. 设置求解器:仿真时间设为 5 s,输出步长 0.01 s,积分器选择默认的变步长积分器,并勾选静平衡计算。
  6. 求解与查看:点击求解,等待日志显示“Simulation finished successfully”,然后在 Results 中绘制 Arm 的角位移曲线,观察其是否呈周期性摆动。
判断模型是否正确的三个快速检查:图形视图中装配位置是否合理;模型树中运动副是否连接了正确的两个体;求解日志中是否出现约束冲突或奇异警告。
常见错误:新建体时未指定参考坐标系,导致体被默认挂在全局坐标系下,后续添加运动副时出现位置偏移。建议每次新建对象后立即在属性编辑器中确认参考坐标系与初始位置。

掌握以上内容后,读者应能独立完成“新建模型—搭建简单多体系统—求解—查看曲线”的完整流程,并理解模型树、图形视图与属性编辑器之间的联动关系。这是后续学习复杂建模、参数化与优化功能的基础。