李 慧,王重陽,許振領(lǐng),王 敏
(中國洛陽電子裝備試驗(yàn)中心,河南 洛陽 471003)
光電捕獲跟蹤設(shè)備是光電對抗裝備(激光定向干擾系統(tǒng)、光電火控系統(tǒng)等)的重要組成部分,其作用距離、跟瞄精度、復(fù)雜環(huán)境適應(yīng)能力、機(jī)彈切換能力等性能指標(biāo)直接影響裝備的作戰(zhàn)效能[1],其中,跟瞄精度與設(shè)備跟蹤伺服系統(tǒng)的控制性能密切相關(guān),而復(fù)雜環(huán)境適應(yīng)能力、機(jī)彈切換能力等除了與圖像處理性能和伺服控制性能相關(guān)外,主要依賴于設(shè)備操作手操控水平的高低。數(shù)字圖像注入式閉環(huán)仿真方法因其戰(zhàn)情設(shè)計(jì)靈活、環(huán)境要素構(gòu)設(shè)全面、簡單易行等優(yōu)點(diǎn)在武器裝備科研試驗(yàn)、部隊(duì)訓(xùn)練演練中得到了廣泛應(yīng)用[2],能夠?qū)Ρ辉囇b備的性能、極限邊界能力和操作手操控能力進(jìn)行全面充分考核,將來在武器裝備作戰(zhàn)試驗(yàn)中也必將發(fā)揮重要作用。
在進(jìn)行光電裝備模擬訓(xùn)練過程中,當(dāng)被試光電捕獲跟蹤設(shè)備跟蹤轉(zhuǎn)臺(tái)實(shí)裝不參與時(shí)(圖像信息處理分系統(tǒng)和操作手均正常工作,跟蹤伺服分系統(tǒng)用仿真模型代替),通過開發(fā)一套數(shù)字仿真轉(zhuǎn)臺(tái)來模擬跟蹤轉(zhuǎn)臺(tái)實(shí)裝的功能性能,采用數(shù)字圖像注入式仿真手段同樣能夠?yàn)樵O(shè)備構(gòu)建逼真的光電信號環(huán)境,達(dá)到考核設(shè)備性能和操作手操控能力的目的。而且設(shè)備操作手按照正常操作流程對被試設(shè)備模擬系統(tǒng)進(jìn)行操作,通過設(shè)置不同樣本量的模擬訓(xùn)練戰(zhàn)情(多批次編隊(duì)目標(biāo),復(fù)雜干擾環(huán)境、飛機(jī)發(fā)射導(dǎo)彈等),可對操作手進(jìn)行反復(fù)訓(xùn)練,錘煉實(shí)戰(zhàn)能力。
由于模擬跟蹤伺服系統(tǒng)功能性能的數(shù)字仿真轉(zhuǎn)臺(tái)需要與注入式仿真系統(tǒng)及被試設(shè)備實(shí)裝部分連接,因此首先需要建立數(shù)字轉(zhuǎn)臺(tái)的仿真模型,然后該模型需要按照給定步長實(shí)時(shí)、可靠運(yùn)行。對跟蹤伺服系統(tǒng)的設(shè)計(jì)與建模普遍采用Matlab/Simulink及專用控制工具箱等,對于伺服系統(tǒng)性能的實(shí)時(shí)仿真與測試一般基于Matlab提供的RTW(Real-time workshop)產(chǎn)品,而RTW主要有兩種實(shí)時(shí)仿真開發(fā)平臺(tái)[3-5]:xPC和dSPACE,與dSPACE相比較,xPC實(shí)時(shí)仿真環(huán)境容易實(shí)現(xiàn),可用于產(chǎn)品快速控制原型開發(fā)、測試和配置實(shí)時(shí)系統(tǒng)?;诖?采用上下位機(jī)架構(gòu)建立了跟蹤伺服系統(tǒng)數(shù)字轉(zhuǎn)臺(tái)的實(shí)時(shí)仿真環(huán)境,完成了實(shí)時(shí)仿真系統(tǒng)軟硬件設(shè)計(jì)。上位機(jī)采用Simulink進(jìn)行數(shù)字轉(zhuǎn)臺(tái)的仿真建模,并將Simulink環(huán)境下的復(fù)雜控制算法、被控對象模型以及板卡驅(qū)動(dòng)模型編譯成實(shí)時(shí)優(yōu)化的C代碼下載到目標(biāo)下位機(jī);目標(biāo)機(jī)通過I/O板卡與外部設(shè)備進(jìn)行信息交互并將數(shù)據(jù)回傳,上位機(jī)可以在線監(jiān)控及修改控制參數(shù),從而完成跟蹤伺服系統(tǒng)的閉環(huán)實(shí)時(shí)仿真。
對于跟蹤伺服系統(tǒng)性能的實(shí)時(shí)仿真、開發(fā)與測試一般采用單機(jī)型實(shí)時(shí)仿真計(jì)算機(jī)和主副機(jī)型基于Matlab/RTW工具箱的仿真機(jī)。目前基于半實(shí)物仿真技術(shù)的控制系統(tǒng)開發(fā)及測試的實(shí)時(shí)仿真軟硬件產(chǎn)品,國外主流產(chǎn)品包括:加拿大RT-LAB實(shí)時(shí)仿真平臺(tái),美國ADI公司的rtX和RTS、并行計(jì)算機(jī)公司的IHawk、NI公司的Labview-RT實(shí)時(shí)仿真平臺(tái),德國dSPACE實(shí)時(shí)仿真平臺(tái)等;國內(nèi)成熟產(chǎn)品有銀河仿真工作站YH-AStar,海鷹仿真工作站HY-RTS,HiGale實(shí)時(shí)仿真機(jī)、Links-RT實(shí)時(shí)仿真機(jī)等。
其中,YH-AStar、海鷹仿真機(jī)、IHawk等單機(jī)型產(chǎn)品性能優(yōu)異,但就像dSPACE、rtX等實(shí)時(shí)仿真系統(tǒng)一樣,需要專門的硬件系統(tǒng)與軟件環(huán)境,投資相對較大;HiGale、RT-LAB等基于Simulink的主副機(jī)型仿真平臺(tái)實(shí)時(shí)性能較好,但也需要購置多種I/O板卡驅(qū)動(dòng)庫RTD和仿真控制軟件等。本文選擇基于Simulink/RTW/xPC Target構(gòu)建實(shí)時(shí)仿真軟硬件環(huán)境,在保證實(shí)時(shí)性同時(shí)不需要額外購買價(jià)格昂貴的實(shí)時(shí)計(jì)算機(jī),具有成本低、調(diào)參方便、性能較高、可視性好等優(yōu)點(diǎn)。
在光電對抗裝備模擬訓(xùn)練系統(tǒng)中,跟蹤伺服系統(tǒng)性能實(shí)時(shí)仿真平臺(tái)與模擬訓(xùn)練系統(tǒng)中其他設(shè)備、計(jì)算機(jī)之間的關(guān)系如圖1所示。跟蹤伺服系統(tǒng)性能實(shí)時(shí)仿真分析平臺(tái)設(shè)計(jì)實(shí)現(xiàn)包括實(shí)時(shí)仿真分析平臺(tái)硬件系統(tǒng)設(shè)計(jì)、跟蹤伺服系統(tǒng)Simulink仿真模型建立、軟件實(shí)現(xiàn)三個(gè)部分。
圖1 跟蹤伺服系統(tǒng)實(shí)時(shí)仿真分析平臺(tái)結(jié)構(gòu)框圖
xPC Target采用雙機(jī)模式,通過串口或以太網(wǎng)連接來實(shí)現(xiàn)相互通信。在宿主機(jī)中建立光電跟蹤伺服系統(tǒng)的Simulink仿真模型,采用C MEX S-函數(shù)編寫接口卡驅(qū)動(dòng)程序并封裝為驅(qū)動(dòng)模塊,加入到光電跟蹤伺服系統(tǒng)的Simulink仿真模型中,并對模型進(jìn)行離散化處理以建立實(shí)時(shí)模型,然后利用RTW自動(dòng)產(chǎn)生優(yōu)化、可移植的代碼,將其下載到具有實(shí)時(shí)內(nèi)核的目標(biāo)機(jī)中。為了實(shí)現(xiàn)數(shù)據(jù)采集和通訊,采用Moxa公司的CP-134U多串口卡分別接收信號處理機(jī)、操作手和時(shí)統(tǒng)設(shè)備發(fā)送的脫靶量、引導(dǎo)指令和中斷信號,利用目標(biāo)機(jī)主板串口發(fā)送實(shí)時(shí)解算的碼盤數(shù)據(jù)以一定頻率送給圖像仿真計(jì)算機(jī);目標(biāo)機(jī)和宿主機(jī)之間通過網(wǎng)卡進(jìn)行通訊,目標(biāo)機(jī)外部接口關(guān)系如圖2所示。
圖2 xPC Target目標(biāo)機(jī)的外部接口
因此,需要在宿主機(jī)上編寫CP-134U多串口卡的驅(qū)動(dòng)程序,包括串口發(fā)送、串口接收和串口設(shè)置三個(gè)S函數(shù)模塊,自動(dòng)編譯、產(chǎn)生實(shí)時(shí)代碼下載到目標(biāo)機(jī)上進(jìn)行實(shí)驗(yàn),來驗(yàn)證驅(qū)動(dòng)程序的穩(wěn)定性和可靠性。其中,串口設(shè)置模塊用于配置串口通訊協(xié)議以及波特率、數(shù)據(jù)位、校驗(yàn)位和字節(jié)長度等初始化信息;串口接收模塊用于按照一定中斷頻率實(shí)時(shí)接收引導(dǎo)指令、脫靶量數(shù)據(jù);串口發(fā)送模塊用于按照固定頻率實(shí)時(shí)發(fā)送碼盤數(shù)據(jù)給圖像仿真計(jì)算機(jī)。
紅外捕獲跟蹤設(shè)備因視場角較小,在有些情況下如目標(biāo)距離較遠(yuǎn)或不能直視時(shí),需要采用引導(dǎo)方式進(jìn)行隨動(dòng)跟蹤,一旦捕獲目標(biāo)后可轉(zhuǎn)為半自動(dòng)跟蹤或自動(dòng)跟蹤方式,即紅外捕獲跟蹤設(shè)備一般具有三種工作模式:數(shù)字引導(dǎo)、單桿速率、圖像自動(dòng)跟蹤[6-7]。如圖3所示為方位跟蹤伺服系統(tǒng)跟蹤模式框圖,俯仰和方位跟蹤系統(tǒng)基本結(jié)構(gòu)相同都是有差閉環(huán)控制系統(tǒng)。其中伺服電機(jī)和負(fù)載(即被控對象)是基本的,而功放、控制器(即位置回路與速度回路的補(bǔ)償校正)是需要根據(jù)性能指標(biāo)要求進(jìn)行設(shè)計(jì)的(電機(jī)的參數(shù)、負(fù)載的參數(shù)和實(shí)際可能存在的摩擦等是決定控制器設(shè)計(jì)的三個(gè)要素),控制系統(tǒng)設(shè)計(jì)的目的是設(shè)計(jì)補(bǔ)償器使系統(tǒng)的跟瞄精度、閉環(huán)帶寬滿足給定的性能指標(biāo),同時(shí)保證系統(tǒng)的過渡過程快速平穩(wěn)和使系統(tǒng)穩(wěn)定可靠工作。
圖3 紅外捕獲跟蹤設(shè)備方位跟蹤伺服系統(tǒng)三種工作模式
采用Matlab/Simulink動(dòng)態(tài)仿真軟件對其進(jìn)行建模和仿真分析,根據(jù)跟蹤伺服系統(tǒng)的性能指標(biāo),采用經(jīng)典的頻域分析法進(jìn)行設(shè)計(jì)和校正,可確定系統(tǒng)各個(gè)環(huán)節(jié)傳遞函數(shù)的參數(shù),最終建立其Simulink仿真模型。利用該模型可對紅外捕獲跟蹤設(shè)備在不同輸入信號作用下的動(dòng)態(tài)響應(yīng)輸出進(jìn)行仿真分析,但由于仿真時(shí)間是非實(shí)時(shí)的,且建模時(shí)忽略了一些干擾與非線性因素,得到的仿真結(jié)果不足以全面、準(zhǔn)確考核設(shè)備動(dòng)態(tài)性能,也不能滿足半實(shí)物仿真系統(tǒng)聯(lián)調(diào)或模擬訓(xùn)練時(shí)實(shí)時(shí)響應(yīng)要求。
該實(shí)時(shí)仿真分析開發(fā)環(huán)境目標(biāo)機(jī)采用研華工控機(jī),I/O板卡采用moxa多串口卡,宿主機(jī)采用普通PC機(jī),并且安裝Matlab R2012b,Microsoft Visual Studio 2010等常用軟件,其軟件實(shí)現(xiàn)過程如下:首先在宿主機(jī)上建立多串口卡驅(qū)動(dòng)程序模型和實(shí)際跟蹤轉(zhuǎn)臺(tái)Simulink仿真模型(包括控制器模型和被控對象動(dòng)力學(xué)模型),然后在宿主機(jī)上生成xPC實(shí)時(shí)內(nèi)核的啟動(dòng)盤并啟動(dòng)目標(biāo)機(jī),最后將自動(dòng)生成可執(zhí)行程序下載到目標(biāo)機(jī)實(shí)時(shí)運(yùn)行。
2.3.1 基于xPC Target的多串口卡驅(qū)動(dòng)程序開發(fā)
MATLAB/xPC Target是基于RTW體系結(jié)構(gòu)并且能夠使PC機(jī)變成一個(gè)實(shí)時(shí)操作系統(tǒng)的產(chǎn)品,它能夠在PC機(jī)上實(shí)時(shí)運(yùn)行與物理系統(tǒng)連接的Simulink模型,在MATLAB/Simulink環(huán)境下的半實(shí)物實(shí)時(shí)仿真系統(tǒng)中起到快速原型化及硬件在回路仿真與測試的作用。其運(yùn)行機(jī)制與Windows操作系統(tǒng)存在根本性的差異,而一般情況下接口卡制造商提供的驅(qū)動(dòng)程序都是基于Windows操作系統(tǒng)。為了能夠擴(kuò)展xPC工具箱應(yīng)用范圍,開發(fā)基于xPC Target的接口卡驅(qū)動(dòng)程序滿足光電跟蹤伺服系統(tǒng)實(shí)時(shí)仿真需求是十分必要的。
采用C MEX S-函數(shù)開發(fā)多串口卡等驅(qū)動(dòng)程序模塊。通過打開Matlab庫中的C MEX S函數(shù)的模板,其中包含mdlInitializeSizes,mdlInitializeSampleTimes,mdlStart,mdlOutputs和mdlTerminate等回調(diào)函數(shù),在mdlInitializeSizes函數(shù)中進(jìn)行各項(xiàng)設(shè)備初始化工作;在mdlOutputs函數(shù)中編寫每一采樣時(shí)刻設(shè)備的輸入輸出程序;在mdlTerminate函數(shù)中進(jìn)行仿真結(jié)束時(shí)的各項(xiàng)設(shè)置。而重點(diǎn)工作則是在mdlOutputs函數(shù)中進(jìn)行板卡寄存器的讀寫來完成串口數(shù)據(jù)收發(fā)功能,一個(gè)較為完整的多串口設(shè)備驅(qū)動(dòng)可以分為7個(gè)模塊:設(shè)備初始化Setup;數(shù)據(jù)發(fā)送使能Enable TX;發(fā)送數(shù)據(jù)Write HW FIFO;接收數(shù)據(jù)Read HW FIFO;設(shè)置中斷;讀中斷Read Int Status;判斷中斷類型Filter Int Reason,根據(jù)需要選擇模塊建立設(shè)備驅(qū)動(dòng)。通過調(diào)用板卡的寄存器操作函數(shù),實(shí)現(xiàn)串口板卡功能,最終完成串口通訊模塊的創(chuàng)建,具體的驅(qū)動(dòng)程序編制過程將另文進(jìn)行闡述,這里不再贅述。
2.3.2 伺服控制算法詳細(xì)設(shè)計(jì)
伺服系統(tǒng)控制軟件能夠進(jìn)行跟蹤方式選擇控制,切換三種跟蹤方式,處在單桿狀態(tài)時(shí),可增加一個(gè)模擬單桿控件用以模擬單桿功能,實(shí)現(xiàn)方位、俯仰的控制。紅外跟蹤伺服系統(tǒng)控制軟件用于完成simulink仿真模型每個(gè)環(huán)節(jié)的數(shù)字化處理以建立實(shí)時(shí)仿真模型,支持目標(biāo)機(jī)上串口卡的驅(qū)動(dòng)程序的開發(fā),實(shí)現(xiàn)數(shù)字引導(dǎo)、單桿速率、圖像自動(dòng)等三種跟蹤方式的切換控制,并記錄接收和發(fā)送的數(shù)據(jù)。實(shí)時(shí)仿真時(shí),在目標(biāo)脫靶量及控制指令(一般為50 Hz)、時(shí)統(tǒng)中斷信號(一般為800 Hz)的觸發(fā)下,伺服系統(tǒng)仿真軟件分別進(jìn)行伺服系統(tǒng)位置回路、速率回路參數(shù)的實(shí)時(shí)解算,并按照時(shí)統(tǒng)中斷頻率輸出轉(zhuǎn)臺(tái)角度等參數(shù)??刂栖浖敿?xì)算法流程如圖4和圖5所示。
利用C MEX S函數(shù)進(jìn)行數(shù)字控制器實(shí)現(xiàn)時(shí),引導(dǎo)數(shù)據(jù)頻率為100 Hz(可設(shè)置),主控計(jì)算機(jī)以100 Hz的速率通過串口給跟蹤轉(zhuǎn)臺(tái)計(jì)算機(jī)下發(fā)引導(dǎo)數(shù)據(jù),跟蹤轉(zhuǎn)臺(tái)計(jì)算機(jī)與主控計(jì)算機(jī)之間的串行通訊采用RS422標(biāo)準(zhǔn),并且具有統(tǒng)一的時(shí)統(tǒng)信號。編碼器采樣頻率為400 Hz,當(dāng)編碼器采樣時(shí)刻到來時(shí),要完成讀取編碼器當(dāng)前時(shí)刻的值,位置差分計(jì)算速度,位置校正和速度校正這些任務(wù)。
差分測速:設(shè)j時(shí)刻編碼器位置為θ(j),前n時(shí)刻編碼器位置為θ(j-n),取q(θ(j)-θ(j-n))/nT為j時(shí)刻的速度值,T為采樣周期。為了使測速曲線光滑,取j時(shí)刻前兩個(gè)采樣時(shí)刻的測速值與j時(shí)刻測速值的平均值為j時(shí)刻的測速值。
圖4 主程序流圖
圖5 中斷程序流圖
校正環(huán)節(jié)的數(shù)字化實(shí)現(xiàn),編制計(jì)算機(jī)程序時(shí)可用直接法、串聯(lián)法和并聯(lián)法等三種方法。若速度環(huán)校正網(wǎng)絡(luò)形式為:
GVC(s)=K(T2S+1)(T3S+1)/(T1S+1)(T4S+1)
(1)
則串聯(lián)法實(shí)現(xiàn)時(shí),對G(s)進(jìn)行雙線性變換:
G(z)=Z[G(s)]|s=2(1-z-1)/Ts(1+z-1)
=Kz(1-Bz-1)(1-Cz-1)/(1-Az-1)(1-Dz-1)
(2)
其中,Kz、A、B、C、D為常數(shù),分別為:
(3)
由于串聯(lián)法實(shí)現(xiàn)時(shí),存在著大量乘積運(yùn)算導(dǎo)致舍入誤差大,故這種形式的G(z)的數(shù)字校正在選擇實(shí)現(xiàn)結(jié)構(gòu)時(shí)往往以并聯(lián)實(shí)現(xiàn)結(jié)構(gòu)為最佳,即將上式分解為并聯(lián)形式:
(4)
(5)
則采用C Mex S函數(shù)設(shè)計(jì)得到的數(shù)字控制器模型,經(jīng)過編譯命令mex sfun_azimuth.c后,可生成可調(diào)用的動(dòng)態(tài)鏈接庫文件sfun_azimuth.mexw32(即dll文件)。被控對象(電機(jī)和負(fù)載)的數(shù)學(xué)模型建立之后,同樣也可以用C MEX S-函數(shù)來實(shí)現(xiàn),如圖6跟蹤伺服系統(tǒng)實(shí)時(shí)計(jì)算分析模型中sfun_azimuthmotor所示。
圖6 跟蹤伺服系統(tǒng)實(shí)時(shí)計(jì)算模型
在紅外捕獲跟蹤設(shè)備的跟蹤伺服系統(tǒng)中,指控計(jì)算機(jī)通過串口發(fā)送的數(shù)據(jù)頻率為100 Hz(可設(shè)置),編碼器采樣頻率為400Hz,控制算法的遞推運(yùn)算也按照400 Hz周期進(jìn)行。
對于某紅外捕獲跟蹤裝備方位軸跟蹤伺服系統(tǒng),加載設(shè)置好各個(gè)環(huán)節(jié)參數(shù),各環(huán)節(jié)可在數(shù)字控制器C MEX S-函數(shù)中進(jìn)行離散化實(shí)現(xiàn)。上位機(jī)發(fā)送引導(dǎo)數(shù)據(jù)頻率為100 Hz,時(shí)間延遲為0.02 s時(shí),對于輸入為等效正弦信號時(shí),經(jīng)過仿真得到的動(dòng)態(tài)控制誤差如圖7(a)所示。使用RTW實(shí)時(shí)工具箱將Simulink模型自動(dòng)生成優(yōu)化的、可移植的和用戶定制的C代碼。按照這種方法生成一個(gè)RTW通用實(shí)時(shí)目標(biāo)環(huán)境的應(yīng)用程序。RTW提供了MAT文件的數(shù)據(jù)記錄功能,可以將程序運(yùn)行每個(gè)時(shí)間步長處的系統(tǒng)輸入輸出、狀態(tài)和仿真時(shí)間數(shù)據(jù)存儲(chǔ)在一個(gè)MAT格式文件中[8]。程序生成并運(yùn)行結(jié)束之后得到的跟蹤誤差如圖7(b)所示,裝載該文件并與原始仿真模型的輸入輸出結(jié)果進(jìn)行比較,從而可進(jìn)行生成代碼和程序的校驗(yàn)。
圖7 原始模型與RTW生成程序運(yùn)行得到的控制誤差
原始仿真模型生成的方位跟蹤誤差數(shù)據(jù)為errora,RTW生成程序運(yùn)行后得到的方位跟蹤誤差數(shù)據(jù)記錄為rt_errora,比較可得兩者變化規(guī)律一致,最大誤差相差很小,max(abs(rt_errora(:,2)-errora(:,2))= 1.7764×10-14。
采用xPC目標(biāo)工具設(shè)計(jì)開發(fā)了某光電對抗裝備跟蹤伺服系統(tǒng)的半實(shí)物實(shí)時(shí)仿真平臺(tái),完成了平臺(tái)軟硬件及控制算法的設(shè)計(jì)與仿真測試,通過調(diào)試控制參數(shù),在線監(jiān)測控制性能,從而實(shí)現(xiàn)跟蹤伺服系統(tǒng)的閉環(huán)實(shí)時(shí)仿真。該半實(shí)物實(shí)時(shí)仿真環(huán)境也可作為光電對抗裝備跟蹤伺服系統(tǒng)性能的通用實(shí)時(shí)仿真分析平臺(tái),進(jìn)行快速控制原型化、控制性能的半實(shí)物仿真測試以及裝備操作手的模擬訓(xùn)練等。