本文以简单的双质量弹簧振子模型为例,介绍Simpack批处理运行的基本流程和操作方法,供大家参考。
1、建立Simpack模型
建立双质量弹簧振子模型,包含2个body、2个竖直方向移动joint和2个弹簧力元。其中,弹簧属性中的刚度和阻尼系数设置为参数化。模型保存为two_mass_oscillator.spck。
在Simpack Subvars窗口中,右键选择SubVars项,在弹出的快捷菜单中选择Export SubVar(s)命令,得到导出的参数化变量文件。
生成文件名称为spring_factor.subvar。
该文件支持文本编辑,使用文本编辑器打开后显示的内容为下图所示。
上述操作主要是为了生成subvar参数变量文件,也可以手动或其它方法建立该文件。
2、导入参数化变量subvar文件
首先设置Search Path,路径为.subvar文件的存放路径。然后在模型树中选择SubVar Files并右键点击选择Edit命令,在弹出的对话框中,通过点击+号,选择之前生成的spring_factor.subvar文件。
注意,在Overwriting列中有两个选项,Initial表示模型中的变量保持初始值,即不论导入subvar文件中的变量值如何变化,模型里的变量值还保持原有值,没有变化; Overwriting表示使用导入subvar文件中的变量值替换模型中原来的变量值。
一般情况下,为了快速修改模型参数,选择Overwriting选项。本文也是选择Overwriting选项。
这时,打开模型中的参数变量,发现其已经无法修改,且显示该变量来源于导入的subvar文件。
在$SLV_SolverSettings中设置仿真时间和采样频率。
保存模型并关闭模型。
3、建立Simpack脚本和批处理文件
.sjs是Simpack前处理脚本文件,可以参考Simpack的相关帮助进行编写。本例编写的sjs脚本内容如下:
varmyModel = Spck.openModel("two_mass_oscillator.spck "); // 打开模型
Spck.Slv.integ(myModel); //时域积分
Spck.Slv.meas(myModel); //测量分析
myModel.close(); //关闭模型
把上述脚本保存为time_integration.sjs文件,并存放在与模型文件two_mass_oscillator.spck相同的文件夹中。
然后,建立一个名称为runsimpack1.bat的批处理文件,内容为:
“D:ProgramFilesSIMPACK-9.9uninwin64simpack-slv.exe” -s time_integration.sjs
该语句分为三部分,使用空格隔开,解释为:
前面是Simpack 求解器的完整路径(Simpack 9.9版本);
参数-s 表示使用script方式仿真;
后面是使用的sjs脚本文件。
注意:如果安装路径有空格,在路径上添加引号,表示是一个完整的路径。
现在,可以在文件夹中直接双击该批处理文件运行仿真,不需要预先打开Simpack软件。
为方便起见,在计算机环境变量中设置Simpack安装路径。在系统变量Paht中添加Simpack安装路径,例如D:Program FilesSimpack-9.10.1uninwin64,见下图所示。这样可以在批处理语句中简化Simpack的路径。
把上述的runsimpack1.bat文件复制,并重命名为runsimpack2.bat,其内容修改为:
simpack-slv.exe -s time_integration.sjs
双击运行这个runsimpack2.bat文件,其结果和运行runsimpack1.bat完全一样。
4、修改变量值
用文本编辑器打开spring_factor.subvar文件,并修改其中的变量数值,并保存。例如,本例修改为下图所示数值(4个变量值都被修改)。
重新运行bat进行批处理仿真。这时Simpack模型就会使用修改后的变量值进行仿真。两者的结果可在Simpack后处理中进行对比查看。
左图:变量修改前的仿真结果 右图:变量修改后的仿真结果
总结:
使用Simpack批处理仿真方法,可以大大提升模型建模和仿真效率,而且还可以与Isight软件集成,进行最优化分析。
编辑:hfy
-
SIMPACK
+关注
关注
0文章
6浏览量
6987 -
弹簧振子
+关注
关注
0文章
2浏览量
1884
发布评论请先 登录
相关推荐
评论