大家对 STEP、SIN 这种标准函数很熟悉,可一旦遇到试验采集的电机扭矩曲线或者实测的路面起伏数据,那一堆密密麻麻的离散 x, y点该怎么喂给软件?
本文,简单介绍 Ansys Motion 处理表格数据的方法:Spline(样条曲线)+ Interpolation Function(插值函数)。
在 Ansys Motion 中,Spline 就像是一个“数据仓库”。它本身不产生动力,但它存储了你上传的坐标点数据。
应用场景:驱动位移、外力载荷、衬套非线性刚度、电机外特性曲线等。
数据来源:支持手动输入或直接导入 .txt / .csv 文件。
当你把数据点丢给软件后,软件需要通过算法把点连成线。Ansys Motion里面支持AKIMA 和LININT两种插值函数 ,它们的区别是:

下面是AKISPL和LININT两种插值函数拟合曲线的区别:

在 Pre-processor(前处理器)中进入 Entity 选项卡,创建 Spline,这里可以直接复 制粘贴数据,也可以外部直接导入.txt / .csv格式的数据;

WB MOTION前处理中,在sub-entity中插入spline;

💡 避坑小贴士:
别忘了单位!Ansys Motion 导出的数据通常是弧度(rad)和毫米(mm)。请确保你的 Spline 数据单位与模型全局单位保持一致。
这是最关键的一步。在定义驱动(Motion)或受力(Force)时,我们需要调用函数命令。
语法范例:
AKISPL(x_var, spline_id, order)
LININT(x_var, spline_id, order)
x_var:自变量(通常是时间 TIME 或位移 DX(...))。
order:导数阶数(0 为求值,1 为求一阶导,2 为求二阶导)。
代码示例:
AKISPL(TIME, p1, 0)-- 意为:根据当前时间,从 1 号 Spline 中查找对应的插值结果。代码示例:
AKISPL(TIME, p1, 0)
LININT(TIME, p1, 0)
在 Pre-processor前处理中定义函数表达式,在参数列表那里用p1关联你要引用的spline数据::

在 WB motion前处理器中定义函数表达式,在参数列表那里用p1关联你要引用的spline数据:

切线控制 (Tangents): 在 Spline 的首尾两端,你可以手动设置切线斜率。这能有效防止仿真在第一帧因为速度突变出现“启动冲击”。
外推逻辑 (Extrapolation): 如果仿真时间超过了你定义的 Spline 范围,软件默认通常保持末端斜率线性外推。建议在数据结尾多加一个点,确保运动趋势可控。
自动求导: 通过修改 order 参数,你可以直接获取速度或加速度级的数据,无需再套用复杂的微分公式。
为了保证求解器不报错,样条曲线的数据必须符合以下规则:
必须确保没有空数据。
必须从小到大顺序输入(单调递增)。
严禁重复值。
严禁空数据。
至少需要 4 个数据点(对于 AKISPL 算法尤为重要)。
针对 x 轴数据:
针对 y 轴数据:
