王貴勇,鄧冬榮,趙 友,肖雨寒,何述超,姚國仲
(1.昆明理工大學 云南省內(nèi)燃機重點實驗室,云南 昆明 650224;2.柳州職業(yè)技術學院,廣西 柳州 545006;3.昆明云內(nèi)動力股份有限公司,云南 昆明 650200)
HIL仿真,是在數(shù)學和物理仿真的基礎上進行開發(fā)的半物理模型,屬于半實物仿真系統(tǒng),用數(shù)學模型代替物理柴油機,以降低成本,減少排放.HIL系統(tǒng)采用實際的控制器來控制虛擬對象,也是系統(tǒng)模型在嵌入式硬件中的實現(xiàn),用于開發(fā)和測試復雜的實時嵌入式系統(tǒng)[1-4].HIL仿真技術可用于控制器開發(fā)的V模式當中,能有效地縮短開發(fā)周期,特別是在發(fā)動機電控單元的開發(fā)測試中, HIL被廣泛使用[5-7].高壓共軌柴油機虛擬仿真模型信號I/O與ECU插接件I/O通過控制板卡I/O連接組成一個HIL仿真系統(tǒng),該系統(tǒng)可降低開發(fā)和測試成本,且技術可重復性高[8],減少人力及物力,減少上臺架測試次數(shù).
HIL仿真系統(tǒng)中,柴油機仿真模型需要大量地輸入信號,這些信號由采集的執(zhí)行器反饋信號進行計算輸入,并控制柴油機仿真模型,更新模型的輸出.ECU的工作需要大量的傳感器輸出信號,這些信號可由軟件以及硬件進行模擬.這兩種信號均屬于HIL仿真系統(tǒng)中的I/O信號.國內(nèi)外的各個HIL實現(xiàn)的方案中因為技術機密或是模塊集成等原因,都不會過多地描述系統(tǒng)I/O數(shù)據(jù)實現(xiàn)方法,大部分HIL系統(tǒng)仿真的實現(xiàn)常常會忽略整個系統(tǒng)I/O數(shù)據(jù)的走向[9-11],對HIL系統(tǒng)I/O數(shù)據(jù)流的闡述和具體I/O的實現(xiàn)方法不夠具體[12-16],這導致對系統(tǒng)實現(xiàn)的整個過程以及對系統(tǒng)I/O數(shù)據(jù)在各個節(jié)點所代表的含義變得模糊,嚴重影響HIL仿真系統(tǒng)的技術可重復性.針對上述問題,為了明確HIL仿真系統(tǒng)的I/O數(shù)據(jù)流, 提出了基于FPGA可重配置I/O設備與自主設計的負載板相結合的硬件在環(huán)仿真系統(tǒng)方案,可實現(xiàn)納秒級高速精準的信號發(fā)生、精確可靠的信號識別以及軟硬件I/O自定義配置;通過梳理HIL仿真系統(tǒng)方案中的I/O數(shù)據(jù),明確I/O數(shù)據(jù)流,并研究相關I/O數(shù)據(jù)的實現(xiàn)方法,設計相應的I/O數(shù)據(jù)邏輯,從而實現(xiàn)虛擬對象和實際控制器的閉環(huán)控制,為開發(fā)HIL仿真系統(tǒng)提供了清晰和明確的總體思路.
HIL系統(tǒng)由PC上位機軟件、NI Kintex-7 USB-7845R實時處理器以及ECU組成,如圖1所示.PC機通過通用串行總線USB連接至FPGA,含發(fā)動機模型的上位機與FPGA底層程序通過FPGA I/O向待測ECU輸出傳感器信號,ECU工作之后將執(zhí)行器反饋信號輸入至上位機中,上位機通過處理后,將反饋信號通過模型信號I/O端的輸入端輸入至柴油機仿真模型當中,以達到實時更新模型輸出的目的,進而更新ECU的工作.這樣就形成了一個以柴油機仿真模型、控制板卡和ECU為主的HIL仿真系統(tǒng).
圖1 高壓共軌柴油機HIL平臺總體方案Fig.1 Overall scheme of HIL platform for high pressure common rail diesel engine
系統(tǒng)采用USB-7845R多功能可重配置I/O設備,利用可編程的FPGA,實現(xiàn)板載信號處理以及靈活的系統(tǒng)定時及同步,特別是通過FPGA自定義I/O,能以納秒級分辨率來模擬傳感器的相應信號.可重配置I/O設備通過USB與PC上位機進行通訊.FPGA型號為Kintex-7 70T,最大采樣率為 500 kS/s.表1為多功能可重配置I/O模塊的I/O簡介.
表1 Kintex-7 USB-7845R I/O簡介
HIL仿真平臺軟件系統(tǒng)采用基于LabVIEW編程 G語言開發(fā).HIL仿真平臺軟件系統(tǒng)主要包括基于FPGA信號I/O接口的FPGA底層程序、HIL主程序、AVL/CRUISE M柴油機實時仿真模型三大模塊組成.如圖2所示,由LabVIEW FPGA模塊編寫底層程序編譯后的BIT文件(用于配置終端FPGA的配置比特流)下載至終端FPGA中,實現(xiàn)與外部軟硬件進行數(shù)據(jù)交互.
圖2 HIL仿真平臺軟件交互模式基本構架Fig.2 The basic framework of software interaction mode of HIL simulation platform
HIL仿真系統(tǒng)中,涉及到I/O信號的有傳感器信號I/O、執(zhí)行器信號I/O、模型信號I/O以及通信信號I/O.執(zhí)行器信號I/O和傳感器信號I/O主要是指可重配置I/O設備的輸入和輸出和上位機中調(diào)用的I/O;模型信號IO是指柴油機仿真模型的輸入輸出I/O,在上位機中實現(xiàn);通信I/O信號指的是測試軟件和ECU信號讀寫I/O.圖3為I/O信號在多功能可重配置I/O設備中的數(shù)據(jù)流圖.
圖3 I/O閉環(huán)數(shù)據(jù)流Fig.3 I/O closed-loop data flow
根據(jù)提出的硬件在環(huán)系統(tǒng)方案和可重配置I/O設備的工作電壓,負載板可將執(zhí)行器的驅(qū)動電流信號轉換成相同波形的電流電壓信號,并可通過改變采樣電阻大小,實現(xiàn)負載板采集到的信號的幅值大小在可重配置I/O設備的工作電壓范圍內(nèi).
基于FPGA的信號輸出數(shù)據(jù)流如下:
1)模型通過端口輸出物理值,上位機程序?qū)⒃撐锢碇颠M行信號處理得到該物理值對應的電壓值;
2)該電壓值在上位機中通過通用串行總線的串口總線標準,將數(shù)據(jù)發(fā)送至目標機7845R中;
3)目標機通過USB接口接收到該電壓值后,將電壓值通過FPGA底層BIT文件傳入可重配置I/O設備,F(xiàn)PGA內(nèi)部電路將該電壓值轉換為對應數(shù)值的電壓信號;
4)電壓信號輸入至ECU中,ECU接收電壓信號并驅(qū)動執(zhí)行器工作.
基于FPGA的信號輸入數(shù)據(jù)流如下:
1)可重配置I/O設備通過輸入端口接收負載板采集的執(zhí)行器電信號,通過FPGA內(nèi)部電路將該電信號轉換為對應的電信號值;
2)FPGA底層BIT文件對該電信號值進行相應的濾波等操作后, 目標機通過通用串行總線的串口總線標準將濾波后的電信號值傳入上位機中;
3)上位機經(jīng)過相應的信號處理后,通過軟件線束將處理過后的信號傳入至模型的輸入端口,從而實現(xiàn)I/O數(shù)據(jù)流的閉環(huán)控制.
通過對系統(tǒng)I/O數(shù)據(jù)流的分析,針對HIL最小系統(tǒng)中所需的基本I/O信號進行信號解析,其中包括傳感器I/O信號解析和執(zhí)行器I/O信號解析,如表2和表3所示.
表2 傳感器I/O信號解析
表3 執(zhí)行器I/O信號解析
上位機通過計算處理柴油機仿真模型輸出的信號,將該信號通過傳感器信號I/O索引至FPGA中,F(xiàn)PGA根據(jù)底層傳感器信號I/O的分配向ECU輸出上位機傳感器信號,ECU接收到信號后,判斷當前發(fā)動機所處的工況,結合發(fā)動機控制策略,向執(zhí)行器輸出控制信號.
信號的識別主要是識別執(zhí)行器信號,通過執(zhí)行器信號I/O接口將執(zhí)行器反饋信號輸入到仿真模型中.輸入之前需要進一步處理識別到的信號,以便于柴油機仿真模型識別.
曲軸凸輪軸傳感器信號是ECU底層判缸和噴油驅(qū)動程序所需要的基本輸入信號[17].而基于AVL/CRUISE M搭建的D30柴油機仿真模型是一臺不帶曲軸和凸輪軸傳感器的發(fā)動機模型,只有將柴油機仿真模型與曲軸凸輪軸傳感器信號聯(lián)合運行,才能真正地實現(xiàn)模型的動態(tài)仿真.該傳感器用于檢測發(fā)動機曲軸轉速大小和轉角位置,以此獲取曲軸轉角位置和發(fā)動機轉速位置.
曲軸和凸輪軸信號是柴油機發(fā)動機控制系統(tǒng)中最關鍵的輸入信號之一[18-20].D30曲軸信號盤采用的是60-2齒的結構,凸輪軸為4+1齒輪結構.如圖4所示為曲軸凸輪軸相位關系圖.
圖4 曲軸凸輪軸相位關系圖Fig.4 The crankshaft and camshaft phase diagram
2.1.1 曲軸信號設計
根據(jù)曲軸凸輪軸的相位關系,進行信號的仿真.通過定義曲軸高脈沖脈寬角度θH、低脈沖脈寬角度θL、缺齒寬度θgap、缺齒偏移量θoff以及每時鐘滴答生成角度θTick等輸入?yún)?shù),在板卡時鐘頻率fTick為 40 MHz 的定時循環(huán)里設計曲軸方波程序,進行360°曲軸方波信號的生成.其中每時鐘滴答生成角度的計算公式如下:
(1)
式中:n為轉速,單位為rad/min.
曲軸方波信號生成是按照FPGA時鐘滴答的移動角度進行模擬.圖5為曲軸方波信號生成的流程圖.
圖5 曲軸方波信號生成流程圖Fig.5 Flow chart of crankshaft square wave signal generation
曲軸方波的程序設計主要分四個模塊進行編寫,圖6為曲軸方波模塊設計示意圖.
圖6 曲軸方模塊設計示意圖Fig.6 Schematic diagram of crankshaft square wave module design
設定在定轉速的情況下,每時鐘滴答生成角度時固定值,曲軸角度則線性增長.此設計在非定轉速的情況下也能正常生成曲軸方波.
曲軸方波的設計主要分為:曲軸角度設計、缺齒位置設計、脈沖設計以及曲軸方波設計.
1)曲軸角度θCrank設計:通過每時鐘滴答產(chǎn)生的曲軸角度,控制角度在0°~360°CA內(nèi)循環(huán)模擬.曲軸角度θCrank的計算如下:
(2)
式中:θCrank為當前曲軸角度,單位為°CA;θTick為每滴答生成角度,單位為°CA;k為FPGA底層時鐘滴答次數(shù).
2)缺齒Bmt設計:通過將缺齒寬度和缺齒偏移量與當前曲軸角度進行對比,輸出缺齒位置.缺齒計算如下:
Bmt(θCrank)=[θCrank>(θoff+θgap)]||(θCrank<θoff)
(3)
式中:θoff為曲軸缺齒偏移量,單位為°CA;θgap為缺齒寬度,單位為°CA;Bmt為輸出的缺齒布爾值.通過邏輯或計算輸出,確定缺齒位置;當Bmt為False時,θCrank處于缺齒位置.
3)脈沖Bout設計:將高脈沖脈寬角度θH、低脈沖脈寬角度θL以及當前曲軸角度θCrank進行邏輯對比,并結合FPGA時鐘滴答的移動,輸出360°CA的高脈沖信號和低脈沖信號Bout(k).脈沖的計算如下:
(1)當0°≤θCrank<θH時:
(4)
(2) 當θH≤θCrank<360°時:
(5)
(6)
式中:θP(k)為當前脈沖所在曲軸角度位置,單位為°CA;θH、θL分別為高脈沖脈寬角度參數(shù)和低脈沖脈寬角度參數(shù),單位為°CA;Bout(k)為最終脈沖輸出信號,以布爾值True或False表示.
圖7為360°CA內(nèi)曲軸方波高低脈沖Bout(k)設計流程圖.
圖7 360°CA曲軸方波高低脈沖設計流程圖Fig.7 360°CA crankshaft square wave high and low pulse design flow chart
4)曲軸方波BCrank設計:通過對設計的缺齒信號和設計的高低脈沖信號進行邏輯與判斷,輸出曲軸方波信號.曲軸方波計算如下:
BCrank=Bout(k)&Bmt(θCrank)
(7)
式中:BCrank為最終輸出的曲軸方波信號,以布爾值True或False表示.
ECU插接件接收的曲軸信號可看作成類正弦波的樣式.利用LabVIEW FPGA模塊中的Sine Wave Generator函數(shù),同步曲軸方波信號模擬生成曲軸正弦波信號.圖8為無偏移角度和偏移φ角度的曲軸正弦波隨曲軸方波變化規(guī)律圖.
(a)無偏移 (b)有偏移圖8 曲軸正弦波隨曲軸方波變化規(guī)律圖Fig.8 Variation law of crankshaft sine wave with crankshaft square wave
為了實現(xiàn)曲軸的瞬態(tài)特性,上位機通過轉速計算曲軸正弦波頻率fCrank.曲軸正弦波頻率的計算如下:
(8)
式中:n為轉速,單位為rad/min;fTick為板卡時鐘頻率;fCrank為曲軸正弦波輸出頻率.
曲軸幅值設計如下:
(9)
式中:ACrank為曲軸幅值,單位為V;c為與曲軸傳感器有關的系數(shù);d為觸發(fā)輪間隙.
上位機通過調(diào)用FPGA接口中的讀取/寫入函數(shù),將fTick和fCrank信號寫入FPGA底層中,從而實現(xiàn)不同轉速下曲軸的瞬態(tài)特性.
2.1.2 凸輪軸信號設計
凸輪軸信號的生成與曲軸信號的生成方式基本相同.凸輪軸的相位關系通過曲軸生成的信號進行設計,并同步時鐘生成的時鐘角度,保證曲軸凸輪軸角度同步發(fā)生,避免產(chǎn)生時鐘誤差和信號偏移.D30為四沖程柴油機,凸輪軸和曲軸的傳動比關系為1∶2.因此,需要以兩倍的曲軸角度進行模擬凸輪軸角度,并根據(jù)曲軸位置來規(guī)定凸輪軸凸齒的起始度數(shù),用以計算TDC的位置.圖9為凸輪軸信號設計流程圖.
圖9 凸輪軸信號設計流程圖Fig.9 Camshaft signal design flow chart
ECU工作主要是接收識別來自柴油機發(fā)動機傳感器的模擬信號,并結合底層驅(qū)動程序以及控制策略來實現(xiàn)[19].
ECU主要的模擬輸入信號有軌壓傳感器、加速踏板傳感器、冷卻液溫度傳感器、進氣壓力傳感器以及進氣溫度傳感器等[21].上述傳感器信號的程序設計通過相應的傳感器特征曲線進行插值實現(xiàn).除加速踏板傳感器外,其他傳感器程序的輸入?yún)?shù)是柴油機仿真模型輸出的對應傳感器的物理值,輸出為對應傳感器的電壓值,如圖10所示.
圖10 傳感器一維特性曲線插值流程圖Fig.10 Interpolation flow chart of one-dimensional characteristic curve of sensor
加速踏板傳感器在上位機進行編寫程序設計,其輸入?yún)?shù)為垂直指針滑動桿控件,可設置加速踏板的開度值,輸出參數(shù)為對應開度的電壓值.
上位機程序需要對FPGA底層曲軸凸輪軸參數(shù)進行初始化,初始化值可根據(jù)發(fā)動機飛輪上的各參數(shù)確定.曲軸凸輪軸參數(shù)可以根據(jù)不同柴油機型號進行配置以適應柴油機工作,從而實現(xiàn)傳感器信號的通用性以及高效性.
執(zhí)行器信號利用負載板采集,將需要的電信號通過線束連接至分線面板中,F(xiàn)PGA讀取該電信號的值,底層BIT文件通過對數(shù)據(jù)進行信號處理后可直接將該電信號值索引分配至上位機,并通過模型信號I/O將該值傳到柴油機仿真模型的輸入端口.
執(zhí)行器信號識別模塊主要有噴油器信號和燃油計量單元信號的識別.
2.3.1 噴油信號識別
柴油機仿真模型需要噴油起始角和噴油持續(xù)角來計算噴油量.ECU噴油底層驅(qū)動采用的是“peak-hold”的控制方式.
噴油脈寬(噴油持續(xù)時間)可以從負載板采樣電阻的電壓信號波形采集,采樣電阻得到小于 5 V 的電壓信號,該電壓信號波形與驅(qū)動噴油器的噴油大電流信號波形具有相同的噴油脈寬.圖11為噴油器原始驅(qū)動電流信號與經(jīng)負載板采集的反饋信號波形圖.
圖11 原始與采樣電阻噴油脈寬波形圖Fig.11 Waveform of the original and sampled resistor injection pulse width
對指定連接器的FPGA AI通道配置合適的邏輯電平,負載板采集的噴油脈寬波形圖可通過FPGA AI輸入端口接入FPGA中,F(xiàn)PGA底層接收到該波形數(shù)據(jù)后,進行相應的濾波等信號處理.圖12為噴油信號識別流程圖,該圖邏輯在FPGA底層實現(xiàn).
圖12 噴油器噴油持續(xù)時間識別流程圖Fig.12 Flow chart for identifying the fuel injection duration of the fuel injector
上位機通過FPGA底層得到的時鐘滴答次數(shù)計算出當前的噴油脈寬,由噴油脈寬可計算出當前曲軸的噴油持續(xù)角.噴油持續(xù)角的計算如下:
θwidth=6n×10-9k0T
(10)
式中:θwidth為噴油持續(xù)角,單位為°CA;n為轉速,單位為rad/min;T為一個時鐘滴答的時間,單位為ns;k0為噴油脈寬的時鐘滴答次數(shù).
2.3.2 燃油計量單元信號識別
燃油計量單元是比例電磁閥,可實現(xiàn)對軌壓大小的控制[22-23].ECU根據(jù)各傳感器信號來判定當前柴油機的工況,然后通過控制PWM波占空比來調(diào)節(jié)燃油計量單元線圈電壓,控制線圈有效電流,從而控制燃油計量單元的開度,進而控制進入燃油計量單元中的燃油流量.
HIL系統(tǒng)識別的反饋信號為線圈有效電流通過負載板轉換的電壓信號.圖13為燃油計量單元原始驅(qū)動電流信號和PWM信號與經(jīng)負載板采集的反饋信號波形圖,上位機識別到該信號后,將當前電流電壓信號通過模型信號I/O輸入至模型,F(xiàn)PGA終端通過端口識別負載板采集到信號后,通過FPGA底層BIT程序?qū)ψR別到的反饋信號進行相應的信號處理.上位機讀取信號值后,通過模型信號I/O將該信號值輸入至模型中.
圖13 燃油計量單元原始驅(qū)動電流信號和PWM與采樣電阻反饋信號波形圖Fig.13 The original drive current signal of the fuel metering unit and the waveform diagram of the feedback signal of PWM and sampling resistance
圖14為仿真試驗臺架.HIL仿真系統(tǒng)中,分為上位機和下位機,圖中左側為下位機以及分線板,右側是用于觀測和操作的人機界面.
圖14 HIL仿真系統(tǒng)試驗臺架Fig.14 HIL simulation system test bench
上位機程序通過FPGA 取FPGA底層曲軸凸輪軸信號生成模塊的輸入?yún)?shù),按照表4中的參數(shù),進行曲軸、凸輪軸信號生成的相應參數(shù)進行初始化.初始化完成后,F(xiàn)PGA底層曲軸凸輪軸信號發(fā)生程序根據(jù)初始值生成正弦波信號,并傳至FPGA I/O端的輸出端口.最終將生成的仿真信號通過線束傳送至ECU,用以驗證ECU底層判缸驅(qū)動程序和控制策略.
表4 D30柴油機曲軸、凸輪軸傳感器仿真參數(shù)
圖15為轉速在 800 rad/min 時的曲軸凸輪軸仿真信號和臺架真實信號對比圖,其中(a)為程序編寫發(fā)生的曲軸凸輪傳感器模擬信號,(b)為臺架上測得的曲軸凸輪軸傳感器原始信號.
(a)仿真信號 (b) 實際信號圖15 曲軸、凸輪軸傳感器信號對比圖Fig.15 The comparison diagram of crankshaft and camshaft sensor signals
圖16為放大加速踏板傳感器信號I/O開度的加速過程,加速過程滿足發(fā)動機正常工作的曲軸瞬態(tài)特性,該瞬態(tài)特性的仿真信號與ECU底層判缸程序聯(lián)合運行,實現(xiàn)了發(fā)動機的啟動及全轉速范圍運行.
圖16 曲軸仿真信號隨速度變化的瞬態(tài)特性圖Fig.16 Transient characteristic diagram of crankshaft simulation signal changing with speed
系統(tǒng)設計的曲軸凸輪軸傳感器信號I/O、加速踏板傳感器信號I/O合理,能滿足發(fā)動機的瞬態(tài)特性.
3.2.1 噴油信號I/O
接入曲軸、凸輪軸及各種傳感器仿真信號后給ECU商店,ECU在發(fā)動機模型啟動后進入閉環(huán)控制狀態(tài),噴油執(zhí)行器也正常工作.FPGA底層通過噴油信號識別程序開始捕捉噴油信號,并將捕獲到的噴油波形、噴油脈寬數(shù)據(jù)上傳至上位機.
在不同工況下測試短、中、長三種噴射波形,如圖17所示.其中包括預噴噴油脈寬、適中的噴油脈寬以及偏長噴油脈寬的噴油波形.通過對比ECU控制的噴射脈寬值與三種不同噴油脈寬下的噴油電流波形對應I/O識別到的噴油脈寬數(shù)據(jù)(表5)可知,執(zhí)行器信號I/O設計合理,能成功捕捉到相同脈寬的噴油波形信號.利用底層時鐘滴答讀取脈寬即可得到相應脈寬的時鐘滴答次數(shù),并基于公式(2)~(10)計算出不同轉速下的噴油持續(xù)角.
圖17 上位機處理得到的不同噴油脈寬對比圖Fig.17 Comparison of different injection pulse widths processed by the host computer
表5 三種脈寬長度誤差
3.2.2 燃油計量單元信號I/O
燃油計量單元電流電壓信號作為輸入信號輸入到柴油機仿真模型中,軌壓模塊根據(jù)該信號等其他參數(shù)計算出新的軌壓并輸出到主程序中.更新的軌壓將重新作為ECU傳感器值輸入至ECU中,從而實現(xiàn)在不同工況下的軌壓控制,進而實現(xiàn)了模型的閉環(huán)控制.
FPGA識別到燃油計量單元電流電壓信號并處理后,上位機通過FPGA讀/寫函數(shù)讀取處理后的燃油計量單元電流電壓信號.如圖18所示,上位機讀取DMA采集到的燃油計量單元連續(xù)電流電壓信號后,除以負載板放大倍數(shù)后得到原始燃油計量單元波形.由圖可知,上位機處理讀取到的反饋信號與原始信號波形接近,符合預期效果.
圖18 上位機處理信號與原始信號和DMA采集信號波形對比圖Fig.18 Comparison of the waveform of the upper computer processing signal with the original signal and the DMA acquisition signal waveform
1)基于提出的多功能可重配置I/O設備與自制負載板相結合的硬件在環(huán)系統(tǒng)I/O研究方案中,負載板的設計合理,能將原始驅(qū)動電流信號通過采樣電阻采集進終端FPGA中.
2) 通過設計的傳感器信號I/O實現(xiàn)算法,可以滿足傳感器參數(shù)化配置,適配不同曲軸凸輪軸信號的發(fā)動機傳感器.
3)傳感器信號I/O能模擬各類傳感器信號,且ECU插接件端能實時接收I/O的傳感器信號;執(zhí)行器信號I/O能復原經(jīng)過負載板處理的執(zhí)行器原有波形信號,并實時反饋至柴油機仿真模型中,從而實現(xiàn)I/O數(shù)據(jù)的閉環(huán)控制.
4)基于FPGA設計的I/O信號同步特性好、信號精度高以及實時性能強等優(yōu)點,能滿足電控單元底層的判缸要求.