HIL實(shí)時(shí)仿真系列2
今天我們繼續(xù)分享使用TSMaster從零打造車輛控制器HIL實(shí)時(shí)仿真系列第二章節(jié)。接下來(lái)我們親手設(shè)計(jì)實(shí)時(shí)仿真也就是HIL的環(huán)節(jié),為了讓示例通俗易懂,我們選取了CARSIM自帶的ABS控制器作為仿真的對(duì)象。
Simulink模型
1、我們打開(kāi)CARSIM,然后選擇Simulink模型,對(duì)開(kāi)路面Multi-port SLX,這個(gè)示例使用的是一輛不帶ABS系統(tǒng)的小轎車,它是前驅(qū)的配置。
2、我們來(lái)看procedure,也就是駕駛員控制的部分,初始的速度是65公里每小時(shí),自動(dòng)壓力是15兆帕,在0.3秒內(nèi)完成也就是我們常說(shuō)的150bar,檔位控制是在合理的范圍內(nèi)自動(dòng)切換,而轉(zhuǎn)向部分則交給駕駛員模型進(jìn)行閉環(huán)控制。
3、路面部分為對(duì)開(kāi)路面,從3米開(kāi)始,一側(cè)的系數(shù)是0.2,另外一側(cè)是0.5,回到主頁(yè),點(diǎn)擊Send to Simulink,等待Simulink啟動(dòng)完畢,Simulink模型則是今天的重點(diǎn)。
ABS控制算法
1、我們可以將這個(gè)控制算法生成嵌入式代碼,下載到帶ABS功能的ECU中運(yùn)行,可以看到這個(gè)算法模型包含了一個(gè)CARSIM的S function作為車輛模型的接口,還有一個(gè)簡(jiǎn)化版本的基于漂移率的輪缸壓力控制策略以及后軸低選策略,還有制動(dòng)性模型中的制動(dòng)力分配等等。
2、我們運(yùn)行下這個(gè)模型,可以看到,這個(gè)輪速與車速的圖形窗口中繪制了在對(duì)開(kāi)路面上的ABS自動(dòng)循環(huán),而這個(gè)輪缸壓力窗口中,則是四個(gè)車輪的輪缸壓力控制曲線,這是一個(gè)簡(jiǎn)易版本的控制算法。制動(dòng)力分配,也就是前軸壓力比上后軸壓力是1比0.4,很容易判斷出,制動(dòng)結(jié)束后,壓力上升到15兆帕的兩個(gè)車輪為前輪壓力,而壓力上升到6兆帕的是后輪壓力。
RT的低成本替代方案
大家可能注意到在Simulink環(huán)境中,運(yùn)行的時(shí)間是10秒,然而點(diǎn)擊運(yùn)行后實(shí)際上只用了很短的時(shí)間就跑完了整個(gè)仿真,說(shuō)明此仿真的過(guò)程并不是實(shí)時(shí)的。Simulink所起的作用僅僅是按照每個(gè)step來(lái)執(zhí)行算法,收集每個(gè)step產(chǎn)出的數(shù)據(jù)并將其繪制在圖形窗口里而已。
如果我們想在ABS制動(dòng)過(guò)程中像整車總線上面實(shí)時(shí)發(fā)送ABS激活的flag或者是輪缸壓力值,這些都是無(wú)法做到的。而在擁有的CarSim RT版本的環(huán)境中,該模型可以被編譯為dll,下載到實(shí)時(shí)系統(tǒng)中運(yùn)行,從而實(shí)現(xiàn)模型算法與真實(shí)世界的交互,這個(gè)解決方案是目前被廣泛采納的仿真模式。各大主機(jī)廠和零部件廠所依賴的HIL仿真也是基于此方案展開(kāi)。然而此方案存在兩個(gè)問(wèn)題:一是成本高,不但需要車輛動(dòng)力學(xué)軟件本身的license,還需要RT的license;二是部署的過(guò)程很浪費(fèi)時(shí)間,在CarSim中修改參數(shù)之后需要重新部署,自動(dòng)和程度不高。
而在本例中,我們通過(guò)TSMaster來(lái)模擬ABS算法,讓ABS算法在TSMaster的實(shí)時(shí)環(huán)境中運(yùn)行,運(yùn)行過(guò)程中可以通過(guò)CAN接口或者是連接在個(gè)人電腦上的IO接口等等,與外部的世界進(jìn)行交互,再通過(guò)自研的實(shí)時(shí)引擎接管CarSim的仿真過(guò)程實(shí)現(xiàn)車輛模型在電腦上的實(shí)時(shí)運(yùn)行,如此我們便得到了RT的低成本替代方案——軟件HIL。
ECU嵌入式代碼&小程序
下面我們從零一步步基于TSMaster來(lái)搭建ABS算法的實(shí)時(shí)仿真環(huán)境。第一步是要通過(guò)Simulink將ABS的算法自動(dòng)生成嵌入式代碼,將它作為一個(gè)小程序運(yùn)行在TSMaster的實(shí)時(shí)環(huán)境中。
1、我們首先將這個(gè)模型另存,然后需要修改路徑,讓代碼的生成放置在這個(gè)新的路徑中。
2、隨后我們需要在模型上做一些修改讓其可以生成嵌入式代碼。首先就需要?jiǎng)h除示波器等等一系列無(wú)用的控件,再刪除CarSim的s function,將s function的接口轉(zhuǎn)化為in 和 out。
3、為了正確的生成嵌入式代碼,還需要在代碼生成上做一番修改,打開(kāi)配置,首先是stop time,設(shè)置為inf,然后是salvar,再次使用的是定步長(zhǎng),step我們使用了業(yè)界通用的5毫秒。
4、接下來(lái)來(lái)到代碼生成的環(huán)節(jié),Target file自然是ert,我們還需要轉(zhuǎn)到interface,在這里將continuous time勾上,因?yàn)檩喐讐毫δP椭虚g用到的是傳遞函數(shù),是連續(xù)狀態(tài),隨后按Ctrl+B生成代碼,很快代碼就生成完畢了。
5、那么在這份代碼中,我們需要將ABS.c.h以及一些列的其他的頭文件復(fù)制粘貼到TSMaster的小程序的文件夾中間參與編譯過(guò)程。(具體操作步驟詳情可直接觀看我們的B站視頻哦~)
-
控制器
+關(guān)注
關(guān)注
112文章
16332瀏覽量
177803
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論