Adams在进行系统的仿真计算时,对于其结果数据处理,往往会关注其某段周期或者频段的数据作为分析目标。例如,在做某个系统动力学分析时(某系统内弹性力分析如下图所示),若把结果曲线的第5s-7s段特征值作为分析目标,需要定义函数对下图5s-7s段的特征值进行计算。本文介绍使用某时间段的RMS值创建DOE目标。
图1 系统内弹力曲线
在Adams view中建立简易模型:在重力方向上创建一弹簧分别连接质量块(PAR2)和大地(ground),见参考附件for_rms_window.cmd。
图2 简易模型
(1) 分别在Bodies的PAR2和ground上创建Marker点MAR2和MAR3。
(2) 在Design Exploration中点击Design Variable创建弹簧刚度设计变量spring_k,输入初始值10^5,Value Range by选择Absolute Min and Max value,Min.Volue输入80000,Max.Value输入120000。
(3) 设置弹簧参数。在stiffness中输入弹簧刚度设计变量.MOD1.spring_k,Preload中输入弹簧预载0,在Displacement At Preload中输入预载对应的弹簧长度:(DY(MAR3, MAR2, MAR2)),在I Marker Name中输入部件PAR2的Marker点.MOD1.PAR2.MAR2,在J Marker Name中输入大地ground的Marker点.MOD1.ground.MAR3。
(4) 创建测量。创建弹簧长度变化的测量,如下图所示,在Function Builder中输入测量函数:DY( .MOD1.PAR2.MAR2, .MOD1.ground.MAR3, .MOD1.ground.MAR3)。
图3 创建弹簧长度的测量
(5) 仿真计算。仅在重力下进行仿真:仿真时间为5s,计算步数为50,仿真结果如图所示。
图4 弹簧长度随时间变化曲线
(6) 创建如图4所示时间区间为[2.5,5]的弹簧长度曲线的View函数。通过Elements-Function-Creat a Function创建函数,如图5所示,输入名称FUNC_TIME2PT5_TO_END,输入函数,如下:DB_DEFAULT(.system_defaults,"analysis").FUNCTION_MEA_DY.Q.values[VALI(DB_DEFAULT(.system_defaults,"analysis").FUNCTION_MEA_DY.TIME[*],2.5):VALI(DB_DEFAULT(.system_defaults,"analysis").FUNCTION_MEA_DY.TIME[*],5)],指测量函数.FUNCTION_MEA_DY的计算结果2.5s-5s的数组。此处View函数创建也可通过File-Import-File Type“Adams View Comment File(*.cmd)”导入rms_window_DOE_objective.cmd命令创建,参考附件rms_window_DOE_objective.cmd。公式中涉及到DB_DEFAULT函数和VALI函数:DB_DEFAULT:用.system_defaults指定默认的数据库。格式为DB_DEFAULT (Defaults Object Name, Object Type),其中Defaults Object Name为数据库中默认值的名称,通常为system_defaults,上述公式中system_defaults指.MOD1.Last_Run(最后一次计算结果),Object Type为对象类型。VALI:指定的一列数组中最接近索引值的序列。格式为VALI(A,X),其中A为一列数组,X为索引值。上述公式VALI(DB_DEFAULT(.system_defaults,"analysis").FUNCTION_MEA_DY.TIME[*],2.5)中含义为测量函数.FUNCTION_MEA_DY的结果数组中TIME值最接近2.5的序列值。创建区间为[2.5,5]的弹簧长度曲线的RMS值的View函数.RMS_FUNC_TIME2PT5_TO_END,公式如下:RMS(FUNC_TIME2PT5_TO_END(analysis)),如图6所示。可参考附件,通过导入rms_window_DOE_objective.cmd命令进行创建。
图5 创建2.5s-5s区间数据View函数
图6 创建2.5s-5s区间数据RMS值的View函数
(7) 创建弹簧长度曲线2.5s-5s区间数据的RMS值为DOE目标。如下图所示,Definition by选择View Function,Fuction选择已创建的View函数.RMS_FUNC_TIME2PT5_TO_END。
图7 创建目标变量
(8) 基于DOE目标对设计变量进行灵敏度分析。在Design Exploration进入Insight分析界面,在Experiment中输入分析名称,在Model中选择分析模型,在Simulation Script中选择仿真脚本。点击OK进入Insight分析界面。
在Insight中分别添加设计变量和目标变量,如下图所示,并依次点击进行计算。
图8 添加设计变量和目标变量
基于DOE目标对设计变量灵敏度分析结果如下:结果显示弹簧刚度spring_k对目标的影响程度为-5.33%。
图9 设计变量灵敏度分析结果
附加→Creating DOE objective for RMS of time-windowed results 含模型文件如下:
- 模型文件:for_rms_window.cmd
- 目标变量创建文件:rms_window_DOE_objective.cmd