車輛控制系統(tǒng)開發(fā)軟件閉環(huán)模擬方法
隨著計(jì)算機(jī)技術(shù)的發(fā)展,車輛上的控制系統(tǒng)變得越來越復(fù)雜,因而控制算法變得也非常復(fù)雜,所以控制系統(tǒng)開發(fā)的主要工作是內(nèi)部的控制算法的開發(fā)。我們知道近幾年國(guó)外先進(jìn)的開發(fā)過程是呈V 字形,它分為下面幾個(gè)階段[1]:
(1) 系統(tǒng)設(shè)計(jì)建模與離線模擬
在這一階段主要驗(yàn)證控制算法與概念,驗(yàn)證系統(tǒng)的可行性,使用MATLAB/Simulink 軟件可以很容易實(shí)現(xiàn)控制算法并進(jìn)行系統(tǒng)建模,這些模型可以同樣應(yīng)用于實(shí)時(shí)硬件模擬。
(2) 系統(tǒng)原型實(shí)施
這一階段仍是采用PC 計(jì)算機(jī)或功能較強(qiáng)的計(jì)算機(jī),如DSP。將系統(tǒng)的硬件信號(hào)加入到模擬系統(tǒng)中,從而實(shí)現(xiàn)真實(shí)的物理系統(tǒng)。可以采用MATLAB 工具箱,例如RTW 和xPC 等。很容易在PC 計(jì)算機(jī)中實(shí)現(xiàn)實(shí)時(shí)硬件控制。例如可以直接用PC 計(jì)算機(jī)對(duì)車輛進(jìn)行控制驗(yàn)證。
(3) 目標(biāo)代碼產(chǎn)生
目標(biāo)代碼的產(chǎn)生是最困難的一步,可以采用專用的工具如Targetlink,它可以從Simulink 可視化算法直接轉(zhuǎn)化為C 代碼,MATLAB/Simulink 中的實(shí)時(shí)嵌入式代碼生成器工具箱也具有這類功能。但生成可用于大量生產(chǎn)的實(shí)用代碼還要作較多的修改,或許要嵌入較多的用戶手工代碼。
(4) 實(shí)時(shí)硬件模擬
這一步驟是驗(yàn)證控制器硬件和軟件算法,它的環(huán)境與實(shí)車比較類似,其相似程度取決于模擬模型與實(shí)際車輛的差別。如果模型比較準(zhǔn)確,則經(jīng)過這一系統(tǒng)驗(yàn)證后再到實(shí)車試驗(yàn),其工作量就降低到最少,但一般情況下模型與實(shí)車都存在較大差距,所以仍需要較多的工作。
(5) 系統(tǒng)驗(yàn)證與調(diào)試
這一過程是將控制系統(tǒng)在實(shí)車上進(jìn)行驗(yàn)證并進(jìn)行系統(tǒng)的標(biāo)定及參數(shù)修改等工作。如果前面的工作比較完善,則這一步的工作量就可以減少,并節(jié)省時(shí)間與費(fèi)用。這一過程是一個(gè)一般的過程,但也存在下面幾個(gè)方面的不足。
1) 傳統(tǒng)的開發(fā)大多采用模擬的方法,純軟件模擬可以部分地驗(yàn)證控制算法,但大部分的純模擬控制算法都是運(yùn)行在PC 計(jì)算機(jī)上。利用通用的編程工具如VC、VB、MATLAB/SIMULINK,它們都是采用浮點(diǎn)數(shù)運(yùn)算,也不必顧及內(nèi)存空間的大小。這種模擬當(dāng)?shù)玫嚼硐氲慕Y(jié)果后再向目標(biāo)計(jì)算機(jī)上進(jìn)行移植,這種目標(biāo)計(jì)算機(jī)往往要進(jìn)行產(chǎn)業(yè)化生產(chǎn),要求有較高的性能價(jià)格比,所以它的內(nèi)存空間較小,同時(shí)采用整形數(shù)。模擬驗(yàn)征很好的代碼一旦移植到這種目標(biāo)計(jì)算機(jī)。由于上述差距的存在就會(huì)使控制算法的性能大大降低,這往往需要用戶重新進(jìn)行構(gòu)造控制算法,這樣就導(dǎo)致開發(fā)效率降低,那么最好是從一開始就使目標(biāo)計(jì)算機(jī)參與到系統(tǒng)上來。
2) 實(shí)時(shí)硬件閉環(huán)模擬是一種非常好的工具,目前在開發(fā)過程被大量的使用。它可以有效地驗(yàn)證控制器的軟硬件系統(tǒng),但這種系統(tǒng)在實(shí)際使用中事實(shí)上主要是驗(yàn)證控制算法。硬件的驗(yàn)證只要沒有故障,則在以后的工作中就不會(huì)再有什么作用。
3) 實(shí)時(shí)硬件模擬驗(yàn)證只是在實(shí)驗(yàn)室內(nèi)進(jìn)行,如果拿到實(shí)車上就很不方便,特別是一些混合模擬由于設(shè)備龐大,很難拿到車輛上。在實(shí)際車輛上調(diào)試ECU 控制代碼時(shí)要進(jìn)行很多算法修改及參數(shù)的調(diào)整,這種修改與調(diào)整有些可能對(duì)算法的影響是很大的,有些情況可能會(huì)使控制失效。這樣就需要再回到試驗(yàn)室中用實(shí)時(shí)硬件模擬再去驗(yàn)證算法,反反復(fù)復(fù)這樣調(diào)試就會(huì)耗費(fèi)比較多的時(shí)間。
4) 好的開發(fā)環(huán)境應(yīng)該將這些過程集成到同一個(gè)環(huán)境下,如果系統(tǒng)要在不同的系統(tǒng)中切換,勢(shì)必造成移植的困難。
基于在控制器開發(fā)過程中這幾個(gè)比較困難的事情,本文提出了實(shí)時(shí)軟件模擬方法以有效地解決上述系統(tǒng)的缺陷。
2 系統(tǒng)硬件
圖1 系統(tǒng)硬件框圖
1)系統(tǒng)是單板式結(jié)構(gòu),所以系統(tǒng)可靠性高。
2)采用PC104 總線,具有抗振性,且體積也比較小。
3)PC 計(jì)算機(jī)性能高,可以作為模擬用主機(jī),即直接用MATLAB/SIMULINK 建模。
4)用PC 計(jì)算機(jī)可以利用它采用MATLAB 中的xPC 工具箱生成較小內(nèi)存的控制器代碼,然后內(nèi)置于主機(jī)板的電子盤中,形成可靠的基于PC 的控制系統(tǒng)。
5)采用嵌入式PC 體積較少,便于形成車載控制系統(tǒng)。
系統(tǒng)硬件包括下面幾個(gè)部分:
(1) PC 主板:嵌入式系統(tǒng),PⅢ或PIV 主機(jī)。
(2) 采集卡:PC104 總線,用于數(shù)據(jù)采集及系統(tǒng)控制。
(3) 仿真器:?jiǎn)纹瑱C(jī)仿真器主要用于控制器程序的調(diào)試,也可采用PC104 總線,這樣可以使開發(fā)系統(tǒng)一體化,并在一臺(tái)計(jì)算機(jī)上加以實(shí)現(xiàn)。
(4) 信號(hào)及驅(qū)動(dòng)設(shè)備箱:這是一個(gè)專用信號(hào)調(diào)理箱,這種系統(tǒng)要根據(jù)車輛上應(yīng)用確定信號(hào)調(diào)整的類型及驅(qū)動(dòng)類型,作為一個(gè)通用的系統(tǒng),采集驅(qū)動(dòng)系統(tǒng)有如下功能:
1)A/D 采集 8 路:用于模擬量采集用調(diào)理箱,對(duì)信號(hào)進(jìn)行放大,并規(guī)整變?yōu)?~5V 電壓。
2)D/A 輸出 2 路:用于模擬量采集用調(diào)理箱,對(duì)信號(hào)進(jìn)行放大,并規(guī)整變?yōu)?~5V 電壓。
3)數(shù)字輸入:16 路,主要采集一些輸入信號(hào),如開關(guān)量。
4)數(shù)字輸出:16 路,主要是一些驅(qū)動(dòng)信號(hào),如對(duì)電磁閥,通過調(diào)理箱對(duì)信號(hào)進(jìn)行功率放大。
5)脈沖輸入采集,8 路,主要對(duì)一些速度信號(hào)進(jìn)行采集,一般的采集卡很難準(zhǔn)確進(jìn)行采集,采用專用的采集卡,可以對(duì)脈沖進(jìn)行準(zhǔn)確的計(jì)算,信號(hào)調(diào)理箱則可以完成信號(hào)的整形放大等處理。
6)脈沖輸出,8 路,主要對(duì)一些速度信號(hào)進(jìn)行模擬,一般的采集卡很難準(zhǔn)確輸出脈沖,采用專用的采集卡,可以對(duì)脈沖進(jìn)行準(zhǔn)確的計(jì)算,信號(hào)調(diào)理箱則可以完成信號(hào)的方波轉(zhuǎn)換為正弦波等處理。
7) CAN 通信:共有15 個(gè)信息幀可以編程使用,CAN 標(biāo)準(zhǔn)為2.0B,CAN 通信參數(shù)可以定義。
評(píng)論