呂俊巧,邢立偉,孫文靖,劉耀文
(1.北京京航計(jì)算通訊研究所,北京 100074;2.北京機(jī)電工程研究所,北京 100074)
為了實(shí)現(xiàn)靈活機(jī)動(dòng)的飛行,制導(dǎo)控制系統(tǒng)功能日益復(fù)雜,建模和算法也更加復(fù)雜,相應(yīng)的軟件質(zhì)量直接關(guān)系到性能指標(biāo)的實(shí)現(xiàn)和試驗(yàn)任務(wù)的成敗,而基于系統(tǒng)工作原理進(jìn)行故障模式分析和測(cè)試,能夠發(fā)現(xiàn)較深層次的設(shè)計(jì)問(wèn)題,是保障軟件質(zhì)量的重要技術(shù)手段。
對(duì)于機(jī)動(dòng)飛行控制的實(shí)現(xiàn),目前在縱向通道或者側(cè)向通道的單一的機(jī)動(dòng)變軌策略已經(jīng)較為成熟,例如縱向通道的躍起或者下滑、側(cè)向通道的扇面轉(zhuǎn)彎或者“S”形機(jī)動(dòng)等,相應(yīng)的制導(dǎo)控制律主要解決各自通道的軌跡切換時(shí)序和姿態(tài)穩(wěn)定控制,功能較簡(jiǎn)單,軟件可靠性較高。
但某些少數(shù)情況下需要采用縱向和側(cè)向雙通道耦合控制的機(jī)動(dòng)策略,目前這方面的工程應(yīng)用經(jīng)驗(yàn)較少,相應(yīng)的故障模式和檢測(cè)測(cè)試技術(shù)也較少,本文結(jié)合實(shí)際應(yīng)用進(jìn)行深入研究,通過(guò)在縱向和側(cè)向通道分別進(jìn)行運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)建模,引入控制律,得到全空間的仿真軌跡。通過(guò)分析縱向和側(cè)向通道的控制律之間的耦合關(guān)系,在機(jī)動(dòng)區(qū)間內(nèi)引入風(fēng)干擾影響分析,建立風(fēng)干擾模型,在機(jī)動(dòng)結(jié)束的關(guān)鍵狀態(tài)切換點(diǎn)充分考慮可能的邏輯分支和流程時(shí)序,提取可能的故障模式,設(shè)計(jì)相應(yīng)的測(cè)試用例,進(jìn)行故障注入,全面覆蓋路徑分支,避免遺漏可能的錯(cuò)誤狀態(tài),從而實(shí)現(xiàn)將算法分析與軟件測(cè)試方法相結(jié)合的目的,檢測(cè)出軟件缺陷,達(dá)到從系統(tǒng)設(shè)計(jì)和程序?qū)崿F(xiàn)兩方面保障軟件質(zhì)量的效果[1-2]。
某機(jī)動(dòng)飛行區(qū)間的縱向和側(cè)向通道理論軌跡分別如圖1、圖2所示。

圖1 縱向通道理論軌跡示意圖

圖2 側(cè)向通道理論軌跡示意圖
飛行初始狀態(tài)為平飛,到達(dá)導(dǎo)航點(diǎn)A開(kāi)始縱向爬升,到達(dá)導(dǎo)航點(diǎn)B開(kāi)始側(cè)向轉(zhuǎn)彎,而后到達(dá)導(dǎo)航點(diǎn)C縱向轉(zhuǎn)為平飛,同時(shí)側(cè)向轉(zhuǎn)彎結(jié)束并返回直飛狀態(tài)。從點(diǎn)B到點(diǎn)C是縱向和側(cè)向同時(shí)進(jìn)行機(jī)動(dòng)變軌飛行的區(qū)間,縱向先爬升再轉(zhuǎn)平飛,側(cè)向轉(zhuǎn)彎再恢復(fù)直線飛行,相當(dāng)于在躍起過(guò)程中進(jìn)行扇面轉(zhuǎn)彎?rùn)C(jī)動(dòng),是一種比較復(fù)雜的機(jī)動(dòng)飛行狀態(tài),需要縱向俯仰和側(cè)向滾動(dòng)兩個(gè)通道同時(shí)啟動(dòng)控制時(shí)序并協(xié)調(diào)切換控制律,容易產(chǎn)生邏輯交聯(lián)和耦合關(guān)系,造成控制效果不穩(wěn)定或者達(dá)不到期望值。所以在測(cè)試中要重點(diǎn)關(guān)注控制狀態(tài)切換點(diǎn)及其時(shí)序組合的影響因素,從分析算法及其干擾因素入手發(fā)現(xiàn)程序中潛在的邏輯風(fēng)險(xiǎn)[3-4]。
在圖1、圖2的理論軌跡中,從點(diǎn)B到點(diǎn)C是縱向和側(cè)向同時(shí)進(jìn)行機(jī)動(dòng)變軌飛行的區(qū)間,縱向先爬升再轉(zhuǎn)平飛,側(cè)向連續(xù)進(jìn)行入彎和出彎控制,相當(dāng)于在躍起過(guò)程中進(jìn)行扇面轉(zhuǎn)彎?rùn)C(jī)動(dòng),是一種比較復(fù)雜的機(jī)動(dòng)飛行狀態(tài)。在制導(dǎo)控制律的設(shè)計(jì)中,當(dāng)縱向通道中爬升轉(zhuǎn)平飛條件滿足時(shí),會(huì)將側(cè)向通道控制模式置為“恢復(fù)直線飛行”狀態(tài),這樣點(diǎn)C既是縱向爬升轉(zhuǎn)平飛點(diǎn),又是側(cè)向轉(zhuǎn)彎結(jié)束點(diǎn)。
實(shí)際中,多種干擾因素會(huì)導(dǎo)致飛行偏離理論軌跡,影響狀態(tài)切換和飛行時(shí)序的準(zhǔn)確實(shí)現(xiàn),其中風(fēng)干擾是最為常見(jiàn)的重要影響因素。由于陣風(fēng)等實(shí)際干擾因素的影響,當(dāng)縱向通道中爬升轉(zhuǎn)平飛條件滿足時(shí),側(cè)向通道的實(shí)際狀態(tài)有可能是轉(zhuǎn)彎結(jié)束的“直線飛行狀態(tài)”,也可能還處于“出彎過(guò)程中(恢復(fù)直飛狀態(tài)前)”[5]。
在機(jī)動(dòng)飛行區(qū)間內(nèi),俯仰通道控制律主要采用俯仰角和高度控制,同時(shí)受到滾轉(zhuǎn)角的修正作用,如式(1)所示;側(cè)向通道控制規(guī)律主要采用滾動(dòng)角和側(cè)向位置控制,如式(2)所示。俯仰和滾動(dòng)兩個(gè)通道同時(shí)啟動(dòng)控制時(shí)序并協(xié)調(diào)切換控制律,容易產(chǎn)生邏輯交聯(lián)和耦合關(guān)系,造成控制效果不穩(wěn)定或者達(dá)不到期望值。

(1)
(2)

另外,此處采用工程應(yīng)用中簡(jiǎn)化的縱向通道和側(cè)向通道的運(yùn)動(dòng)和控制模型,分別如式(3)和式(4)所示。

(3)
(4)

機(jī)動(dòng)區(qū)間內(nèi),縱向通道和側(cè)向通道的控制流程如圖3、圖4所示。

圖3 縱向通道控制流程示意圖

圖4 側(cè)向通道控制流程示意圖
圖3中,縱向在機(jī)動(dòng)開(kāi)始后,首先按照飛行參數(shù)和爬升控制律進(jìn)行彈道積分計(jì)算,判斷彈道實(shí)際狀態(tài)是否到達(dá)轉(zhuǎn)平飛條件,如果不滿足條件就繼續(xù)采用爬升控制律并返回到彈道積分計(jì)算的步驟,如果滿足條件則將縱向轉(zhuǎn)平飛標(biāo)志和側(cè)向轉(zhuǎn)直線飛行標(biāo)志同時(shí)置為有效并切換為直線平飛階段的控制律,縱向機(jī)動(dòng)結(jié)束。
圖4中,側(cè)向在機(jī)動(dòng)開(kāi)始后,首先按照飛行參數(shù)和側(cè)向轉(zhuǎn)彎控制律進(jìn)行彈道積分計(jì)算,判斷側(cè)向直線飛行標(biāo)志是否有效(注意此處沒(méi)有判斷彈道的實(shí)際狀態(tài)是否到達(dá)轉(zhuǎn)彎結(jié)束點(diǎn)),如果不滿足條件就繼續(xù)采用轉(zhuǎn)彎控制律并返回到彈道積分計(jì)算的步驟,如果滿足條件則切換為直線平飛階段的控制律,側(cè)向機(jī)動(dòng)結(jié)束。
按照上述控制流程進(jìn)行正常模式和故障模式分析如下。
模式1:如果縱向通道中爬升轉(zhuǎn)平飛條件滿足時(shí),側(cè)向通道的實(shí)際狀態(tài)已經(jīng)是“直線飛行”,兩通道各自正常飛行,為理論彈道的期望設(shè)計(jì)狀態(tài),對(duì)整體飛行無(wú)異常影響。
模式2:如果由于某些干擾影響,縱向通道中爬升轉(zhuǎn)平飛條件滿足時(shí),側(cè)向通道的實(shí)際狀態(tài)是“出彎過(guò)程中”,而此時(shí)控制量卻轉(zhuǎn)為按照直線控制狀態(tài)進(jìn)行小幅度糾偏控制。由于并沒(méi)有完成期望的側(cè)向轉(zhuǎn)彎過(guò)程,此時(shí)的側(cè)向速度偏差、位置偏差較大,很快使舵面達(dá)到限幅值,因控制能力不足開(kāi)始滾動(dòng),滾轉(zhuǎn)角經(jīng)反饋控制后穩(wěn)定在某個(gè)較大值,側(cè)向位置偏差極易超出安控邊界,如圖5所示。

圖5 側(cè)向偏移示意圖
同時(shí)當(dāng)側(cè)向滾動(dòng)角突然變?yōu)檩^大值時(shí),依據(jù)縱向信號(hào)計(jì)算公式修正程序俯仰角,使俯仰控制信號(hào)突然增加,開(kāi)始抬頭爬升,在縱向平面處于一個(gè)穩(wěn)定的爬升過(guò)程,偏離理論設(shè)計(jì)彈道,直到安控邊界,如圖6所示。

圖6 縱向高度示意圖
模式3:如果由于某些干擾影響,縱向通道中爬升轉(zhuǎn)平飛條件滿足時(shí),側(cè)向通道的實(shí)際狀態(tài)是“轉(zhuǎn)彎結(jié)束越過(guò)原航向進(jìn)入反向轉(zhuǎn)彎”,而此時(shí)控制量卻轉(zhuǎn)為按照原航向直線控制狀態(tài)進(jìn)行小幅度糾偏控制。對(duì)側(cè)向和縱向彈道的影響與模式2中類似。
對(duì)于狀態(tài)較為復(fù)雜的飛行,軟件測(cè)試中要重點(diǎn)關(guān)注控制狀態(tài)切換點(diǎn)及其時(shí)序組合,從算法和系統(tǒng)工作流程入手,全面分析各判斷分支的觸發(fā)條件,發(fā)現(xiàn)程序中潛在的邏輯風(fēng)險(xiǎn),避免漏測(cè),增加覆蓋率[5-6]。
針對(duì)縱向和側(cè)向同時(shí)機(jī)動(dòng)帶來(lái)的雙通道耦合控制的潛在風(fēng)險(xiǎn),在各自通道內(nèi)引入風(fēng)干擾拉偏,并分析對(duì)控制實(shí)現(xiàn)的影響,在縱向機(jī)動(dòng)結(jié)束轉(zhuǎn)平飛的切換點(diǎn),應(yīng)該對(duì)實(shí)際的滾動(dòng)通道狀態(tài)和對(duì)應(yīng)標(biāo)志位進(jìn)行驗(yàn)證和確認(rèn),若有交聯(lián)耦合關(guān)系要充分列舉可能的狀態(tài)并設(shè)計(jì)測(cè)試用例。主要從邏輯測(cè)試、邊界測(cè)試和安全性測(cè)試等方面加強(qiáng)分析,軟件的動(dòng)態(tài)測(cè)試用例要正確且覆蓋全面[7-8]。
① 對(duì)控制律切換的時(shí)序進(jìn)行嚴(yán)密的邏輯分析,覆蓋相關(guān)的流程分支,并設(shè)計(jì)測(cè)試用例,以免遺漏可能的錯(cuò)誤狀態(tài)。本文中的理論彈道設(shè)計(jì)意圖是:在爬升轉(zhuǎn)平飛的切換點(diǎn)將側(cè)向通道的滾動(dòng)控制標(biāo)志位切換為直線控制狀態(tài),這種設(shè)計(jì)未考慮干擾和建模不確定性等因素的影響,隱藏著風(fēng)險(xiǎn),所以測(cè)試中需要在合適的節(jié)點(diǎn)加入風(fēng)干擾模型(見(jiàn)圖3、圖4中的風(fēng)干擾模塊),以驗(yàn)證算法的準(zhǔn)確性[9]。
② 在縱向機(jī)動(dòng)和側(cè)向機(jī)動(dòng)區(qū)間的端點(diǎn),要進(jìn)行邊界測(cè)試,驗(yàn)證狀態(tài)切換邊界實(shí)現(xiàn)的安全可靠性。
③ 安全性測(cè)試應(yīng)關(guān)注對(duì)故障情況的容錯(cuò)或者避錯(cuò)設(shè)計(jì),在故障變?yōu)槭坝枰宰R(shí)別并處理,驗(yàn)證飛行控制程序的安全性能。
根據(jù)上述分析,基于機(jī)動(dòng)區(qū)間的狀態(tài)切換流程,利用邏輯覆蓋法、邊界值分析和錯(cuò)誤推測(cè)法等測(cè)試技術(shù)進(jìn)行測(cè)試用例設(shè)計(jì),驗(yàn)證機(jī)動(dòng)后的滾動(dòng)通道直線控制狀態(tài)的判定處理是否正確[10]。
對(duì)軟件功能進(jìn)行邏輯覆蓋測(cè)試,執(zhí)行正常功能的測(cè)試用例,再通過(guò)程序插樁增加風(fēng)干擾,設(shè)計(jì)異常情況下的測(cè)試用例,驗(yàn)證軟件的異常處理功能。具體是在縱向和側(cè)向分別增加垂直風(fēng)干擾和側(cè)風(fēng)干擾(合理范圍為0~40 m/s),使實(shí)際彈道的機(jī)動(dòng)結(jié)束點(diǎn)與設(shè)計(jì)點(diǎn)不一致。設(shè)計(jì)具體用例如表1所示。

表1 邏輯覆蓋測(cè)試用例設(shè)計(jì)
f1為縱向機(jī)動(dòng)狀態(tài)的標(biāo)志位。f1=0:縱向風(fēng)干擾為0(縱向機(jī)動(dòng)按照設(shè)計(jì)點(diǎn)完成并轉(zhuǎn)平飛);f1=-1:縱向增加垂直逆風(fēng)30 m/s(縱向機(jī)動(dòng)比設(shè)計(jì)點(diǎn)延遲完成);f1=1:縱向增加垂直順風(fēng)30 m/s(縱向機(jī)動(dòng)比設(shè)計(jì)點(diǎn)提前完成)。
f2為側(cè)向機(jī)動(dòng)狀態(tài)的標(biāo)志位。f2=0:側(cè)向風(fēng)干擾為0(側(cè)向機(jī)動(dòng)按照設(shè)計(jì)點(diǎn)完成并轉(zhuǎn)直飛);f2=-1:側(cè)向增加逆風(fēng)30 m/s(側(cè)向機(jī)動(dòng)比設(shè)計(jì)點(diǎn)延遲完成);f2=1:側(cè)向增加順風(fēng)30 m/s(側(cè)向機(jī)動(dòng)比設(shè)計(jì)點(diǎn)提前完成)。
f3為機(jī)動(dòng)結(jié)束設(shè)計(jì)點(diǎn)的縱向控制的標(biāo)志位,f3=0:縱向轉(zhuǎn)平飛控制 ;f3=-1:縱向爬升控制;f3=1:縱向降高控制。
f4為機(jī)動(dòng)結(jié)束設(shè)計(jì)點(diǎn)的側(cè)向控制的標(biāo)志位。f4=0:側(cè)向機(jī)動(dòng)轉(zhuǎn)直飛控制;f4=-1:側(cè)向轉(zhuǎn)彎控制;f4=1:側(cè)向反向轉(zhuǎn)彎控制。
從實(shí)際執(zhí)行結(jié)果可以看出,當(dāng)縱向與側(cè)向的機(jī)動(dòng)結(jié)束狀態(tài)一致時(shí),實(shí)際測(cè)試結(jié)果與期望結(jié)果是一致的;當(dāng)縱向與側(cè)向的機(jī)動(dòng)結(jié)束狀態(tài)不一致時(shí),實(shí)際測(cè)試結(jié)果與期望結(jié)果是不一致的。
由于控制流程中將縱向機(jī)動(dòng)結(jié)束點(diǎn)作為側(cè)向機(jī)動(dòng)結(jié)束標(biāo)志位的同步觸發(fā)條件,所以通過(guò)邊界測(cè)試重點(diǎn)對(duì)機(jī)動(dòng)結(jié)束的設(shè)計(jì)點(diǎn)的雙通道狀態(tài)匹配情況進(jìn)行驗(yàn)證。
以縱向機(jī)動(dòng)的正常結(jié)束點(diǎn)和對(duì)應(yīng)的側(cè)向機(jī)動(dòng)實(shí)際狀態(tài)作為測(cè)試輸入,通過(guò)程序插樁增加側(cè)向的逆風(fēng)或者順風(fēng)干擾,設(shè)計(jì)測(cè)試用例如表2所示。

表2 機(jī)動(dòng)區(qū)間右端點(diǎn)的邊界測(cè)試用例設(shè)計(jì)
從實(shí)際執(zhí)行結(jié)果可以看出,當(dāng)縱向與側(cè)向的機(jī)動(dòng)狀態(tài)一致時(shí),實(shí)際測(cè)試結(jié)果與期望結(jié)果是一致的;當(dāng)縱向與側(cè)向的機(jī)動(dòng)狀態(tài)不一致時(shí),實(shí)際測(cè)試結(jié)果與期望結(jié)果是不一致的,測(cè)試未通過(guò)。
分析軟件實(shí)現(xiàn)所依據(jù)的飛行控制策略和流程,縱向通道切換控制模式的同時(shí)也觸發(fā)側(cè)向通道控制模式的切換(見(jiàn)圖3中的紅色虛線框),而外界干擾的不確定性會(huì)導(dǎo)致實(shí)際兩通道控制模式的不一致,屬于軟件設(shè)計(jì)缺陷。
根據(jù)經(jīng)驗(yàn)對(duì)關(guān)鍵切換點(diǎn)進(jìn)行錯(cuò)誤推測(cè)以驗(yàn)證安全性,復(fù)用3.2節(jié)中表2的測(cè)試用例2和測(cè)試用例3,在邊界上的側(cè)向增加逆風(fēng)30 m/s(側(cè)向延遲到達(dá))和順風(fēng)30 m/s(側(cè)向提前到達(dá)),形成安全性測(cè)試類型的測(cè)試用例??梢钥闯?,在受到風(fēng)干擾影響后,機(jī)動(dòng)結(jié)束點(diǎn)的雙通道控制仍然沿用理論設(shè)計(jì)值,沒(méi)有根據(jù)實(shí)際飛行狀態(tài)切換到所需的控制流程,說(shuō)明算法設(shè)計(jì)中沒(méi)有考慮對(duì)關(guān)鍵切換點(diǎn)異常的容錯(cuò)設(shè)計(jì)。
筆者研究了一類機(jī)動(dòng)飛行模式的算法,并進(jìn)行了故障注入、檢測(cè),提取了相應(yīng)的測(cè)試方法和軟件設(shè)計(jì)準(zhǔn)則。
① 基于系統(tǒng)工作原理和流程分析進(jìn)行建模分析和測(cè)試場(chǎng)景設(shè)計(jì),包括正常的和異常的,關(guān)注對(duì)異常分支的容錯(cuò)和避錯(cuò)設(shè)計(jì),有利于檢查系統(tǒng)和軟件的可靠性和正確性。
② 在測(cè)試方法研究中,測(cè)試用例設(shè)計(jì)要結(jié)合真實(shí)有效的數(shù)據(jù)模擬進(jìn)行,對(duì)數(shù)據(jù)的形式和注入方式、故障模式的覆蓋都要充分考慮,避免漏測(cè)。
① 關(guān)鍵狀態(tài)點(diǎn)切換的條件和流程分支判斷標(biāo)準(zhǔn)要充分準(zhǔn)確,在雙通道耦合控制的設(shè)計(jì)中要充分考慮干擾等建模不確定性的影響,增加控制律的魯棒性設(shè)計(jì)。
② 針對(duì)算法較為復(fù)雜的軟件,應(yīng)該采用故障樹(shù)分析(FTA)、失效模式影響及危害分析(FMECA)等方法,找出影響安全性的關(guān)鍵功能或者潛在的失效隱患,例如時(shí)序錯(cuò)誤、量值超限、環(huán)境干擾等,制定相應(yīng)的安全響應(yīng)措施或者容錯(cuò)設(shè)計(jì)。
綜上,通過(guò)軟件的算法分析加強(qiáng)對(duì)程序邏輯結(jié)構(gòu)的深入了解,進(jìn)而定位相應(yīng)的設(shè)計(jì)風(fēng)險(xiǎn)和邏輯隱患,設(shè)計(jì)有針對(duì)性的故障注入或測(cè)試用例,保障測(cè)試的功能覆蓋的充分性和安全可靠性,對(duì)于實(shí)現(xiàn)機(jī)動(dòng)、靈活、快速的控制能力有重要保障意義,是對(duì)關(guān)鍵復(fù)雜軟件開(kāi)展測(cè)試工作的重要研究方向。