在之前控制教程 —— 介紹篇:8.基於Simulink爲火車系統建模部分已經通過數學模型的方式對火車系統進行了建模和仿真,本教程將使用Simscape工具箱進行物理建模。
在Simscape庫中提供了非常多物理模塊,可以構建複雜的多狀態模型,卻無需像前面介紹的那樣需要應用牛頓第二定律等物理原理來構建數學模型,回顧一下之前的火車系統。
物理配置
正如之前描述的那樣,火車頭和車廂的質量分別由M1
和M2
表示,火車頭和車廂採用剛度爲k
的聯軸器連接,牽引力F
表示火車頭提供的拉力,而mu
代表滾動摩擦力。
該系統的參數如下:
M1
火車頭質量 1kgM2
車廂質量 0.5 kgk
彈簧常數 1 N/mmu
摩擦係數 0.02 s/mF
火車頭牽引力 1 Ng
重力加速度 9.8 m/s^2
通過在MATLAB命令窗口中輸入ssc_new
來打開新的Simscape
模型。如下所示
該模型的各模塊是:
- 求解配置器模塊
- PS-Simulink和Simulink-PS模塊(顯示爲雙箭頭/雙三角形)
- 連接到PS-Simulink的示波器模塊
PS-Simulink和Simulink-PS模塊定義了Simulink的輸入輸出和Simscape的輸入輸出之間的轉換。
創建Simscape模型
要創建Simscape模型,需要向窗口中添加許多模塊:
- 2個 Mass 模塊(分別命名爲
M1
和M2
) - 1個 Translational Spring 模塊(命名爲
spring
) - 1個 Mechanical Translational Reference 模塊
- 2個 Translational Damper 模塊(分別命名爲
M1 friction
和M2 friction
)
將本教程開始的參數值分配給每個模塊,在這種情況下,我們使用平移阻尼器來模擬系統中的滾動摩擦。具體來說,我們將每個模塊的阻尼係數指定爲摩擦係數乘以法向力(mu*mass*g
)。如果我們需要更復雜的摩擦模型,則可以改用平移摩擦模塊,如圖所示連接各個模塊,並將Scope
命名爲Velocity
。
現在添加以下模塊到窗口中
- 1個 Ideal Force Source 模塊(命名爲
Force Source
) - 1個 Signal Generator 模塊(命名爲
Force Input
) - 1個 Translational Motion Sensor 模塊
在信號發生器中,將波形選擇爲square
,幅度設置爲-1
,頻率設置爲0.001
,單位選擇爲Hertz
。按下CTRL-E
,然後從彈出的窗口中將Type
選擇爲Variable-step
,Sovler
選擇爲auto
,同時將Stop time
配置爲1000
。
仿真結果
運行仿真(按下CTRL-T
或按下綠色運行按鈕),然後打開Scope
觀察速度的輸出。牽引力爲兩個過程,一個爲正,一個爲負。可以看出當施加正作用力時,發動機開始前進,然後再施加負作用力後的一段時間內,火車朝相反的方向運動。速度的輸出與控制教程 —— 介紹篇:8.基於Simulink爲火車系統建模中描述的結果完全一致。