在使用Simpack计算动力学响应时,有时候想知道参数取多少时,动力学响应最小(即振动最小)。当然,我们可以采用最笨的方法:逐个修改参数,逐个对比结果。如果分析的参数少、取值范围小,也是可以采用这种“笨”方法的,但是如果想同时在大区间分析多个参数对某个响应的影响,如果再采用“逐个修改参数、逐个保存计算结果”这种方法,这是十分费力的。本文就是基于这种背景下,提出使用软件自带的批处理方法DoE(Design of Experiments)来进行参数优化。
采用如下步骤进行:
本文以某轨道车辆整车动力学为例,这里不展开讲具体的建模过程,详细建模过程可参考《SIMPACK 9 实例教程》
在优化过程中,需要对某几个参数进行变参计算,因此要把即将优化的参数进行参数化。比如本文计划分析二系悬挂垂向参数(刚度、阻尼)对车体垂向加速度的影响,那么就需要把二系悬挂垂向刚度、阻尼进行参数化,本文中把二系悬挂垂向刚度、阻尼分别设为ksz、Csz,且在创建力元时使用这两个参数,见图1。
图1 建立参数化变量
DoE>新建DoE配置,弹出界面,如图2所示,为第一项“DoE configuration”、第三项“DoE directory”指定文件夹,注意这两个文件夹不能属于同一个路径,否则会报错。第二项“Model”不需要指定,默认会填入目前模型的路径。
图2 新建DoE
单击“Experiments”,把参数拖入Factors栏中,同时依次设置循环数,本文中,刚度设置5个循环,阻尼设置3个循环,见图3,那么总共计算次数为5*3=15次。
图3 设置循环次数
设置完了循环次数,再依次设置参数的变化区间,可以输入数值,也可以按百分比输入,见图4,设置完成后,每个参数要取的具体值就确定了。
图4 设置参数变化区间
单击“Responses”,把需要看的结果文件拖入,见图5。一般的,“Result Elements”只有涉及轮轨关系的一些结果,没有关于车体加速度的输出值,因此需要手动创建一个Element。
图5 设置响应
创建“Result Elements”不能在DoE界面上设置,只能在前处理界面进行,依次创建x、y、z三个方向的加速度,见图6。
图6 创建Result Elements
单击“Tasks”,选择“Time Integration with Measurements(DoE responses only)”,离线积分,只输出指定的响应,其余都不输出,见图7。
图7 设置任务
单击“Control”,可以看到计算顺序及每个顺序下的参数值,总共需要计算15次,每次下的具体数值见图8。单击“Start experiment”开始计算,依次进行计算,显示“running”见图9。
图8 设置控制
图9 计算进行中
打开图2中的第三项“DoE directory”文件夹,发现结果文件已经存储在里面了,见图10。
图10 结果文件
使用后处理程序打开结果文件(红色方框标出),把各个循环下的z方向的加速度都拖入显示界面,可以方便比较各个参数值下的的z方向的加速度大小,见图11。
图11 比较结果
通过这个例子大概介绍了使用DoE进行参数优化的步骤,可以较方便地进行参数对比,但是还有些不足,比如如果要比较平稳性指标,不能直接得到,还需要嵌入数据处理方法(滤波、频率加权、置信度等),这也是后续需要做