ABAQUS在Explicit求解器下的计算结果通常是不光滑的,这是由于Explicit求解过程不需要通过迭代修正计算残差。然而对于冲击问题或者断裂力学等问题将不可避免的使用显式求解。部分同学可能会通过MATLAB或Python等其他软件的滤波器平滑曲线。实际上ABAQUS的后处理模块下的选项卡“创建XY数据”-“操作XY数据”包含多种形式的光滑函数,今天就和喵星人一起看看吧~
1.Smooth & Smooth2
1.1 Smooth函数应用
Smooth函数在软件中的操作入口如下图所示:
ABAQUS用户手册中给出了该函数的解释。喵星人翻译如下:
smooth函数采用简单移动平均法计算新的Y坐标值,即每个新Y坐标值均为若干邻点的算术平均值。用户可指定参与平均计算的邻点数量:数值越大,生成的曲线越平滑。Abaqus/CAE将指定值解释为当前X坐标左右两侧各取的点数(默认值为2,即使用5个数据点计算每个新Y坐标值)。
由此可见,Smooth函数采用周围几个点的算数平均值去除噪声,概念相对清晰。这里喵星人采用Smooth函数平滑考虑焊缝断裂的钢连接滞回曲线,其中输入参数点为5(实际上采用11个点进行平滑),对比效果如图所示。由图可知,平滑后的曲线基本位于原波动曲线中心,当平滑点增多时,曲线更加平滑,但在端部容易失真(这是由于端部不能取较多的数据点)。
1.2 Smooth2函数应用
Smooth2函数的软件操作入口位于Smooth下方,喵星人翻译用户手册如下:
smooth2函数采用指数移动平均法计算新的Y坐标值,即邻点对结果Y坐标值的影响程度呈指数级增加。用户可为曲线指定0至1之间的平滑系数:该值越小,生成的曲线越平滑(默认平滑系数为0.75)。
喵星人认为其中“指数移动平均法”是指赋予临近数据更高的权重,较远距离数据权重按指数规律衰减。话不多说,直接来看平滑后的效果(系数取0.1)。
由此可见,Smooth2函数确实能平滑曲线,但仔细对比数据可以发现,平滑后结果并不位于波动数据中心,而是沿较高值方向进行偏移。因此喵星人认为在这种情况下效果不及Smooth函数。
2.“套娃”的Smooth函数
这下喵星人要拿出必杀技了。可多次点击Smooth函数进行“套娃”,函数界面如下(这里套娃2层,爱整活的可多套娃几层~)。
这个时候的平滑效果基本与点数选取5的Smooth差不多,且均位于原曲线的波动中心。喵星人对这个结果非常满意!
因此喵星人总结下来,在这个案例里面,采用“套娃”的Smooth函数平滑效率相对更高,操作也相对容易。
3.其他形式的滤波器
3.1 检查并再次合并同类项
Abaqus还提供了各式各样的滤波器。以下为用户手册中的滤波器列表。可见这些滤波器控制参数基本与频率相关。与smooth不同的是,这些滤波器输入的数据的X列必须单调递增。对于滞回曲线这些X和Y数据均是周期往复的并不能直接使用。需单独对荷载等进行光滑处理后,采用combine函数输出滞回曲线。
这里喵星人给出采用butterworthFilter函数平滑滞回曲线后的结果。输入函数格式为:
combine ( "U2 PI: rootAssembly N: 1 NSET RP-1-1",butterworthFilter ( xyData="RF2 PI: rootAssembly N: 1 NSET RP-1-1" , cutoffFrequency=0.5 ) )
平滑效果如下图:可见曲线平滑效果似乎比Smooth和Smooth2更加优异,但仍然偏离了原曲线的波动中心。不得不说的是,这些滤波器仍然有较多的应用场景,尤其对于某些冲击问题的时间序列,可能有更好的平滑效果。
通过以上案例,想必各位同学应该能发现如何评价一种光滑函数的合理性。喵星人认为需将光滑后的曲线和原曲线放在一起对比,结合试验或其他概念进行判断合理性。毕竟没有放之四海而皆准的方法,具体问题具体分析方是永恒的真理!
有兴趣的同学可以点击下方“阅读原文”观看操作流程。希望喵星人的技巧对您所有帮助!