本文以簡單的雙質量彈簧振子模型為例,介紹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瀏覽量
6997 -
彈簧振子
+關注
關注
0文章
2瀏覽量
1888
發布評論請先 登錄
相關推薦
評論