吳建剛, 劉 毅, 劉璐雅, 劉勝魁, 吳森林
(四川航天燎原科技有限公司, 四川 成都 610100)
隨著精確制導(dǎo)技術(shù)不斷發(fā)展, 導(dǎo)引頭技術(shù)越來越受到重視[1]。雷達(dá)導(dǎo)引頭伺服系統(tǒng)是導(dǎo)彈導(dǎo)引頭的重要組成部分,它對于發(fā)現(xiàn)目標(biāo)、跟蹤目標(biāo)以及精確測量目標(biāo)位置都起著重要作用, 它的精度直接影響到反艦導(dǎo)彈的制導(dǎo)精度[2-3]。為了應(yīng)對越來越苛刻的復(fù)雜戰(zhàn)場環(huán)境,雷達(dá)伺服系統(tǒng)采用的軟件控制算法、處理流程復(fù)雜度越來越高,因此其可靠性、安全性對于整個系統(tǒng)來說極為重要[4]。 嵌入式系統(tǒng)可靠性的研究始于20 世紀(jì)70 年代,嵌入式軟件的可靠性測試是在20 世紀(jì)90 年代以后逐漸得到重視[5]。在后續(xù)人們不斷深入研究的進(jìn)程中,失效強(qiáng)度、可靠度等一些成熟應(yīng)用在硬件可靠性研究中的概念被引入到軟件可靠性領(lǐng)域中[6]。 軟件可靠性(software reliability)用來衡量一個軟件系統(tǒng)按照用戶的要求和設(shè)計的目標(biāo)執(zhí)行其功能的正確程度,是軟件系統(tǒng)質(zhì)量固有特性之一。軟件可靠性設(shè)計的目的是減少軟件中的缺陷, 并使軟件產(chǎn)品出現(xiàn)故障時,系統(tǒng)仍不會失效,常用的方法有避錯/防錯設(shè)計、查錯設(shè)計和容錯設(shè)計[7]。 在實際中,即使經(jīng)過軟件可靠性分析設(shè)計,也沒有軟件能夠保證百分之百的正確、完整、一致,這就需要對其進(jìn)行一系列可靠性評估和測試。 評價或測試一個軟件的可靠性, 最主要的是要確定系統(tǒng)怎樣輸入、如何使用一整套的方法和策略,即軟件可靠性測試是指為了達(dá)到或驗證用戶對軟件的可靠性要求而對軟件進(jìn)行的測試[8]。 當(dāng)前軟件可靠性測試方法主要有兩種,一種是基于應(yīng)用場景模型的統(tǒng)計測試方法, 其通過定義系統(tǒng)所有的典型應(yīng)用場景及其發(fā)生的概率, 然后由該模型生成測試用例; 另一種是基于操作剖面的可靠性測試方法, 其建立由操作集合和所對應(yīng)的概率組成操作剖面[9]。文獻(xiàn)[10]討論了軟件開發(fā)過程在可靠性方面的考慮,還有在需求、設(shè)計、編碼階段使用的相關(guān)設(shè)計方法和技術(shù),文獻(xiàn)[11]為了提高嵌入式應(yīng)用軟件可靠性,提出基于模糊度檢測的嵌入式應(yīng)用軟件可靠性自動測試方法, 構(gòu)建軟件可靠性測試的約束參量指標(biāo)分布模型, 并通過仿真驗證了其方法自動性較好,可靠性較高。 以上文獻(xiàn)均是從純軟件方面研究了通用軟件可靠性設(shè)計,研究通用驗證方法,尚未發(fā)現(xiàn)有文獻(xiàn)從應(yīng)用層面研究伺服系統(tǒng)的軟件可靠性設(shè)計,研究其驗證方法。 本文針對雷達(dá)導(dǎo)引頭伺服控制系統(tǒng)的特點, 從系統(tǒng)應(yīng)用層面對具體工程型號中使用的軟件可靠性設(shè)計方法及可靠性測試案例進(jìn)行了闡述分析。
雷達(dá)導(dǎo)引頭伺服控制系統(tǒng)是一個典型的強(qiáng)弱電數(shù)?;旌蠙C(jī)電一體化產(chǎn)品,由伺服控制、伺服機(jī)構(gòu)和伺服采集驅(qū)動三部分組成,組成框圖見圖1。 伺服機(jī)構(gòu)采用雙軸正交的框架式結(jié)構(gòu),兩維結(jié)構(gòu)相似,均由負(fù)載、執(zhí)行電機(jī)、電機(jī)驅(qū)動器和測量元件等組成。
圖1 伺服系統(tǒng)組成框圖
伺服控制系統(tǒng)與導(dǎo)引頭中純電路分機(jī)顯著的區(qū)別在于它有電機(jī)執(zhí)行機(jī)構(gòu),如果設(shè)計不當(dāng),會造成電機(jī)、驅(qū)動器燒毀以及執(zhí)行機(jī)構(gòu)和負(fù)載產(chǎn)品的損壞, 甚至造成安全事故,所以,導(dǎo)引頭對伺服控制軟件的可靠性非常重視。伺服控制系統(tǒng)軟件的可靠性設(shè)計僅從軟件自身考慮是不夠的,需要從系統(tǒng)層面統(tǒng)籌考慮,不但要考慮導(dǎo)引產(chǎn)品各類使用和試驗工況,而且要考慮調(diào)試階段、系統(tǒng)功能沒有完備以及可能會發(fā)生的排故工況。 本文主要結(jié)合工程應(yīng)用,針對導(dǎo)引頭系統(tǒng)調(diào)試階段和排故工況,介紹了伺服控制系統(tǒng)保護(hù)模塊軟件可靠性設(shè)計案例以及模擬上位機(jī)驗證案例。
為了提高信號傳輸?shù)膶崟r性,在導(dǎo)引頭跟蹤模式下,角誤差作為伺服系統(tǒng)的重要輸入信息, 通常通過外部中斷觸發(fā),實時更新發(fā)送。當(dāng)導(dǎo)引頭各分機(jī)初次系統(tǒng)聯(lián)調(diào)或完整的工作流程還沒調(diào)通時, 信號處理軟件在線調(diào)試跟蹤功能時, 偶爾會在軟件跟蹤回路某位置打斷點采數(shù)分析。此時信號處理由于斷點不再連續(xù)運行,指令和數(shù)據(jù)均會保持?jǐn)帱c前一刻的狀態(tài), 中斷指令和角誤差信號均無法更新,使伺服系統(tǒng)處于一個開環(huán)運動狀態(tài),產(chǎn)生負(fù)載與機(jī)構(gòu)止檔碰撞現(xiàn)象, 持續(xù)碰撞不僅會使電機(jī)和驅(qū)動器非正常發(fā)熱燒毀,碰撞頻過多還會對負(fù)載產(chǎn)生沖擊損壞。
針對該情況, 在伺服控制軟件中增加跟蹤邊界保護(hù)設(shè)計,軟件流程圖見圖2,具體措施為:針對伺服系統(tǒng)位置和速度雙閉環(huán)(外環(huán)為位置環(huán), 內(nèi)環(huán)為速度環(huán))的控制特點,在速度內(nèi)環(huán)中設(shè)置角誤差外部中斷信號標(biāo)志變量(XINT1_cout)來判斷是否收到信號處理機(jī)發(fā)送的角誤差外部中斷信號。 若檢測不到外部中斷,則該標(biāo)志變量以速度內(nèi)環(huán)計算周期為時基進(jìn)行累加, 累加到一定時間(cout_max)如50ms (該時間需根據(jù)導(dǎo)引頭信號處理跟蹤角誤差計算周期值確定) 還是未出現(xiàn)外部中斷, 則將內(nèi)環(huán)速度給定值(Track_Speed_Azimuth)清零,使伺服機(jī)構(gòu)處于純穩(wěn)定狀態(tài),穩(wěn)定在當(dāng)前位置,避免響應(yīng)未更新的無效角誤差而產(chǎn)生運動到邊界碰撞的現(xiàn)象,進(jìn)而起到保護(hù)產(chǎn)品的作用。若檢測到外部中斷信號,則對該變量(XINT1_cout)累加值清零,不影響導(dǎo)引頭正常的跟蹤流程。 經(jīng)工程驗證,該措施可有效解決調(diào)試過程中跟蹤到邊界碰撞問題。
圖2 跟蹤邊界保護(hù)軟件流程
當(dāng)伺服機(jī)構(gòu)由于軟件設(shè)計存在缺陷等非正常原因處于失控或低溫下由于線纜霜凍變硬導(dǎo)致負(fù)載卡滯等異常狀態(tài)時,伺服電機(jī)會產(chǎn)生堵轉(zhuǎn)過流的現(xiàn)象,長時間過流工作導(dǎo)致電機(jī)存在燒毀的風(fēng)險。 針對這些可能存在的非產(chǎn)品狀態(tài)運行故障, 伺服軟件中增加了電機(jī)過流保護(hù)模塊的設(shè)計, 該模塊的設(shè)計是對電機(jī)驅(qū)動硬件保護(hù)的一個補充,具體軟件流程圖見圖3。 在速度內(nèi)環(huán)中增加占空比上限的檢測變量 (Current_cout), 若電機(jī)以占空比上限值(PWMmax)(對應(yīng)短時間可工作的最大電流) 連續(xù)運行,檢測變量(Current_cout)會不斷以速度內(nèi)環(huán)計算周期為時基累加, 超過設(shè)定時間(Tmax), 且占空比未發(fā)生減小, 則將電機(jī)占空比降低為較小的安全值(PWMsafe),同時上報電機(jī)過流狀態(tài)。 占空比上限值(PWMmax)一般取90%或根據(jù)產(chǎn)品工作實際調(diào)整,設(shè)定時間(Tmax)與占空比上限值相關(guān), 在90%占空比下,設(shè)定時間(Tmax)一般設(shè)計為10s 時間, 如果占空比上限值(PWMmax)小于90%,可根據(jù)產(chǎn)品工作狀態(tài)適當(dāng)增加。如果發(fā)現(xiàn)上位機(jī)顯示過流狀態(tài), 可自動下發(fā)電機(jī)剎車指令使電機(jī)處于制動狀態(tài),有效防止了特殊工況下的電機(jī)故障。 經(jīng)工程驗證,該措施可有效解決產(chǎn)品非正常工況下的電機(jī)及驅(qū)動器燒毀問題。
圖3 電機(jī)過流保護(hù)軟件流程
除了上述兩個軟件可靠性設(shè)計案例,伺服控制軟件還采用了其他的可靠性設(shè)計,如冗余設(shè)計、對錯誤輸入的處理等。
冗余設(shè)計主要是針對伺服系統(tǒng)關(guān)鍵數(shù)據(jù)的采集,采用多個通信口采集同一數(shù)據(jù)或同一個通信口多次采集同一數(shù)據(jù),最后通過比較判斷進(jìn)行有效數(shù)據(jù)的裁決[12]。 某型號伺服服軟件中對于軟件的可靠性而言, 僅靠設(shè)計是不夠的,必須通過測試驗證,提早發(fā)現(xiàn)錯誤和設(shè)計缺陷進(jìn)而補充完善。伺服某型號服軟件中,采用同一通信口對上位機(jī)下發(fā)的同一角度數(shù)據(jù)多次進(jìn)行采集, 然后再通過數(shù)值判斷三取二確定最終的數(shù)據(jù)值, 這樣便有效的防止了因外部干擾等原因造成的錯誤數(shù)據(jù),詳細(xì)的程序代碼為:
對軟件運行過程中因人為因素或環(huán)境因素產(chǎn)生的錯誤輸入,需在程序中進(jìn)行相應(yīng)的處理,以防止錯誤的輸入數(shù)據(jù)給整個伺服系統(tǒng)帶來故障風(fēng)險。 常用的有對輸入的數(shù)據(jù)進(jìn)行限幅、極限值判斷;對串口輸入數(shù)據(jù)進(jìn)行幀頭判斷及數(shù)據(jù)包校驗;對上位機(jī)下發(fā)指令進(jìn)行具體數(shù)據(jù)判斷,嚴(yán)格管控流程運行條件。
對于軟件的可靠性而言,僅靠設(shè)計是不夠的,必須通過驗證,發(fā)現(xiàn)錯誤和設(shè)計缺陷進(jìn)而優(yōu)化完善。為了提高伺服控制軟件的可靠性, 設(shè)計開發(fā)了一套模擬上位機(jī)驗證軟件,見圖4 所示。該軟件可在僅有伺服控制軟硬件的情況下,模擬導(dǎo)引頭信號處理機(jī)發(fā)送指令,同時可模擬伺服執(zhí)行機(jī)構(gòu)反饋運動信息, 實現(xiàn)桌面級的伺服控制軟件的設(shè)計驗證。模擬上位機(jī)界面左半邊下方為輸入界面,右側(cè)為反饋數(shù)據(jù)和標(biāo)志顯示界面, 可模擬驗證伺服控制系統(tǒng)“自檢”“裝訂”“搜索”“捕獲”和“跟蹤”的各個流程。具體驗證過程以“裝訂”流程為例進(jìn)行說明,流程如圖5。 首先,點擊“模擬信號”指令和“模擬機(jī)構(gòu)”指令,這兩個指令選中后表示系統(tǒng)進(jìn)入純軟件模擬驗證流程,其次,輸入“目標(biāo)方位角數(shù)據(jù)(如20°)”和“目標(biāo)俯仰角數(shù)據(jù)(如-20°)”并點擊“裝訂”指令,如果在規(guī)定的時間內(nèi),右側(cè)界面顯示“天線方位角位置(如20°)”和“天線俯仰角位置(如-20°)”,同時“裝訂到位”變綠,則表標(biāo)該流程復(fù)合軟件設(shè)計預(yù)期,否則,表明軟件設(shè)計存在缺陷,需要進(jìn)行修改完善。
圖4 伺服控制系統(tǒng)模擬上位機(jī)界面
圖5 裝訂流程軟件流程
本文介紹了雷達(dá)伺服控制系統(tǒng)的特點,闡述了從系統(tǒng)層面統(tǒng)籌考慮伺服控制系統(tǒng)軟件可靠性設(shè)計的必要性。結(jié)合工程實際案例具體分析了導(dǎo)引頭伺服系統(tǒng)跟蹤邊界保護(hù)和過流保護(hù)兩個軟件可靠性設(shè)計案例以及模擬上位機(jī)驗證情況,案例均經(jīng)過多個工程型號的驗證,成熟度高,具有一定的工程應(yīng)用參考價值。