此示例說明如何使用 Simulink® 對汽車傳動系統建模。Stateflow® 通過表示變速器控制邏輯來增強 Simulink 模型。Simulink 為動態系統和過程的建模和模擬提供了強大的環境。但在許多系統中,更改模式或調用新增益規律等監管功能必須響應可能發生的事件以及隨時間發展變化的情況。因 ...
此示例說明如何使用 Simulink® 對汽車傳動系統建模。Stateflow® 通過表示變速器控制邏輯來增強 Simulink 模型。Simulink 為動態系統和過程的建模和模擬提供了強大的環境。但在許多系統中,更改模式或調用新增益規律等監管功能必須響應可能發生的事件以及隨時間發展變化的情況。因此,環境需要一種能夠管理這些多重模式和不斷發展變化的情況的語言。在以下示例中,Stateflow 通過在自動變速中執行擋位選擇功能來展示其在這一能力方面的優勢。通過在 Simulink 模塊圖中合併 Stateflow 模塊,此功能與傳動系統動態自然且直觀地結合在一起。
分析和物理原理
圖 1 顯示了典型汽車傳動系統中的功率流。幾個非線性常微分方程對發動機、四速自動變速器和車輛進行建模。此示例中討論的模型直接將圖 1 中的模塊實現為模塊化 Simulink 子系統。另一方面,變速器控制單元 (TCU) 中的邏輯和決策不適合用廣為接受的方程表示。TCU 更適用於 Stateflow 表示。Stateflow 監視與系統中的重要關係相對應的事件,併在事件發生時採取適當的措施。
圖 1:傳動系統的通用模塊圖
節氣門開度是發動機的輸入之一。發動機與液力變矩器的泵輪相聯,並通過液力變矩器與變速器耦合(參見方程 1)。
方程 1
液力變矩器的輸入-輸出特征可以表示為發動機轉速和渦輪轉速的函數。在此示例中,功率流的方向始終假定為從泵輪到渦輪(參見方程 2)。
方程 2
變速器模型通過靜態齒輪比實現(假定換擋時間短)(參見方程 3)。
方程 3
主減速比、轉動慣量和動態變化的負載,共同構建了整車動力學模型。(參見方程 4)
方程 4
負載扭矩包括道路負載和制動扭矩。道路負載是摩擦損失和空氣動力損失之和(參見方程 5)。
方程 5
模型根據圖 2 所示的規律設定變速器的換擋點。對於給定擋位下的給定節氣門,升擋時具有唯一的車輛速度。降擋時類似。
圖 2:換擋規律
建模
要打開此模型,請在 MATLAB® 終端中鍵入 sldemo_autotrans
。初始條件在模型工作區中設置。
該模型的頂層圖如圖 3 所示。要運行模擬,請按模型視窗中的工具欄上的 Play 按鈕。請註意,模型將相關數據以名為 sldemo_autotrans_output
的數據結構體記錄到 MATLAB 工作區中。記錄的信號具有藍色指示標記(參見圖 3)。在運行模擬後,您可以通過在 MATLAB 命令行視窗中輸入 sldemo_autotrans_output
來查看數據結構體的組成。另請註意,單位顯示在子系統圖標和信號線上。要瞭解有關 Simulink 中的單位的詳細信息,請參閱 Simulink 單位。
圖 3:模型圖和採樣模擬結果(超車動作)
建模
圖 3 所示的 Simulink 模型由代表發動機、變速器和車輛的模塊組成,並且額外有一個換擋邏輯模塊,用於控制變速器的傳動比。模型的用戶輸入由節氣門(以百分比給出)和制動扭矩(以 ft-lb 為單位給出)組成,通過 ManeuversGUI 界面可以輸入節氣門和制動扭矩。
Engine 子系統包含一個二維表,該二維表對發動機扭矩與節氣門和發動機轉速的關係進行插值。圖 4 顯示了複合的 Engine 子系統。在模型中雙擊此子系統可查看其結構。
圖 4:Engine 子系統
TorqueConverter 和 TransmissionRatio 模塊構成了 Transmission 子系統,如圖 5 所示。在模型視窗中雙擊 Transmission 子系統可查看其組件。
圖 5:Transmission 子系統
TorqueConverter 是一個封裝子系統,它實現了方程 2。要打開此子系統,請右鍵點擊它,然後從下拉菜單中選擇 Mask > Look Under Mask。封裝需要速度比 (Nin/Ne
) 向量以及 K 繫數 (f2
) 和扭矩比 (f3
) 的向量。圖 6 顯示了 TorqueConverter 子系統的實現。
圖 6:液力變矩器子系統
變速器速比模塊根據表 1 確定傳動比,並根據方程 3 計算出變速器的輸出扭矩和輸入轉速,如圖 7 所示的子系統模型在扭矩和轉速方面體現了傳動比。
表 1:變速器齒輪比
gear Rtr = Nin/Ne 1 2.393 2 1.450 3 1.000 4 0.677
圖 7:變速器齒輪比子系統
標記為 ShiftLogic 的 Stateflow 模塊實現變速器的擋位選擇。在模型視窗中雙擊 ShiftLogic 可打開 Stateflow 圖。利用 Model Explorer 將輸入定義為節氣門和車輛速度,將輸出定義為所需的擋位數。兩個用虛線圍起來的 AND 狀態跟蹤擋位狀態和擋位選擇過程的狀態。整體圖作為一個離散時間系統執行,每 40 毫秒採樣一次。圖 8 所示的 Stateflow 圖展示了模塊的功能。
圖 8:變速器換擋邏輯的 Stateflow 圖
可以在模擬期間通過啟用 Stateflow 調試器中的動畫來觀察換擋邏輯行為。selection_state
(始終處於活動狀態)通過執行其 during
函數所示的計算來開始。該模型根據擋位和節氣門的瞬時值計算升擋和降擋速度閾值。在處於 steady_state 時,模型將這些值與當前車輛速度進行比較以確定是否需要換擋。如果需要,它將進入確認狀態之一(upshifting
或 downshifting
),該狀態會記錄進入該狀態的時間。
如果車輛速度不再滿足換擋條件,當處於確認狀態時,模型將忽略換擋並轉移回 steady_state
。這樣可以防止外部雜訊情況導致的換擋。如果換擋條件在 TWAIT
個時刻的持續時間內保持有效,模型將通過下聯接點轉移,並且根據當前擋位,將廣播換擋事件。隨後,模型在通過一個中央聯接點轉移後再次激活 steady_state
。廣播到 gear_selection
狀態的換擋事件將激活到適當新擋位的轉移。
例如,如果車輛以 25% 的節氣門開度在第二擋行進,狀態 second
在 gear_state
內處於活動狀態,steady_state
在 selection_state
中處於活動狀態。後者的 during
函數會發現應在車輛超過 30 mph 時升擋。在滿足此條件的時刻,模型進入 upshifting
狀態。在此狀態下,如果車輛速度在 TWAIT
個時刻內保持 30 mph 以上,模型將滿足引至右下聯接點的轉移條件。這也滿足在從這裡轉移至 steady_state
時的條件 [|gear == 2|],因此模型此時會從 upshifting
整體轉移至 steady_state
,並將事件 UP
廣播為轉移操作。最終,在 gear_state
中從二擋轉移到三擋,從而完成換擋邏輯。
Vehicle 子系統(圖 9)使用凈扭矩來計算加速度,並對其積分以計算車輛速度(根據方程 4 和方程 5)。Vehicle 子系統為封裝子系統。要查看 Vehicle 模塊的結構,請右鍵點擊它,然後從下拉菜單中選擇 Mask > Look Under Mask。在封裝菜單中輸入的參數,包括主減速比、摩擦阻力繫數和空氣動力阻力繫數、車輪半徑、整車慣量以及初始變速器輸出轉速。
圖 9:Vehicle 子系統(封裝)
結果
模擬中使用的發動機扭矩圖和液力變矩器特性如圖 10 和圖 11 所示。
圖 10:發動機扭矩圖
圖 11:液力變矩器特性(參見圖 5 和方程 2)
第一個模擬(超車動作)使用表 2 中給出的節氣門規律(此數據經過線性插值)。
表 2:第一個模擬(超車動作)的節氣門規律
Time (sec) Throttle (%) 0 60 14.9 40 15 100 100 0 200 0
第一列對應的是時間;第二列對應的是節氣門開度(百分比)。在這種情況下,未施加制動(制動扭矩為零)。車輛速度從零開始,發動機轉速從 1000 RPM 開始。圖 12 顯示了使用預設參數的基準結果圖。如果駕駛員在 t=0
時節氣門開度給到 60%,發動機會立即以超過其雙倍轉速的方式予以響應。這會在液力變矩器上產生低轉速比,從而得到大扭矩比(參見圖 6 和圖 11)。車輛快速加速(沒有對輪胎滑移進行建模),並且發動機和車輛會一直提速直至大約 t = 2 sec
時,此時將從 1 擋升至 2 擋。發動機轉速特性曲線驟降,然後恢復加速。2 擋升至 3 擋和 3 擋升至 4 擋分別在大約 4 秒鐘和 8 秒鐘時發生。請註意,由於整車慣量較大,車輛速度要平滑得多。
圖 12:超車動作模擬時間歷史記錄
在 t=15sec
時,駕駛員將節氣門開度給到 100%,這可能是超車動作的典型情況。變速器降至 3 擋,發動機轉速從大約 2600 RPM 跳至大約 3700 RPM。因此,發動機扭矩會略微增加,變速器的機械效益也會略微增大。在持續重節氣門下,車輛加速至大約 100 mph,然後在大約 t = 21 sec
換擋至超速擋。在模擬的其餘部分,車輛以第四擋位行駛。雙擊 ManeuversGUI 模塊並使用圖形界面更改節氣門和制動歷史記錄。
關閉模型
關閉模型並清除生成的數據。
結論
此基本系統可以通過模塊化的方式輕鬆增強,例如將發動機或變速器替換為更複雜的模型。因此,我們可以在此結構內通過漸進式優化來構建大型系統。Stateflow 控制邏輯與 Simulink 信號處理的無縫集成使我們能夠構造高效且直觀的模型。
關註公眾號: MATLAB基於模型的設計 (ID:xaxymaker) ,每天推送MATLAB學習最常見的問題,每天進步一點點,業精於勤荒於嬉。
打開微信掃一掃哦!