吳建剛, 劉 毅, 劉璐雅, 劉勝魁, 吳森林
(四川航天燎原科技有限公司, 四川 成都 610100)
隨著精確制導技術不斷發展, 導引頭技術越來越受到重視[1]。雷達導引頭伺服系統是導彈導引頭的重要組成部分,它對于發現目標、跟蹤目標以及精確測量目標位置都起著重要作用, 它的精度直接影響到反艦導彈的制導精度[2-3]。為了應對越來越苛刻的復雜戰場環境,雷達伺服系統采用的軟件控制算法、處理流程復雜度越來越高,因此其可靠性、安全性對于整個系統來說極為重要[4]。 嵌入式系統可靠性的研究始于20 世紀70 年代,嵌入式軟件的可靠性測試是在20 世紀90 年代以后逐漸得到重視[5]。在后續人們不斷深入研究的進程中,失效強度、可靠度等一些成熟應用在硬件可靠性研究中的概念被引入到軟件可靠性領域中[6]。 軟件可靠性(software reliability)用來衡量一個軟件系統按照用戶的要求和設計的目標執行其功能的正確程度,是軟件系統質量固有特性之一。軟件可靠性設計的目的是減少軟件中的缺陷, 并使軟件產品出現故障時,系統仍不會失效,常用的方法有避錯/防錯設計、查錯設計和容錯設計[7]。 在實際中,即使經過軟件可靠性分析設計,也沒有軟件能夠保證百分之百的正確、完整、一致,這就需要對其進行一系列可靠性評估和測試。 評價或測試一個軟件的可靠性, 最主要的是要確定系統怎樣輸入、如何使用一整套的方法和策略,即軟件可靠性測試是指為了達到或驗證用戶對軟件的可靠性要求而對軟件進行的測試[8]。 當前軟件可靠性測試方法主要有兩種,一種是基于應用場景模型的統計測試方法, 其通過定義系統所有的典型應用場景及其發生的概率, 然后由該模型生成測試用例; 另一種是基于操作剖面的可靠性測試方法, 其建立由操作集合和所對應的概率組成操作剖面[9]。文獻[10]討論了軟件開發過程在可靠性方面的考慮,還有在需求、設計、編碼階段使用的相關設計方法和技術,文獻[11]為了提高嵌入式應用軟件可靠性,提出基于模糊度檢測的嵌入式應用軟件可靠性自動測試方法, 構建軟件可靠性測試的約束參量指標分布模型, 并通過仿真驗證了其方法自動性較好,可靠性較高。 以上文獻均是從純軟件方面研究了通用軟件可靠性設計,研究通用驗證方法,尚未發現有文獻從應用層面研究伺服系統的軟件可靠性設計,研究其驗證方法。 本文針對雷達導引頭伺服控制系統的特點, 從系統應用層面對具體工程型號中使用的軟件可靠性設計方法及可靠性測試案例進行了闡述分析。
雷達導引頭伺服控制系統是一個典型的強弱電數模混合機電一體化產品,由伺服控制、伺服機構和伺服采集驅動三部分組成,組成框圖見圖1。 伺服機構采用雙軸正交的框架式結構,兩維結構相似,均由負載、執行電機、電機驅動器和測量元件等組成。

圖1 伺服系統組成框圖
伺服控制系統與導引頭中純電路分機顯著的區別在于它有電機執行機構,如果設計不當,會造成電機、驅動器燒毀以及執行機構和負載產品的損壞, 甚至造成安全事故,所以,導引頭對伺服控制軟件的可靠性非常重視。伺服控制系統軟件的可靠性設計僅從軟件自身考慮是不夠的,需要從系統層面統籌考慮,不但要考慮導引產品各類使用和試驗工況,而且要考慮調試階段、系統功能沒有完備以及可能會發生的排故工況。 本文主要結合工程應用,針對導引頭系統調試階段和排故工況,介紹了伺服控制系統保護模塊軟件可靠性設計案例以及模擬上位機驗證案例。
為了提高信號傳輸的實時性,在導引頭跟蹤模式下,角誤差作為伺服系統的重要輸入信息, 通常通過外部中斷觸發,實時更新發送。當導引頭各分機初次系統聯調或完整的工作流程還沒調通時, 信號處理軟件在線調試跟蹤功能時, 偶爾會在軟件跟蹤回路某位置打斷點采數分析。此時信號處理由于斷點不再連續運行,指令和數據均會保持斷點前一刻的狀態, 中斷指令和角誤差信號均無法更新,使伺服系統處于一個開環運動狀態,產生負載與機構止檔碰撞現象, 持續碰撞不僅會使電機和驅動器非正常發熱燒毀,碰撞頻過多還會對負載產生沖擊損壞。
針對該情況, 在伺服控制軟件中增加跟蹤邊界保護設計,軟件流程圖見圖2,具體措施為:針對伺服系統位置和速度雙閉環(外環為位置環, 內環為速度環)的控制特點,在速度內環中設置角誤差外部中斷信號標志變量(XINT1_cout)來判斷是否收到信號處理機發送的角誤差外部中斷信號。 若檢測不到外部中斷,則該標志變量以速度內環計算周期為時基進行累加, 累加到一定時間(cout_max)如50ms (該時間需根據導引頭信號處理跟蹤角誤差計算周期值確定) 還是未出現外部中斷, 則將內環速度給定值(Track_Speed_Azimuth)清零,使伺服機構處于純穩定狀態,穩定在當前位置,避免響應未更新的無效角誤差而產生運動到邊界碰撞的現象,進而起到保護產品的作用。若檢測到外部中斷信號,則對該變量(XINT1_cout)累加值清零,不影響導引頭正常的跟蹤流程。 經工程驗證,該措施可有效解決調試過程中跟蹤到邊界碰撞問題。

圖2 跟蹤邊界保護軟件流程
當伺服機構由于軟件設計存在缺陷等非正常原因處于失控或低溫下由于線纜霜凍變硬導致負載卡滯等異常狀態時,伺服電機會產生堵轉過流的現象,長時間過流工作導致電機存在燒毀的風險。 針對這些可能存在的非產品狀態運行故障, 伺服軟件中增加了電機過流保護模塊的設計, 該模塊的設計是對電機驅動硬件保護的一個補充,具體軟件流程圖見圖3。 在速度內環中增加占空比上限的檢測變量 (Current_cout), 若電機以占空比上限值(PWMmax)(對應短時間可工作的最大電流) 連續運行,檢測變量(Current_cout)會不斷以速度內環計算周期為時基累加, 超過設定時間(Tmax), 且占空比未發生減小, 則將電機占空比降低為較小的安全值(PWMsafe),同時上報電機過流狀態。 占空比上限值(PWMmax)一般取90%或根據產品工作實際調整,設定時間(Tmax)與占空比上限值相關, 在90%占空比下,設定時間(Tmax)一般設計為10s 時間, 如果占空比上限值(PWMmax)小于90%,可根據產品工作狀態適當增加。如果發現上位機顯示過流狀態, 可自動下發電機剎車指令使電機處于制動狀態,有效防止了特殊工況下的電機故障。 經工程驗證,該措施可有效解決產品非正常工況下的電機及驅動器燒毀問題。

圖3 電機過流保護軟件流程
除了上述兩個軟件可靠性設計案例,伺服控制軟件還采用了其他的可靠性設計,如冗余設計、對錯誤輸入的處理等。
冗余設計主要是針對伺服系統關鍵數據的采集,采用多個通信口采集同一數據或同一個通信口多次采集同一數據,最后通過比較判斷進行有效數據的裁決[12]。 某型號伺服服軟件中對于軟件的可靠性而言, 僅靠設計是不夠的,必須通過測試驗證,提早發現錯誤和設計缺陷進而補充完善。伺服某型號服軟件中,采用同一通信口對上位機下發的同一角度數據多次進行采集, 然后再通過數值判斷三取二確定最終的數據值, 這樣便有效的防止了因外部干擾等原因造成的錯誤數據,詳細的程序代碼為:

對軟件運行過程中因人為因素或環境因素產生的錯誤輸入,需在程序中進行相應的處理,以防止錯誤的輸入數據給整個伺服系統帶來故障風險。 常用的有對輸入的數據進行限幅、極限值判斷;對串口輸入數據進行幀頭判斷及數據包校驗;對上位機下發指令進行具體數據判斷,嚴格管控流程運行條件。
對于軟件的可靠性而言,僅靠設計是不夠的,必須通過驗證,發現錯誤和設計缺陷進而優化完善。為了提高伺服控制軟件的可靠性, 設計開發了一套模擬上位機驗證軟件,見圖4 所示。該軟件可在僅有伺服控制軟硬件的情況下,模擬導引頭信號處理機發送指令,同時可模擬伺服執行機構反饋運動信息, 實現桌面級的伺服控制軟件的設計驗證。模擬上位機界面左半邊下方為輸入界面,右側為反饋數據和標志顯示界面, 可模擬驗證伺服控制系統“自檢”“裝訂”“搜索”“捕獲”和“跟蹤”的各個流程。具體驗證過程以“裝訂”流程為例進行說明,流程如圖5。 首先,點擊“模擬信號”指令和“模擬機構”指令,這兩個指令選中后表示系統進入純軟件模擬驗證流程,其次,輸入“目標方位角數據(如20°)”和“目標俯仰角數據(如-20°)”并點擊“裝訂”指令,如果在規定的時間內,右側界面顯示“天線方位角位置(如20°)”和“天線俯仰角位置(如-20°)”,同時“裝訂到位”變綠,則表標該流程復合軟件設計預期,否則,表明軟件設計存在缺陷,需要進行修改完善。

圖4 伺服控制系統模擬上位機界面

圖5 裝訂流程軟件流程
本文介紹了雷達伺服控制系統的特點,闡述了從系統層面統籌考慮伺服控制系統軟件可靠性設計的必要性。結合工程實際案例具體分析了導引頭伺服系統跟蹤邊界保護和過流保護兩個軟件可靠性設計案例以及模擬上位機驗證情況,案例均經過多個工程型號的驗證,成熟度高,具有一定的工程應用參考價值。