趙萬(wàn)里,郭迎清,*,楊菁,薛薇,武小平
(1.西北工業(yè)大學(xué) 動(dòng)力與能源學(xué)院,西安710129; 2.北京航天動(dòng)力研究所,北京100076)
液體火箭發(fā)動(dòng)機(jī)是在極端物理?xiàng)l件下運(yùn)行的復(fù)雜熱力學(xué)系統(tǒng),其故障的發(fā)生和發(fā)展具有極端的快速性和極大的破壞性。液體火箭對(duì)發(fā)動(dòng)機(jī)的安全性和可靠性提出了更高的要求,發(fā)展可靠有效的發(fā)動(dòng)機(jī)故障診斷系統(tǒng),可以對(duì)發(fā)動(dòng)機(jī)工作過(guò)程中出現(xiàn)的故障予以預(yù)警和判斷,并能及時(shí)采取有效措施,保護(hù)液體火箭和載荷安全,有效避免由于發(fā)動(dòng)機(jī)故障而引起的災(zāi)難性事故[1-2]。
目前,國(guó)內(nèi)外針對(duì)液體火箭發(fā)動(dòng)機(jī)故障診斷算法的研究還停留于試驗(yàn)驗(yàn)證階段,主要是基于硬件在環(huán)(HIL)仿真平臺(tái)和實(shí)際試車(chē)臺(tái)進(jìn)行驗(yàn)證[3-4]。以上研究都是基于地面試驗(yàn)開(kāi)展的,這些設(shè)備體積較大,很難應(yīng)用于機(jī)載設(shè)備上,僅能用于地面仿真驗(yàn)證,而直接應(yīng)用于機(jī)載系統(tǒng)故障診斷器的研究較少。將故障診斷器應(yīng)用于液體火箭發(fā)動(dòng)機(jī)機(jī)載系統(tǒng),對(duì)飛行過(guò)程中的故障進(jìn)行監(jiān)測(cè)和處理顯得尤為重要,因此有必要開(kāi)發(fā)一種可以用于機(jī)載故障診斷的硬件裝置。
近年來(lái),隨著硬件技術(shù)的發(fā)展,對(duì)單處理器結(jié)構(gòu)(如單片機(jī)、ARM、DSP和FPGA等)用于數(shù)據(jù)采集和算法處理的研究越來(lái)越多[5]。但液體火箭發(fā)動(dòng)機(jī)故障診斷器是一項(xiàng)極其復(fù)雜的工程,并且其綜合性極強(qiáng),有必要采用一種能應(yīng)用于復(fù)雜、性能高的場(chǎng)合的多處理器架構(gòu),將以上單一架構(gòu)相互結(jié)合起來(lái),進(jìn)行優(yōu)勢(shì)互補(bǔ)。液體火箭發(fā)動(dòng)機(jī)故障診斷器主要完成高精度數(shù)據(jù)采集和故障診斷算法的驗(yàn)證。采用FPGA靈活的配置能力和DSP運(yùn)算能力構(gòu)建雙處理器進(jìn)行故障診斷器設(shè)計(jì)是一種非常合理高效的選擇,其體積小,價(jià)格低廉,并且通用性高,易于擴(kuò)展。
因此,本文設(shè)計(jì)了以FPGA和DSP為硬件的故障診斷器用于液體火箭發(fā)動(dòng)機(jī)機(jī)載在線故障診斷。首先,對(duì)故障診斷器的整體架構(gòu)進(jìn)行了介紹;其次,分別設(shè)計(jì)了故障診斷器的硬件和軟件;然后,基于前饋神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)了一種用于故障診斷的遞歸結(jié)構(gòu)識(shí)別(RESID)算法,數(shù)字仿真驗(yàn)證成功后,對(duì)該算法進(jìn)行自動(dòng)代碼生成并與手寫(xiě)的驅(qū)動(dòng)代碼相結(jié)合;最后,搭建了硬件在環(huán)仿真平臺(tái),對(duì)RESID算法進(jìn)行了驗(yàn)證。
液體火箭發(fā)動(dòng)機(jī)故障診斷器主要完成傳感器信號(hào)采集和外部輸入指令的錄取功能,運(yùn)行故障診斷算法,顯示故障診斷結(jié)果并實(shí)現(xiàn)報(bào)警功能。本文采用FPGA+DSP雙系統(tǒng)來(lái)對(duì)故障診斷器進(jìn)行設(shè)計(jì)。
FPGA+DSP雙系統(tǒng)的最大優(yōu)點(diǎn)是結(jié)構(gòu)靈活,有較強(qiáng)的通用性,適合模塊化設(shè)計(jì);同時(shí)開(kāi)發(fā)周期較短,易于維護(hù)和擴(kuò)展[6]。系統(tǒng)的核心由芯片和可以重構(gòu)的器件組成,另外還包括一些外圍的輔助電路。系統(tǒng)中各有優(yōu)勢(shì),利用FPGA強(qiáng)大的并行處理能力進(jìn)行數(shù)據(jù)釆集并對(duì)系統(tǒng)外圍電路進(jìn)行控制,利用DSP的運(yùn)算能力對(duì)信號(hào)進(jìn)行實(shí)時(shí)處理并運(yùn)行故障診斷算法,同時(shí)與FPGA之間也有數(shù)據(jù)信息的交換。根據(jù)需求和標(biāo)準(zhǔn)化、模塊化、通用化的設(shè)計(jì)思想,根據(jù)故障診斷器的功能劃分確定系統(tǒng)總體設(shè)計(jì)框圖,如圖1所示,其主要包括電源模塊、A/D采集模塊、開(kāi)關(guān)量信號(hào)輸入、數(shù)字處理模塊和輸出接口組成。
圖1 故障診斷器總體架構(gòu)Fig.1 Overall architecture of fault diagnosis device
在故障診斷器設(shè)計(jì)中,F(xiàn)PGA的功能主要包括24通道數(shù)據(jù)采集、內(nèi)存擴(kuò)展、DSP數(shù)據(jù)通信及在內(nèi)部開(kāi)辟數(shù)據(jù)緩沖區(qū)等。綜上考慮,選用Xilinx 公 司 的 Spartan-6 系 列 芯 片,型 號(hào) 為XC6SLX16-2FT256I,采用256腳的BGA封裝,其內(nèi)部包含14 579個(gè)邏輯單元,32個(gè)硬件乘法器,136 Kbit可配置邏輯塊,576 Kbit的Block RAM,可用IO數(shù)量為232個(gè)[7]。
在故障診斷器系統(tǒng)中,DSP主要的功能是運(yùn)算故障診斷算法,并且與FPGA通信。由于系統(tǒng)本身需要進(jìn)行故障診斷算法,其包含大量浮點(diǎn)運(yùn)算,所以選擇C2000系列的浮點(diǎn)DSP。綜上,最終選擇的型號(hào)為T(mén)I公司生產(chǎn)的TMS320F28335,其是一款哈佛結(jié)構(gòu)的高性能32位浮點(diǎn)DSP,主頻為150 MHz,廣泛用于工業(yè)控制領(lǐng)域。
本文對(duì)外部傳感器信號(hào)進(jìn)行采集,核心芯片采用16位分辨率的AD7606。AD7606是一款集成式8通道同步采樣數(shù)據(jù)采集系統(tǒng),選用3片AD7606,通過(guò)并行通信接口與FPGA進(jìn)行數(shù)據(jù)交互,核心芯片采用16位分辨率的AD7606。3片AD7606共用16位數(shù)據(jù)線,分別在一個(gè)指令周期內(nèi)進(jìn)行輪訓(xùn)采樣。圖2為A/D采集實(shí)現(xiàn)框圖。利用FPGA的可編程邏輯控制特點(diǎn),采用狀態(tài)機(jī)的思想,通過(guò)編程設(shè)計(jì)AD7606的讀寫(xiě)控制時(shí)序,將采樣的結(jié)果實(shí)時(shí)保存在雙口RAM 里面,進(jìn)而實(shí)現(xiàn)高精度的A/D采樣。
故障診斷器的顯示模塊主要包括狀態(tài)指示燈和故障指示燈2部分。圖3為顯示模塊及報(bào)警模塊實(shí)現(xiàn)框圖。DSP的GPIO口與LED相連,顯示故障診斷結(jié)果功能,綠色為無(wú)故障狀態(tài),紅色為故障狀態(tài);狀態(tài)指示燈主要顯示工作狀態(tài)和各模塊自檢的狀態(tài)等;DSP的GPIO口與蜂鳴器相連,實(shí)現(xiàn)報(bào)警功能,當(dāng)故障發(fā)生時(shí),蜂鳴器響30 s加以提示。
1.3.1 FPGA控制數(shù)據(jù)采集
通過(guò)高精度、高速率的A/D轉(zhuǎn)換芯片將發(fā)動(dòng)機(jī)傳感器傳來(lái)的模擬量轉(zhuǎn)化為數(shù)字量,實(shí)時(shí)傳給診斷處理芯片,中央控制器通過(guò)實(shí)時(shí)的傳感器信息,采用故障診斷算法在線判斷發(fā)動(dòng)機(jī)狀態(tài),給出估計(jì),判斷故障信息。FPGA通過(guò)并口對(duì)多個(gè)傳感器數(shù)據(jù)進(jìn)行讀取,相比于串行數(shù)據(jù)傳輸,并行傳輸速率更快,在實(shí)時(shí)性要求較高的故障診斷系統(tǒng)中,需要傳輸多組傳感器數(shù)據(jù)進(jìn)行處理,采用并行傳輸成為了最好的選擇[8]。
AD7606可以對(duì)所有8路的模擬輸入通道進(jìn)行同步采樣。當(dāng)2個(gè)CONVST引腳(CONVSTA和CONVSTB)連在一起時(shí),所有通道同步采樣。在此共用CONVST信號(hào)的上升沿啟動(dòng)對(duì)所有模擬輸入通道的同步采樣(V1~V8)。在FPGA里通過(guò)有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn)對(duì)AD7606的控制,CS和RD均處于邏輯低電平時(shí),則會(huì)使能輸出總線DB[15∶0],使轉(zhuǎn)換結(jié)果輸出在并行總線上,AD_BUSY輸出保持高電平,直到所有通道的轉(zhuǎn)換過(guò)程完成為止,通過(guò)RANGE引腳來(lái)選擇模擬輸入的范圍。AD7606有限狀態(tài)機(jī)的結(jié)構(gòu)框圖如圖4所示。根據(jù)AD7606的工作原理和時(shí)序圖,先復(fù)位信號(hào),再轉(zhuǎn)換,完成后等待一段時(shí)間進(jìn)行A/D數(shù)據(jù)的讀取[9]。具體的狀態(tài)機(jī)輪轉(zhuǎn)圖如圖5所示。
1.3.2 FPGA與DSP通信
通過(guò)FPGA進(jìn)行數(shù)據(jù)采集之后,需要把采樣數(shù)據(jù)發(fā)送給DSP處理器進(jìn)行故障診斷。在FPGA里通過(guò)IP核構(gòu)建一塊雙口 RAM,用于存儲(chǔ)AD7606的數(shù)據(jù)輸出結(jié)果。DSP作為故障診斷的主控處理器,可以任意時(shí)刻讀取雙口RAM 里的采樣數(shù)據(jù),與通過(guò)中斷方式或者查詢(xún)方式讀取采樣數(shù)據(jù)相比,減小了對(duì)DSP資源的占用,提高了DSP效率。在FPGA里采用IP核構(gòu)造雙口RAM和PLL模塊,通過(guò)PLL分頻和倍頻,分別構(gòu)造10、50、75、100 MHz的時(shí)鐘作為雙口RAM的時(shí)鐘。
通過(guò)選擇XINTF接口,DSP可以很方便地讀取或者寫(xiě)入FPGA的寄存器,保證了系統(tǒng)的實(shí)時(shí)性[10]。通過(guò)對(duì)這些數(shù)據(jù)進(jìn)行處理并將其作為故障診斷算法所需的輸入,進(jìn)行故障診斷,再分別通過(guò)故障指示燈和故障報(bào)警器來(lái)顯示故障診斷結(jié)果并報(bào)警,報(bào)警和指示燈的軟件采用基于模型的設(shè)計(jì),將其加入算法模型,利用RTW 工具箱生成可執(zhí)行的嵌入式代碼并下載至DSP中。
本文根據(jù)已有的液體火箭發(fā)動(dòng)機(jī)模型來(lái)進(jìn)行故障診斷的研究[11],在建模時(shí)不考慮冗余,傳感器測(cè)點(diǎn)參數(shù)如表1所示,主要包含甲烷渦輪泵轉(zhuǎn)速、液氧渦輪泵轉(zhuǎn)速、甲烷泵后壓力、液氧泵后壓力、副系統(tǒng)甲烷噴嘴前壓力、副系統(tǒng)液氧噴嘴前壓力、主系統(tǒng)甲烷噴嘴前壓力、主系統(tǒng)液氧噴嘴前壓力、燃?xì)獍l(fā)生器壓力、燃?xì)獍l(fā)生器溫度和燃燒室壓力。根據(jù)目前國(guó)內(nèi)外的研究,液體火箭發(fā)動(dòng)機(jī)系統(tǒng)的故障主要發(fā)生在推力室和渦輪泵系統(tǒng)。發(fā)動(dòng)機(jī)主級(jí)階段主要發(fā)生堵塞、泄漏和渦輪泵系統(tǒng)故障等,本文模擬液體火箭發(fā)動(dòng)機(jī)主要的故障類(lèi)型,包括閥門(mén)開(kāi)度故障、泵氣蝕、渦輪效率損失和管路泄漏。
RESID算法基于自適應(yīng)學(xué)習(xí)網(wǎng)絡(luò)概念,將復(fù)雜的特征陣列的非線性關(guān)系用一個(gè)模型進(jìn)行表達(dá),該特征陣列即為傳感器參數(shù),其通過(guò)遞歸的方法建立了不同傳感器之間的相互關(guān)系。RESID算法的特征是在遞歸過(guò)程中一步步確立出最優(yōu)的模型。RESID算法結(jié)構(gòu)如圖6所示。圖中:E為RESID算法中每一步采用的訓(xùn)練算法,xi為輸入傳感器參數(shù)。對(duì)輸入傳感器參數(shù)的所有成對(duì)組合都確定函數(shù)E。選擇過(guò)程中,在最小平方誤差條件下表現(xiàn)差的元素被淘汰,其余元素成為下一階段訓(xùn)練和選擇步驟的輸入。這些訓(xùn)練和選擇步驟重復(fù),直到性能度量沒(méi)有顯示任何進(jìn)一步的改進(jìn)。在RESID算法中,需要對(duì)模型中每一組參數(shù)進(jìn)行訓(xùn)練。相較于傳統(tǒng)的非線性回歸方法,本文采用了性能更優(yōu)的前饋神經(jīng)網(wǎng)絡(luò)算法[12]。
參數(shù) 變量符號(hào) 單位甲烷渦輪泵轉(zhuǎn)速 n f r/min液氧渦輪泵轉(zhuǎn)速 n o r/min甲烷泵后壓力 P ef MPa液氧泵后壓力 P eo MPa副系統(tǒng)甲烷噴嘴前壓力 P gf MPa副系統(tǒng)液氧噴嘴前壓力 P go MPa主系統(tǒng)甲烷噴嘴前壓力 P cf MPa主系統(tǒng)液氧噴嘴前壓力 P co MPa燃?xì)獍l(fā)生器壓力 P g MPa燃?xì)獍l(fā)生器溫度 T g K燃燒室壓力 P c MPa
圖6 兩級(jí)RESID網(wǎng)絡(luò)示意圖Fig.6 Schematic of two-level RESID network
RESID算法通過(guò)選擇n個(gè)傳感器數(shù)據(jù)作為建模的預(yù)測(cè)變量X,1個(gè)傳感器數(shù)據(jù)作為建模的響應(yīng)變量y,建立方程y=func(X(1),X(2),…,X(n)),X(1)~X(n)為預(yù)測(cè)變量中的參數(shù)組,func為建模方程。通過(guò)標(biāo)稱(chēng)數(shù)據(jù)的響應(yīng)變量和預(yù)測(cè)變量,求得建模方程。當(dāng)系統(tǒng)工作正常時(shí),新的輸入變量代入方程中計(jì)算得到的預(yù)測(cè)值,應(yīng)與實(shí)際傳感器測(cè)試值具有較高的一致性;否則,認(rèn)為發(fā)生故障。
圖7為液體火箭發(fā)動(dòng)機(jī)RESID算法框圖。第1步,對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。第2步,根據(jù)訓(xùn)練數(shù)據(jù)集,對(duì)所有可以配對(duì)的RESID模型進(jìn)行建模,輸入為n個(gè)傳感器數(shù)據(jù),輸出為推力室室壓。第3步,選擇所有模型中預(yù)測(cè)均方估計(jì)誤差最小的模型,確定下來(lái)該模型。第4步,根據(jù)確定下來(lái)的模型計(jì)算出的推力室室壓,作為下一級(jí)迭代建模用的推力室室壓數(shù)據(jù)(第3步、第4步迭代進(jìn)行,直到m個(gè)模型建立成功)。第5步,將被測(cè)數(shù)據(jù)代入建好的RESID模型中,該模型利用選定的n個(gè)傳感器數(shù)據(jù),預(yù)測(cè)推力室室壓,將預(yù)測(cè)值與輸入的推力室室壓數(shù)據(jù)相比較,得到殘差數(shù)據(jù)。第6步,對(duì)所有模型的殘差計(jì)算平均絕對(duì)誤差,若該值超過(guò)診斷閾值,則認(rèn)為有故障發(fā)生。
圖7 RESID算法框圖Fig.7 Block diagram of RESID algorithm
故障判定時(shí),計(jì)算訓(xùn)練數(shù)據(jù)建立的模型得到的預(yù)測(cè)值與實(shí)際值之間的平均絕對(duì)誤差,平均絕對(duì)誤差為全部模型誤差的均值。該誤差作為故障診斷判定的基準(zhǔn)。在測(cè)試時(shí),將新輸入的數(shù)據(jù)代入模型,得到推力室室壓的預(yù)測(cè)值,并將預(yù)測(cè)值與實(shí)測(cè)值比較得到該測(cè)試數(shù)據(jù)的平均絕對(duì)誤差。將測(cè)試平均絕對(duì)誤差與訓(xùn)練平均絕對(duì)誤差相比較。若超過(guò)訓(xùn)練時(shí)平均絕對(duì)誤差值的n倍,則認(rèn)為有故障發(fā)生。通過(guò)查閱文獻(xiàn),通常n取3或5,可根據(jù)實(shí)際發(fā)動(dòng)機(jī)狀態(tài)進(jìn)行調(diào)整。
圖8 RESID算法訓(xùn)練殘差Fig.8 Training residuals of RESID algorithm
圖9 RESID算法故障診斷結(jié)果Fig.9 Fault diagnosis results of RESID algorithm
針對(duì)某型液體火箭發(fā)動(dòng)機(jī)模型,在第4 s注入故障,使流量系數(shù)由1衰減為0.9。在數(shù)字仿真下觀察結(jié)果。使用GUI界面可以進(jìn)行通道選擇和參數(shù)設(shè)置,圖8為GUI界面顯示的訓(xùn)練殘差。取訓(xùn)練殘差最大值0.020 6為閾值。圖9為GUI界面顯示的故障診斷參數(shù)設(shè)置和診斷結(jié)果界面,上面為參數(shù)設(shè)置,下面診斷結(jié)果界面中紅線和藍(lán)線代表殘差和閾值??梢钥闯?,在第4 s時(shí)閾值很明顯高于殘差,因此可以判定在第4 s發(fā)生了故障。發(fā)生故障前后分別進(jìn)行計(jì)時(shí),診斷出故障的時(shí)間為4.006 s。在發(fā)生故障之后,可以在6 ms診斷出來(lái),驗(yàn)證了在數(shù)字仿真下RESID算法可以進(jìn)行液體火箭發(fā)動(dòng)機(jī)故障診斷。
發(fā)動(dòng)機(jī)故障診斷器需要對(duì)液體火箭發(fā)動(dòng)機(jī)各部件的工作狀態(tài)進(jìn)行故障診斷。針對(duì)發(fā)動(dòng)機(jī)機(jī)載故障診斷需求,研究機(jī)載故障診斷器研制過(guò)程中的關(guān)鍵技術(shù),并采用通用硬件、軟件技術(shù)構(gòu)建故障診斷器,驗(yàn)證其平臺(tái)功能(硬件構(gòu)架、軟件功能)及診斷算法性能(實(shí)時(shí)性等),為故障診斷工程樣機(jī)研制奠定技術(shù)基礎(chǔ)[13]。本文構(gòu)建了對(duì)應(yīng)的HIL仿真平臺(tái),主要由實(shí)際控制器和虛擬對(duì)象組成,其可以模擬發(fā)動(dòng)機(jī)實(shí)際運(yùn)行過(guò)程和故障特征,實(shí)現(xiàn)故障診斷器狀態(tài)監(jiān)控、故障診斷和健康管理功能及性能的在線、實(shí)時(shí)試驗(yàn)驗(yàn)證。
搭建的HIL仿真平臺(tái)主要包括故障診斷端、被監(jiān)控端和上位機(jī)端,其分別采用設(shè)計(jì)的故障診斷器、工控機(jī)及PC機(jī)模擬實(shí)現(xiàn)[14]。其中,故障診斷端與被監(jiān)控端之間采用D/A和A/D通信方式實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)交互,故障診斷與主工作站之間采用RS232串口通信實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)交互,被監(jiān)控端與主工作站之間采用TCP/IP通信實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)交互;通過(guò)TCP/IP通信,將診斷結(jié)果傳輸給TCP/IP的上位機(jī)端。具體的HIL仿真平臺(tái)的總體硬件結(jié)構(gòu)框圖如圖10所示。
圖11為本文設(shè)計(jì)的液體火箭發(fā)動(dòng)機(jī)故障診斷器與搭建的HIL平臺(tái)實(shí)物圖,主要包含液體火箭發(fā)動(dòng)機(jī)實(shí)時(shí)狀態(tài)參數(shù)顯示、PCL-727模塊產(chǎn)生的模擬量輸出、上位機(jī)的顯示和故障診斷器。
為了實(shí)現(xiàn)在線故障診斷多種功能需求,構(gòu)建的故障診斷需要盡可能滿(mǎn)足復(fù)雜算法實(shí)時(shí)性要求。本文設(shè)計(jì)了一種雙線程機(jī)制來(lái)完成程序結(jié)構(gòu)設(shè)計(jì),縮短程序運(yùn)行時(shí)間[15]。這2種機(jī)制分別為HWI硬件中斷線程和TSK任務(wù)線程。HWI硬件中斷線程具有最高的優(yōu)先級(jí)和嚴(yán)格的實(shí)時(shí)性,中斷服務(wù)程序采用HWI硬件中斷線程,通過(guò)定時(shí)器中斷完成,主要實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)采集、在線故障診斷算法及控制算法。TSK任務(wù)線程優(yōu)先級(jí)較低,在運(yùn)行過(guò)程中可以等待,直到所需要的資源可用。由于主程序的特點(diǎn)就是運(yùn)行的非連續(xù)性及中斷位置的隨機(jī)性,因此采用了TSK任務(wù)線程這部分程序?qū)崿F(xiàn)信息的傳輸功能,即將故障診斷結(jié)果及故障診斷端接收到的傳感器數(shù)據(jù)傳輸?shù)街鞴ぷ髡尽?/p>
圖11 故障診斷器和HIL平臺(tái)實(shí)物圖Fig.11 Photo of fault diagnosis device and HIL platform
由上所述,將搭建的故障診斷軟件系統(tǒng)分為2個(gè)部分:主程序和中斷服務(wù)程序。在主程序中,主要進(jìn)行各個(gè)模塊和算法的初始化,采用CPU定時(shí)器中斷,20 ms自動(dòng)觸發(fā)一次,在中斷服務(wù)函數(shù)中運(yùn)行故障診斷算法并將其結(jié)果發(fā)送至上位機(jī)界面,在算法開(kāi)始前和開(kāi)始后分別在某一定時(shí)器寄存器中寫(xiě)值,這樣就可以觀察算法的運(yùn)行時(shí)間。故障診斷算法基于模型設(shè)計(jì)的自動(dòng)代碼生成方式進(jìn)行生成,先對(duì)其進(jìn)行DO-178C標(biāo)準(zhǔn)檢查,再替換不符合標(biāo)準(zhǔn)的模塊,使其生成嵌入式C代碼,最后將生成的代碼嵌入至DSP代碼中。
通過(guò)RS422串口將A/D采集到的值和故障診斷結(jié)果發(fā)送至液體火箭發(fā)動(dòng)機(jī)故障診斷平臺(tái)的上位機(jī)上進(jìn)行觀察,如圖12所示。將A/D采集到的數(shù)據(jù)與xPC端的數(shù)據(jù)進(jìn)行對(duì)比,精度可以達(dá)到1 mV,在某一時(shí)間植入故障,上位機(jī)中各參數(shù)發(fā)生變化,并顯示發(fā)生故障,算法在20 ms的中斷中只運(yùn)行了3.9 ms。因此,采用本文設(shè)計(jì)的DSP+FPGA雙系統(tǒng)架構(gòu)可以使數(shù)據(jù)采集精度更高并且減少CPU占用率,采用手寫(xiě)代碼與嵌入式代碼相結(jié)合的方式方便HIL平臺(tái)的開(kāi)發(fā)。
圖12 液體火箭發(fā)動(dòng)機(jī)故障診斷平臺(tái)上位機(jī)界面Fig.12 Upper computer interface of fault diagnosis platform for liquid rocket engine
本文基于FPGA和DSP雙處理器架構(gòu)設(shè)計(jì)了具有通用性的故障診斷器,可用于液體火箭發(fā)動(dòng)機(jī)機(jī)載在線故障診斷,對(duì)故障診斷器軟硬件和故障診斷算法進(jìn)行了研究和試驗(yàn)驗(yàn)證。主要結(jié)論如下:
1)對(duì)故障診斷器各模塊軟硬件進(jìn)行了設(shè)計(jì),利用FPGA靈活的配置能力,基于有限狀態(tài)機(jī)實(shí)現(xiàn)了對(duì)AD7606進(jìn)行傳感器數(shù)據(jù)采集的控制。在FPGA端構(gòu)造雙口RAM,DSP通過(guò)XINTF總線成功地從雙口RAM中讀取A/D轉(zhuǎn)換器的數(shù)據(jù)。
2)提出了一種RESID算法用于液體火箭發(fā)動(dòng)機(jī)故障診斷,將算法自動(dòng)生成代碼并與手寫(xiě)嵌入式代碼相結(jié)合,然后下載至故障診斷器中進(jìn)行驗(yàn)證。
3)利用故障診斷器、工控機(jī)和上位機(jī)搭建了用于算法驗(yàn)證的HIL仿真平臺(tái),證實(shí)了設(shè)計(jì)算法在故障診斷器中實(shí)現(xiàn)的可靠性,與數(shù)字仿真結(jié)果一致。
本文為液體火箭發(fā)動(dòng)機(jī)故障診斷工程樣機(jī)的設(shè)計(jì)提供了有效途徑,促進(jìn)了液體火箭發(fā)動(dòng)機(jī)故障診斷領(lǐng)域的研究工作。本文是在液體火箭發(fā)動(dòng)機(jī)的數(shù)學(xué)模型下進(jìn)行的,后續(xù)可在地面試車(chē)臺(tái)對(duì)故障診斷器進(jìn)行測(cè)試并改進(jìn),將其應(yīng)用于機(jī)載裝置中。