?

基于仿真的汽車電子控制器軟件開發方法研究

2017-03-29 12:13張萬福黃影平
上海理工大學學報 2017年1期
關鍵詞:雨刮器車窗代碼

張萬福, 黃影平

(上海理工大學 光電信息與計算機工程學院.上海 200093)

基于仿真的汽車電子控制器軟件開發方法研究

張萬福, 黃影平

(上海理工大學 光電信息與計算機工程學院.上海 200093)

以車身控制系統中的車窗控制器和雨刮控制器為例,研究一種基于仿真及代碼自動生成的汽車電子控制器軟件的新型開發方法.利用Simulink/Stateflow建立汽車電子控制器算法模型,進行離線仿真驗證和快速模型驗證,然后通過RTW自動生成可執行的代碼,最后可將自動生成的代碼直接嵌入到控制器硬件中,實現了汽車電子控制系統的軟件開發.通過與Simulink中仿真結果進行對比,驗證了該方法的可行性和正確性.經過實踐證明該開發模式可以大大縮短控制系統的開發周期,對于汽車電子系統的開發具有一定的實用價值.另外,在軟件開發的各個階段對設計功能進行測試驗證,提高設計開發的正確性.

仿真; 汽車電子控制器; 自動代碼生成

ScienceandTechnology,Shanghai200093,China)

1 汽車電子控制器開發現狀

隨著汽車電子系統的復雜程度以及在汽車中所占比重的不斷增加,汽車電子控制器的開發測試成為新車開發的一個重要而復雜艱巨的任務.圖1(a)是汽車電子系統開發的V模型,具體過程包括如下步驟:電子系統總體設計,電控單元功能設計,電控單元硬件和軟件開發,電控單元測試,集成測試,系統測試,樣車測試.傳統的開發方法存在兩方面的問題.一方面,在設計初始階段,對系統功能指標要求依賴于文字描述,這種方法難以準確直觀地描述子系統內部功能以及子系統之間的互相關聯和影響,而且使用者對文字描述的理解往往不同.另一方面,對設計和開發的驗證嚴重依賴于對實體器件的測試.傳統的電控系統開發驗證都是在一個實體的汽車電子系統驗證平臺上來進行的.它包含車內所有的電氣排線和電控單元.其缺點是對設計和開發的驗證必須等到所有的ECU、線纜、執行器、傳感器等制造完成后才能開始,而且測試效率低下,測試覆蓋范圍有限.這樣的方法由于不能早期發現研發中的問題,常常導致許多重復性的修改,增加了研發的費用和時間.

實時計算機仿真技術被用于模擬復雜的汽車電子系統,并在此基礎上進行設計正確性及有效性的測試和驗證[1-2].這種虛擬集成技術對汽車電子系統的開發有3方面的好處.a.可以模擬汽車的各種實際運行狀況,建立一個虛擬的汽車電子平臺,對其功能和子系統之間錯綜復雜的相互影響和關聯進行

動態的測試.b.在ECU軟件開發方面,用可執行的模型來描述系統功能、狀態轉換,減少文字敘述的含糊性,而且所開發的功能模型,可以直接用于自動生成代碼,從而大大提高軟件開發的效率[3-4].c.在設計驗證和開發測試方面,汽車制造廠或供應商可以在研發不同階段對正在開發的電子系統進行測試.例如,在研發的最初階段,所有的電控單元處在用模型描述的功能設計階段,稱為模型在環(MIL),功能模型可以幫助設計人員進行設計有效性的測試;在電控單元軟硬件開發階段,模型被轉換成代碼在快速成型控制器上執行,稱為軟件在環(SIL),可以測試軟件開發正確性;在集成測試階段,部分ECU被制造出來,虛擬平臺中對應的軟件模型可以被取代,仿真系統可用于驗證這部分器件的功能,包含部分硬件,稱為硬件在環(HIL).圖1(b)顯示對應于傳統V模型的模擬測試的3個階段.

基于仿真的開發方法已經應用于一些汽車子系統的開發,例如,汽車發動機控制系統[5]、傳動系統[6]、剎車系統[7]、車身控制[8].這些工作都是對汽車局部子系統的仿真和開發.文獻[9]提出了利用仿真技術測試電控單元的在線診斷功能.文獻[10]提出了建立汽車電子系統的整體模型,重點驗證整車電子系統的集成性能.作者曾經成功地將仿真技術和機器視覺技術結合用于汽車信息系統和儀表系統的功能驗證[11-12].本文以車身控制系統中的車窗控制和雨刮器控制為例,研究基于仿真的汽車電子控制器的開發過程.以MathWorks公司的Matlab軟件作為主要的開發平臺,利用它所提供的Simulink工具包建立相應的功能及控制模型,利用基于事件驅動的Stateflow模塊構建控制算法模型,最后使用Real-Time Workshop 將模型編譯成可直接嵌入到控制器的C代碼,提高控制器的開發效率.另外,在開發的各個階段對設計功能進行測試,提高設計開發的正確性.

圖1 汽車電子系統V模型開發流程

2 功能介紹及模型開發

2.1 電動車窗功能及控制器模型介紹

電動車窗的主要功能如下:

a. 手動控制功能.每扇車門都可以手動控制車窗的升降,打開(關閉)車窗,可按住(拉起)相應車窗的開關鍵.

b. 自動控制功能.每扇車門都可以控制車窗的自動升降,自動打開(關閉)車窗,可按壓(拉起)相應車窗的開關鍵小于1 s,車窗會啟動自動打開(關閉)模式,停止自動打開(關閉)車窗,向上拉起(按壓)車窗開關.

c. 自動避障功能.如果車窗在手動關閉或自動關閉的過程中遇到障礙物將會停住,然后向下倒退.若想關閉車窗應拿開障礙物,然后再次操作開關.因

此,在車窗完全關閉之前應檢查車窗上乘客手和物件等是否移開.

控制器模型的開發主要采用基于事件驅動的Stateflow狀態圖進行模擬仿真.控制模塊首先確認司機和乘客輸入的有效性,判斷車窗的位置是否達到了頂端或者底端,以及是否存在障礙物,將相應的輸入信號傳遞給利用Stateflow狀態圖(statechart)建立的控制算法模型,輸出控制命令.狀態機包括電動車窗的基本狀態:上升、自動上升、下降、自動下降、靜止狀態以及緊急狀態.狀態機仿真這些基本狀態之間的狀態切換以及駕駛員和乘客對電動車窗的優先級狀態,同樣也包括了在車窗上升過程中遇到障礙物的仿真.如圖2所示,每一個方框代表電動車窗的一個狀態.正常狀態下,控制器處于無障礙物即safe狀態;當控制器模型只接收到乘客下降的控制信號時,控制器首先進入乘客控制下降狀態;100 ms過后如果還檢測到乘客下降的控制信號,則進入乘客手動控制下降狀態,否則進入乘客自動控制下降狀態.在乘客或者司機控制模式時,如果遇到障礙物,控制器會自動進入緊急狀態,將車窗下降.

圖2 電動車窗控制模型

2.2 雨刮器系統的功能及控制模型器介紹

雨刮器的功能如圖3(見下頁)所示,點火開關在ON位置時雨刮器按規定模式進行操作.

a. MIST:要使雨刮器運轉1次,移動控制桿到MIST位置并釋放.如果保持控制桿在此位置,雨刮器持續運轉.

b. OFF:雨刮器不工作.

c. INT:雨刮器按同樣的刮水間隔時間間歇運轉.要改變間歇時間設置,可以轉動間歇時間調整鈕B.

d. AUTO:雨傳感器位于擋風玻璃上端,檢測雨傳感器降雨量并以適當間隔時間控制刮水周期.降雨量越多,雨刮器運轉間歇時間越短.停雨時,雨刮器停止.要改變間歇時間設置,可以轉動間歇時間調整鈕B.

e. LO:雨刮器低速運轉.

f. HI:雨刮器高速運轉.

雨刮器模型(如圖4所示,圖中的每一個方框代表雨刮器所處的狀態,控制器模型根據接收到的控制信號,對狀態進行相應的切換,如控制器模型接收到高速模式信號,控制器進入高速模式狀態,其他雨刮器控制模式同理)仿真了雨刮器的各種狀態,隨著輸入信號的切換,雨刮器模型切換到對應的狀態中.

狀態機包括了雨刮器的基本狀態:雨刮器高速狀態、低速狀態、間歇狀態、點動狀態、停止狀態和自動狀態.狀態機仿真這些基本狀態之間的狀態切換,用于驗證控制算法的有效性.

圖3 雨刮器功能圖

圖4 雨刮器控制模型

3 實 驗

3.1 仿真模型覆蓋率的驗證

3.1.1 電動車窗模型覆蓋率驗證

利用Matlab/Simulink提供的模型覆蓋測試工具可以對汽車電動車窗模型測試序列覆蓋率進行驗證.模型測試案例通過每個條件分支到達相應狀態的百分率就是模型的覆蓋率,它有助于我們評估每一種狀態,度量測試案例訓練模型的程度.多個條件分支可以到達一個狀態,例如,當100 ms之后或者到達頂端,可以從緊急狀態切換到自由狀態.要實現全覆蓋,就要求測試案例的每一個分支都要驗證true和false的情況.雨刮器模型覆蓋率測試案例如圖5所示.

在這個測試案例中,在步驟0,所有開關都是關閉的,然后定義了乘客手動上升信號、乘客自動上升信號、乘客手動下降信號、乘客自動下降信號,以及對應的駕駛員相應輸入信號和障礙物信號.乘客和駕駛員輸入信號中,1表示相應按鈕按下,0表示相

圖5 電動車窗測試信號序列

應按鈕沒有按下.在此建立的車窗運動模型的最高位置為0.4,將障礙物設置為1表示不存在障礙物,設置為0.3表示在車窗0.3位置存在障礙物.

生成測試和創建Simulink確認和驗證覆蓋報告的命令.

a. 創建一個保存覆蓋結果的測試對象.

testObj1 =cvtest(′powerwindow01′,′first_test′,′load firsttest′)

b. 仿真系統65 s.

[dataObj1,T,X,Y]=cvsim(testObj1,[0 65])

c. 創建和打開一個包含覆蓋數據的HTML報告.

cvhtml(′powerwindow01 report′,dataObj1)

報告中各個模塊的判定結果如下:

“driver switch”和“passenger switch”模塊的判定結果是覆蓋75%,沒有子模塊.原因是輸入信號序列中沒有測試上升和下降同時成立的情況.“power window control system”覆蓋結果96%.子模塊“driver down”,“driver neutral”,“passenger down”,“passenger up”,“driver up”的覆蓋情況分別為100%,95%,100%,100%,100%.執行模塊“window system”覆蓋100%,上升和下降的動作都覆蓋到了.覆蓋報告驗證了測試序列案例較為完好地覆蓋了絕大部分狀態,能反映出各個狀態的執行狀況.

3.1.2 雨刮器模型覆蓋率驗證

雨刮器模型覆蓋率測試案例如圖6所示.

圖6 雨刮器測試信號序列

這個測試案例分別測試了雨刮器的高速、低速、間歇、關閉、點動和自動的狀態.生成的測試報告顯示,所有的子狀態的覆蓋率均為100%,說明測試案例覆蓋了雨刮器系統各個功能的狀態驗證.

3.2 代碼生成

Real-Time Workshop 是一個基于Simulink的代碼自動生成環境,能直接從Simulink的模塊中產生優化的、可移植的和個性化的代碼,并根據目標配置自動生成多種環境下的程序.利用它可加速仿真過程,生成可在不同的快速原型化實時環境或產品目標下運行的程序.

Simulink模型構建完成之后,利用Real-Time Workshop編譯成C代碼和普通的實時程序,可以驗證模型的功能是否完善.步驟如下:

a. 設置程序參數.在生成代碼之前,必須要對一些參數進行設置,如果采取系統默認的參數設置,在生成代碼時將會出現錯誤,這里采用之前設置好的參數即可.

b. 生成C代碼.在Simulink窗口中選擇Simulink→Configuration Parameters命令,打開Simulink系統參數設置對話框,單擊Real-Time Workshop,選中Generate HTML report 復選框,單擊Build 按鈕,即可生成C代碼.也可以利用make_rtw命令執行代碼生成.Build 命令調用目標文件grt.tlc,使用指定的模板文件grt_default_tmf來生成makefile,然后Real-Time Workshop 利用這個makefile來建立程序.

生成代碼主要包括了以下頭文件和源文件.

a. 算法函數源文件model.C,主要包括以下3個重要函數:(a) 初始化函數,model_initialize;(b) 算法運行函數,model_step;(c) 終止函數(一般為空),model_terminate.

b. 本函數所使用的函數和數據聲明model_private.h.

c. 算法函數頭文件model.h.

d. 參數結構體定義,當被調制成全局變量時不會生成model_data.C.

e. 數據和參數結構定義model_types.h.

4 仿真結果分析

4.1 電動車窗模型仿真與軟件運行結果分析

Simulink模型構建完成之后,可以直接利用M腳本文件運行模型,記錄模型運行時間,繪制出電動車窗位置圖,運行結果如圖7紅線所示.圖中,藍線為預期結果,紅線為仿真結果.可以看出電動車窗的運動軌跡與預期結果相同(圖中將模型的仿真結果值減去了0.05,用于對比).

圖7 電動車窗Simulink模型運行結果和代碼生成程序運行結果對比

通過powerwindow01命令可以引導生成的實時程序的運行,在M腳本文件中引導程序運行,記錄時間,讀取生成的數據,與Simulink模型運行的結果以及期望的結果作比較.由運行結果圖7綠色曲線所示,電動車窗運行的位置和Simulink模型運行的結果以及期望的結果相同,驗證了生成代碼的可靠性(圖中將生成代碼運行結果值加上了0.05).運行時間上,Simulink模型的運行時間大約為0.955 s,生成代碼的運行時間大約為0.227 s,自動代碼生成工具所產生的程序可以大幅提高Simulink模型運行的效率.

4.2 雨刮器系統模型仿真結果與分析

Simulink模型構建完成之后,可以直接利用M腳本文件運行模型,記錄模型運行時間,繪制出雨刮器各個狀態的運行結果.如圖8紅線所示,可以看出仿真的結果與預期結果相同.為了與預期結果對比,圖8以高速模式為例,將模型仿真的結果增加0.2,exe程序運行結果增加0.4,雨刮器的其他控制模式的仿真驗證結果同樣與預期相同.

圖8 雨刮器Simulink模型運行結果和代碼生成程序運行結果對比

通過powerwindow01命令可以引導生成的實時程序的運行,在M腳本文件中引導程序運行,記錄時間,讀取生成的數據,與Simulink模型運行的結果以及期望的結果作比較.由運行結果圖8綠色曲線所示,生成代碼運行的結果和Simulink模型運行的結果以及期望的結果相同,驗證了生成代碼的可靠性.Simulink模型的運行時間大約為2.033 s,生成代碼的運行時間大約是0.227 148 s.

5 結束語

通過電動車窗和雨刮系統兩個實例介紹了基于仿真的汽車電子控制器軟件的開發方法,在汽車電子控制器的開發階段,采用建立模型及代碼自動生成技術的方法,開發電控單元軟件,是現階段基于V模式汽車電子開發方法中重要的一個環節.實驗表明產生的代碼與模型運行結果一致,同時可以利用模型和產生的代碼對設計進行驗證.該方法可以提高汽車電子控制器軟件的開發效率,提高設計的正確性.對于電子控制器外圍環境的建模,比如機械系統和執行器的模擬還有待進一步的開發,從而完善電子系統的仿真建模.

[1] KENDALL I R,JONES R P.An investigation into the use of hardware-in-the-loop simulation testing for automotive electronic control systems[J].Control Engineering Practice,1999,7(11):1343-1356.

[2] 黃影平.基于模型的現代汽車電子系統開發和測試[J].汽車技術,2008(2):31-34.

[3] BEINE M,OTTERBACH R,JUNGMANN M.Development of safety-critical software using automatic code generation[C]∥2004 SAE World Congress.Detroit:SAE International,2004.[4] LIN A,TSAI G L,CHEN B C.Embedded systems development of an electric power assisted steering system using MATLAB/SIMULINK/Real-time workshop[C]∥2004 SAE World Congress.Detroit:SAE International,2004.

[5] LEE W,YOON M,SUNWOO M.A cost-and time-effective hardware-in-the-loop simulation platform for automotive engine control systems[J].Proceedings of the Institution of Mechanical Engineers,Part D:Journal of Automobile Engineering,2003,217(1):41-52.

[6] 張炳力,杜紅亮,金朝勇,等.6AT控制器的快速控制原型及硬件在環仿真研究[J].汽車工程,2011,33(8):680-684.

[7] LEE S J,KIM Y J,PARK K,et al.Development of hardware-in-the-loop simulator and vehicle dynamic model for testing ABS[C]∥2003 SAE World Congress.Detroit:SAE International,2003.

[8] 楊國勝,賈天陽,王賀飛.基于標準架構及Simulink/Stateflow的車身控制器軟件開發平臺[J].汽車電器,2015(4):54-55,58.

[9] MOUZAKITIS A,COPP D,PARKER R,et al.Hardware-in-the-loop system for testing automotive ECU diagnostic software[J].Measurement and Control,2009,42(8):238-245.

[10] TSAMPARDOUKAS G,MOUZAKITIS A.Deployment of full vehicle simulator for electrical control system validation[C]∥Proceedings of UKACC International Conference on Control.Cardiff:IEEE,2012:551-556.

[11] HUANG Y P,MCMURRAN R,AMOR-SEGAN M,et al.Development of an automated testing system for vehicle infotainment system[J].The International Journal of Advanced Manufacturing Technology,2010,51(1/2/3/4):233-246.[12] HUANG Y P,MCMURRAN R,DHADYALLA G,et al.Model-based testing of a vehicle instrument cluster for design validation using machine vision[J].Measurement Science and Technology,2009,20(6):065502.

(編輯:丁紅藝)

Development of Automotive Electronic Controller Software Based on Simulation Method

ZHANG Wanfu, HUANG Yingping

(SchoolofOptical-ElectricalandComputerEngineering,UniversityofShanghaifor

Taking the power window system and wiper control of an automobile as examples,a new-typed development method of the automotive electronic controller software was proposed,which incorporates the simulation and code generation techniques.The method employs the Simulink/Stateflow to establish controller algorithm models for offline simulation and fast verification,and generates an executable automotive code by RTW which can be directly embedded in the electric controller unit.The method was tested and verified to be feasible and accurate,by comparing with the simulation results of Simulink.It is proved that the development mode can greatly shorten the development cycle of the control system and has certain practical value for the development of automotive electronic control system.Moreover,the method allows validation testing being conducted in the early stage of development cycle.It greatly increases the correctness of the design and development.

simulation;automotiveelectroniccontroller;automotivecodegeneration

1007-6735(2017)01-0035-07

10.13255/j.cnki.jusst.2017.01.007

2016-06-29

國家自然科學基金資助項目(61374197);教育部博士點基金資助項目(20133120110006);上??莆萍紕撔滦袆佑媱澷Y助項目(13510502600)

張萬福(1990-),男,碩士研究生.研究方向:機器視覺檢測和汽車電子仿真.E-mail:495775041@qq.com

黃影平(1966-),男,教授.研究方向:智能汽車障礙物探測和汽車電子仿真.E-mail:huangyingping@usst.edu.cn

U 463

A

猜你喜歡
雨刮器車窗代碼
2013年寶馬X1雨刮器故障
創世代碼
創世代碼
創世代碼
創世代碼
2010年大眾甲殼蟲雨刮器不工作
車窗不起霧
雷克薩斯ES240 雨刮器間歇性不工作
車窗拍攝器
重卡雨刮器淋雨試驗臺——車輛雨刮器性能檢測設備的設計開發
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合