博客專欄

EEPW首頁(yè) > 博客 > 技術(shù)分享 | 使用TSMaster從零打造車輛控制器HIL實(shí)時(shí)仿真系列2-ECU嵌入式代碼生成與TSMaster小程序集成

技術(shù)分享 | 使用TSMaster從零打造車輛控制器HIL實(shí)時(shí)仿真系列2-ECU嵌入式代碼生成與TSMaster小程序集成

發(fā)布人:汽車電子工程師 時(shí)間:2022-11-15 來源:工程師 發(fā)布文章

今天繼續(xù)分享使用TSMaster從零打造車輛控制器HIL實(shí)時(shí)仿真系列第二章節(jié)。接下來我們親手設(shè)計(jì)實(shí)時(shí)仿真也就是HIL的環(huán)節(jié),為了讓示例通俗易懂,我們選取了CARSIM自帶的ABS控制器作為仿真的對(duì)象。


一、Simulink模型

1、我們打開CARSIM,然后選擇Simulink模型,對(duì)開路面Multi-port SLX,這個(gè)示例使用的是一輛不帶ABS系統(tǒng)的小轎車,它是前驅(qū)的配置。

圖2.jpg2、我們來看procedure,也就是駕駛員控制的部分,初始的速度是65公里每小時(shí),自動(dòng)壓力是15兆帕,在0.3秒內(nèi)完成也就是我們常說的150bar,檔位控制是在合理的范圍內(nèi)自動(dòng)切換,而轉(zhuǎn)向部分則交給駕駛員模型進(jìn)行閉環(huán)控制。

圖3.jpg3、路面部分為對(duì)開路面,從3米開始,一側(cè)的系數(shù)是0.2,另外一側(cè)是0.5,回到主頁(yè),點(diǎn)擊Send to Simulink,等待Simulink啟動(dòng)完畢,Simulink模型則是今天的重點(diǎn)。

圖4.jpg

二、ABS控制算法

1、我們可以將這個(gè)控制算法生成嵌入式代碼,下載到帶ABS功能的ECU中運(yùn)行,可以看到這個(gè)算法模型包含了一個(gè)CARSIM的S function作為車輛模型的接口,還有一個(gè)簡(jiǎn)化版本的基于漂移率的輪缸壓力控制策略以及后軸低選策略,還有制動(dòng)性模型中的制動(dòng)力分配等等。

圖5.jpg2、我們運(yùn)行下這個(gè)模型,可以看到,這個(gè)輪速與車速的圖形窗口中繪制了在對(duì)開路面上的ABS自動(dòng)循環(huán),而這個(gè)輪缸壓力窗口中,則是四個(gè)車輪的輪缸壓力控制曲線,這是一個(gè)簡(jiǎn)易版本的控制算法。制動(dòng)力分配,也就是前軸壓力比上后軸壓力是1比0.4,很容易判斷出,制動(dòng)結(jié)束后,壓力上升到15兆帕的兩個(gè)車輪為前輪壓力,而壓力上升到6兆帕的是后輪壓力。

圖6.jpg

三、RT的低成本替代方案

大家可能注意到在Simulink環(huán)境中,運(yùn)行的時(shí)間是10秒,然而點(diǎn)擊運(yùn)行后實(shí)際上只用了很短的時(shí)間就跑完了整個(gè)仿真,說明此仿真的過程并不是實(shí)時(shí)的。Simulink所起的作用僅僅是按照每個(gè)step來執(zhí)行算法,收集每個(gè)step產(chǎn)出的數(shù)據(jù)并將其繪制在圖形窗口里而已。


如果我們想在ABS制動(dòng)過程中像整車總線上面實(shí)時(shí)發(fā)送ABS激活的flag或者是輪缸壓力值,這些都是無(wú)法做到的。而在擁有的CarSim RT版本的環(huán)境中,該模型可以被編譯為dll,下載到實(shí)時(shí)系統(tǒng)中運(yùn)行,從而實(shí)現(xiàn)模型算法與真實(shí)世界的交互,這個(gè)解決方案是目前被廣泛采納的仿真模式。各大主機(jī)廠和零部件廠所依賴的HIL仿真也是基于此方案展開。然而此方案存在兩個(gè)問題:一是成本高,不但需要車輛動(dòng)力學(xué)軟件本身的license,還需要RT的license;二是部署的過程很浪費(fèi)時(shí)間,在CarSim中修改參數(shù)之后需要重新部署,自動(dòng)和程度不高。


而在本例中,我們通過TSMaster來模擬ABS算法,讓ABS算法在TSMaster的實(shí)時(shí)環(huán)境中運(yùn)行,運(yùn)行過程中可以通過CAN接口或者是連接在個(gè)人電腦上的IO接口等等,與外部的世界進(jìn)行交互,再通過自研的實(shí)時(shí)引擎接管CarSim的仿真過程實(shí)現(xiàn)車輛模型在電腦上的實(shí)時(shí)運(yùn)行,如此我們便得到了RT的低成本替代方案——軟件HIL。


圖7.jpg四、ECU嵌入式代碼&小程序


下面我們從零一步步基于TSMaster來搭建ABS算法的實(shí)時(shí)仿真環(huán)境。第一步是要通過Simulink將ABS的算法自動(dòng)生成嵌入式代碼,將它作為一個(gè)小程序運(yùn)行在TSMaster的實(shí)時(shí)環(huán)境中。


1、我們首先將這個(gè)模型另存,然后需要修改路徑,讓代碼的生成放置在這個(gè)新的路徑中。


圖8.jpg2、隨后我們需要在模型上做一些修改讓其可以生成嵌入式代碼。首先就需要?jiǎng)h除示波器等等一系列無(wú)用的控件,再刪除CarSim的s function,將s function的接口轉(zhuǎn)化為in 和 out。

圖9.jpg3、為了正確的生成嵌入式代碼,還需要在代碼生成上做一番修改,打開配置,首先是stop time,設(shè)置為inf,然后是salvar,再次使用的是定步長(zhǎng),step我們使用了業(yè)界通用的5毫秒。

圖10.jpg4、接下來來到代碼生成的環(huán)節(jié),Target file自然是ert,我們還需要轉(zhuǎn)到interface,在這里將continuous time勾上,因?yàn)檩喐讐毫δP椭虚g用到的是傳遞函數(shù),是連續(xù)狀態(tài),隨后按Ctrl+B生成代碼,很快代碼就生成完畢了。

圖11.jpg5、那么在這份代碼中,我們需要將ABS.c.h以及一些列的其他的頭文件復(fù)制粘貼到TSMaster的小程序的文件夾中間參與編譯過程。




*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。




相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉