黃戰(zhàn)華,劉 堃,王 敏,郭景輝
(1.天津大學(xué) 精密儀器與光電子工程學(xué)院 光電信息技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,天津 300072;2.天津工業(yè)大學(xué), 天津 300387)
球幕投影系統(tǒng)作為一種常見的仿真系統(tǒng),常被應(yīng)用于軍用武器的瞄準(zhǔn)與跟蹤定位的性能測試中。激光點(diǎn)目標(biāo)球幕投影系統(tǒng)屬于一種半實(shí)物實(shí)時(shí)仿真系統(tǒng),一般包含仿真控制計(jì)算機(jī),模擬外部環(huán)境的物理模擬設(shè)備,以及兩者之間的驅(qū)動接口設(shè)備等[1-3]。運(yùn)動目標(biāo)的準(zhǔn)確模擬,需要保證在仿真實(shí)驗(yàn)期間,目標(biāo)點(diǎn)在每個(gè)控制時(shí)鐘周期結(jié)束的時(shí)刻都精準(zhǔn)地到達(dá)預(yù)期位置,從而保證模擬目標(biāo)的位置精度和時(shí)間精度[4]。
為實(shí)現(xiàn)上述效果,在模擬目標(biāo)點(diǎn)運(yùn)動控制中,在仿真轉(zhuǎn)臺擁有更高伺服精度的同時(shí),也需要保證在確定的時(shí)刻完成運(yùn)動控制指令下傳與反饋數(shù)據(jù)的回傳。因此,需要在充分利用系統(tǒng)硬件資源的基礎(chǔ)上,為控制軟件提供對應(yīng)的實(shí)時(shí)調(diào)度運(yùn)行功能。
計(jì)算機(jī)平臺下常用的Windows操作系統(tǒng)有一定的實(shí)時(shí)處理能力,支持多任務(wù)運(yùn)行,且能夠提供很短的平均響應(yīng)延時(shí),可以滿足軟實(shí)時(shí)應(yīng)用的運(yùn)行環(huán)境要求。但Windows無法滿足確定性的時(shí)間約束,在CPU被已有進(jìn)程占用的狀態(tài)下,無法實(shí)現(xiàn)基于優(yōu)先級搶占的資源分配操作,從而導(dǎo)致不確定的時(shí)間滯后。在現(xiàn)有實(shí)時(shí)控制系統(tǒng)中,多采用嵌入式系統(tǒng),使用DSP、FPGA等處理器,布置各部分實(shí)時(shí)功能單元的方式,此類控制程序在專用硬件下開發(fā),通用性與適應(yīng)性較低[5-9]。
本文通過設(shè)計(jì)基于RTX64 3.0實(shí)時(shí)內(nèi)核擴(kuò)展的Windows系統(tǒng)下的上下位機(jī)控制軟件對二軸仿真轉(zhuǎn)臺進(jìn)行控制。基于配置有多核CPU的工控計(jì)算機(jī)(industrial personal computer,IPC),結(jié)合64位Windows7操作系統(tǒng)的兼容性開發(fā)環(huán)境,在具有完善開發(fā)調(diào)試功能的、擴(kuò)展后的微軟Visual Studio開發(fā)平臺下進(jìn)行控制軟件設(shè)計(jì)。在控制軟件中利用RTX64實(shí)時(shí)內(nèi)核提供的多優(yōu)先級、快速中斷響應(yīng)以及高精度時(shí)鐘和定時(shí)器等功能,實(shí)現(xiàn)結(jié)構(gòu)簡單、控制系統(tǒng)時(shí)間精度高、實(shí)時(shí)性強(qiáng)的激光點(diǎn)目標(biāo)球幕投影系統(tǒng)。
激光點(diǎn)目標(biāo)球幕投影系統(tǒng)主要包含綜合測控遠(yuǎn)程機(jī),目標(biāo)模擬工控計(jì)算機(jī),二軸轉(zhuǎn)臺,激光目標(biāo)生成單元,投影球幕以及各種控制板卡等設(shè)備,其整體結(jié)構(gòu)設(shè)計(jì)如圖1所示。
圖1 激光點(diǎn)目標(biāo)球幕投影系統(tǒng)結(jié)構(gòu)圖Fig.1 Structure diagram of laser spot target dome screen projection system
在每個(gè)實(shí)時(shí)控制時(shí)鐘周期內(nèi),工控計(jì)算機(jī)與遠(yuǎn)程機(jī)進(jìn)行目標(biāo)運(yùn)動控制參數(shù)與反饋狀態(tài)數(shù)據(jù)的交互,并向二軸仿真轉(zhuǎn)臺發(fā)送控制指令來控制其轉(zhuǎn)動,改變目標(biāo)模擬激光光束的反射方向。仿真轉(zhuǎn)臺的外框帶動平面反射鏡左右轉(zhuǎn)動,改變球幕上的投影目標(biāo)點(diǎn)在水平方向上的方位角;內(nèi)框帶動平面反射鏡上下轉(zhuǎn)動,改變投影目標(biāo)點(diǎn)的俯仰角。以上述方式控制投影點(diǎn)目標(biāo)在球幕上的運(yùn)動,在投影球幕上完成連續(xù)的、精確的目標(biāo)點(diǎn)航跡的復(fù)現(xiàn),提供給武器裝備中的瞄準(zhǔn)、跟蹤設(shè)備進(jìn)行性能測試[10]。在仿真實(shí)驗(yàn)中,可選用激光目標(biāo)生成單元提供的不同波長的激光光源,并進(jìn)行光束尺寸、發(fā)光功率的調(diào)節(jié),提高模擬目標(biāo)的多樣性。本系統(tǒng)可用于模擬大視場下的不同運(yùn)動狀態(tài)的運(yùn)動目標(biāo),提升武器裝備測試的真實(shí)性和適用范圍,節(jié)省測試成本。
RTX是Interval Zero公司生產(chǎn)的實(shí)時(shí)擴(kuò)展軟件產(chǎn)品,該系統(tǒng)能夠?qū)τ?jì)算機(jī)硬件抽象層(HAL)進(jìn)行修改與擴(kuò)展,拓展Windows操作系統(tǒng)內(nèi)核,從而可以以雙系統(tǒng)的形式分別對計(jì)算機(jī)硬件資源進(jìn)行調(diào)用。圖2是Interval Zero公司的白皮書中給出的RTX安裝擴(kuò)展后的系統(tǒng)結(jié)構(gòu)示意圖。由圖2可見,硬件抽象層HAL得到RTX實(shí)時(shí)擴(kuò)展,并通過其優(yōu)先級搶占的調(diào)度方式對處理器進(jìn)行調(diào)度,其中RTSS(real-time subsystem)實(shí)時(shí)子系統(tǒng)中的任務(wù)優(yōu)先級優(yōu)于Windows下的全部任務(wù)[11-13],保證實(shí)時(shí)任務(wù)執(zhí)行不受到Windows線程的影響。
圖2 RTX擴(kuò)展后的操作系統(tǒng)結(jié)構(gòu)圖Fig.2 Operating system structure diagram after RTX extension
RTX64實(shí)時(shí)系統(tǒng)安裝過程中,微軟Microsoft Visual Studio開發(fā)平臺會添加對應(yīng)的開發(fā)與調(diào)試工具組件等,為用戶提供便捷的、可按需求選用功能模塊的項(xiàng)目模板,以及相關(guān)的代碼生成、調(diào)試等功能。按照使用要求合理利用其功能,可以降低開發(fā)難度,節(jié)省開發(fā)時(shí)間,縮減設(shè)計(jì)成本。
RTX系統(tǒng)的實(shí)時(shí)性提升主要體現(xiàn)在以下幾個(gè)方面:
1) 任務(wù)切換時(shí)間。RTX線程切換時(shí)間在500 ns到2 μs范圍內(nèi)。
2) 任務(wù)調(diào)度。RTX執(zhí)行它自己的基于多優(yōu)先級的搶占式的實(shí)時(shí)線程調(diào)度,共包含128個(gè)優(yōu)先級。
3) 高精度時(shí)鐘和計(jì)時(shí)器。RTX64能夠提供的定時(shí)器時(shí)鐘分辨率為100 ns,最低定時(shí)器周期為100 μs[14-15]。
為驗(yàn)證RTX64對仿真控制系統(tǒng)時(shí)間精度的提升,分別選取系統(tǒng)中使用的控制時(shí)鐘周期5 ms、10 ms、20 ms,對實(shí)際硬件環(huán)境下RTX64 3.0定時(shí)器性能表現(xiàn)與對應(yīng)的Windows32下的定時(shí)器性能進(jìn)行對比測試,得到的誤差分布如圖3所示,誤差統(tǒng)計(jì)結(jié)果如表1所示。結(jié)合圖3與表1可見,RTX64實(shí)時(shí)系統(tǒng)能夠提供穩(wěn)定且優(yōu)于Windows的時(shí)間精度,對Windows取得顯著的實(shí)時(shí)擴(kuò)展效果,且在重復(fù)測試中,最大誤差小于0.2%,計(jì)時(shí)精度符合系統(tǒng)性能要求,因此選擇使用Windows7+RTX64 3.0實(shí)時(shí)擴(kuò)展環(huán)境。
圖3 定時(shí)器時(shí)鐘誤差分布圖Fig.3 Distribution diagram of timer clock error
誤差類型控制時(shí)鐘周期/ms51020RTX64平均時(shí)鐘誤差/μs4.154.544.25Windows平均時(shí)鐘誤差/μs16.6318.0118.90RTX64最大時(shí)鐘誤差/μs9912Windows最大時(shí)鐘誤差/μs999975
本系統(tǒng)中采用研華公司的IPC610工控計(jì)算機(jī)對搭載反射鏡的二軸仿真轉(zhuǎn)臺進(jìn)行運(yùn)動控制,其控制系統(tǒng)結(jié)構(gòu)如圖4所示。在遠(yuǎn)程控制模式下,本系統(tǒng)采用固定時(shí)鐘周期采樣的方式,首先通過以太網(wǎng)進(jìn)行初始化設(shè)置工作,包括對激光目標(biāo)生成單元的使用性能切換、波長選擇、發(fā)光功率、光斑尺寸等狀態(tài),以及仿真轉(zhuǎn)臺的使用性能設(shè)置、零位校準(zhǔn)等初始化信息。然后由工控計(jì)算機(jī)將解碼后的控制信號提供給激光光源模塊內(nèi)的功能設(shè)備,包括不同波長的各個(gè)激光器的驅(qū)動模塊,可調(diào)節(jié)透鏡組間距以改變光斑尺寸的步進(jìn)電機(jī),以及搭載反射鏡的用于切換光路的電機(jī)等器件,從而完成設(shè)置。開啟仿真模式后,基于RTX64下的搶占式中斷觸發(fā)和響應(yīng)完成控制工作。在每個(gè)同步控制時(shí)鐘周期開始時(shí),綜合測控計(jì)算機(jī)首先發(fā)送仿真目標(biāo)光斑需要到達(dá)指定的位置坐標(biāo),目標(biāo)控制與投射裝置接收到該周期的位置參數(shù)后,反饋目標(biāo)光斑的當(dāng)前位置數(shù)據(jù),并驅(qū)動仿真轉(zhuǎn)臺轉(zhuǎn)動,改變反射激光束的出射方向,實(shí)現(xiàn)激光目標(biāo)在球幕上的運(yùn)動。
為實(shí)現(xiàn)轉(zhuǎn)臺角度精確測量,選用的反饋測量元件為光柵線數(shù)為11 840、直徑為75 mm的圓光柵,分辨率可達(dá)到1.0946″,滿足測量精度需求。
本系統(tǒng)中,系統(tǒng)控制軟件設(shè)計(jì)采用上下位機(jī)形式,其中,上位機(jī)界面程序在Windows內(nèi)核運(yùn)行,下位機(jī)則在RTSS實(shí)時(shí)內(nèi)核運(yùn)行,負(fù)責(zé)與硬件設(shè)備的控制數(shù)據(jù)交互等實(shí)時(shí)任務(wù)。圖5是本系統(tǒng)中的仿真控制軟件流程圖,該圖反映了仿真實(shí)驗(yàn)中控制軟件的工作流程。
對于目標(biāo)模擬工控機(jī)來說,理想狀態(tài)下,在同步時(shí)鐘時(shí)刻Tk,接收到的指令坐標(biāo)為Ck,同時(shí)目標(biāo)點(diǎn)實(shí)際運(yùn)動至前一周期的指定位置Ck-1,反饋當(dāng)前位置信息并向仿真轉(zhuǎn)臺發(fā)送第k周期的最新運(yùn)動指令,使投影目標(biāo)點(diǎn)連續(xù)運(yùn)動。在仿真實(shí)驗(yàn)過程中,綜合測控計(jì)算機(jī)與目標(biāo)模擬工控計(jì)算機(jī)之間在RTX64同步中斷的控制下,通過實(shí)時(shí)CAN通信完成上述數(shù)據(jù)交互。使用監(jiān)控軟件對實(shí)時(shí)CAN數(shù)據(jù)幀傳輸狀態(tài)進(jìn)行監(jiān)測,結(jié)果如圖6所示。測試證明,實(shí)驗(yàn)過程中實(shí)時(shí)CAN通信未出現(xiàn)丟幀,滿足數(shù)據(jù)傳輸和采樣的可靠性要求。因此,RTX64控制軟件工作過程符合硬件實(shí)時(shí)標(biāo)準(zhǔn),滿足系統(tǒng)需要。
圖4 控制系統(tǒng)結(jié)構(gòu)示意圖Fig.4 Schematic diagram of control system structure
圖5 控制軟件工作流程圖Fig.5 Working flow chart of control software
圖6 實(shí)時(shí)CAN數(shù)據(jù)幀計(jì)數(shù)狀態(tài)圖Fig.6 Diagram of Real-time CAN data frame count state
為了驗(yàn)證在本文中控制軟件的控制下,模擬運(yùn)動目標(biāo)點(diǎn)的位置精度提升效果,作為參照,采用Windows測試軟件進(jìn)行對比實(shí)驗(yàn)。對于所生成的相同的示例航跡數(shù)據(jù),分別使用RTX實(shí)時(shí)擴(kuò)展環(huán)境下的控制軟件和Windows非實(shí)時(shí)環(huán)境下的測試軟件進(jìn)行仿真實(shí)驗(yàn),使用系統(tǒng)設(shè)計(jì)方案中的3種同步控制周期20 ms、10 ms和5 ms,在目標(biāo)點(diǎn)運(yùn)動軌跡相同,角速度均為10°/s的條件下進(jìn)行重復(fù)實(shí)驗(yàn),將每個(gè)周期采集到的目標(biāo)點(diǎn)實(shí)時(shí)位置坐標(biāo)與預(yù)期航跡坐標(biāo)數(shù)據(jù)之間的位置誤差進(jìn)行統(tǒng)計(jì)。圖7是分別使用優(yōu)化后的RTX實(shí)時(shí)控制軟件與Windows測試軟件,控制前述二軸仿真轉(zhuǎn)臺進(jìn)行目標(biāo)模擬對比實(shí)驗(yàn)得到的仿真目標(biāo)角度誤差曲線對比圖,按投影目標(biāo)點(diǎn)的方位角與俯仰角分別給出。重復(fù)實(shí)驗(yàn)中,激光目標(biāo)點(diǎn)的方位角和俯仰角在完成仿真實(shí)驗(yàn)過程各采樣周期的誤差均值和最大誤差見表2~表4所示。
圖7 仿真實(shí)驗(yàn)誤差曲線對比圖Fig.7 Comparison diagram of error curves in simulation experiments
表2 控制周期為20 ms時(shí)的位置誤差統(tǒng)計(jì)表 10-3(°)Table 2 Statistics table of position errors in 20 ms control cycle
表3 控制周期為10 ms時(shí)的位置誤差統(tǒng)計(jì)表 10-3(°)Table 3 Statistics table of position errors in 10 ms control cycle
表4 控制周期為5 ms時(shí)的位置誤差統(tǒng)計(jì)表 10-3(°)Table 4 Statistics table of position errors in 5 ms control cycle
由表2~表4可見,在控制時(shí)鐘周期為20 ms、10 ms、5 ms條件下的3組實(shí)驗(yàn)中,RTX64實(shí)時(shí)軟件控制下激光目標(biāo)點(diǎn)的位置誤差均值和最大誤差,均小于相同條件下Windows測試軟件控制下的對比實(shí)驗(yàn)所得到的誤差。結(jié)果表明,本文設(shè)計(jì)的實(shí)時(shí)控制軟件結(jié)構(gòu),通過對仿真轉(zhuǎn)臺控制周期時(shí)間精度和任務(wù)響應(yīng)速度的提升,可以有效減小模擬目標(biāo)點(diǎn)運(yùn)動仿真過程中的位置誤差。仿真實(shí)驗(yàn)中的方位角、俯仰角誤差最大值始終小于20″,通過避免控制軟件帶來的不確定性的響應(yīng)延時(shí),有效地避免了可能出現(xiàn)的較大位置誤差,提高了運(yùn)動目標(biāo)模擬的整體效果。通過分析RTX64實(shí)時(shí)控制軟件控制下的運(yùn)動目標(biāo)位置精度,在控制周期為20 ms的重復(fù)實(shí)驗(yàn)中,模擬目標(biāo)點(diǎn)的誤差最大值分別為0.005 34°與0.004 04°,滿足激光點(diǎn)目標(biāo)球幕投影系統(tǒng)的精度要求。
本文以激光點(diǎn)目標(biāo)球幕投影系統(tǒng)作為優(yōu)化對象,設(shè)計(jì)RTX64 3.0實(shí)時(shí)擴(kuò)展子系統(tǒng)環(huán)境下的控制軟件,提升系統(tǒng)計(jì)時(shí)精度和同步中斷響應(yīng)速度,在不同的控制時(shí)鐘頻率下,通過CAN總線網(wǎng)絡(luò)進(jìn)行控制信息的交互。在重復(fù)實(shí)驗(yàn)中,RTX實(shí)時(shí)控制軟件下的目標(biāo)點(diǎn)位置誤差保持在激光點(diǎn)目標(biāo)球幕投影系統(tǒng)允許的誤差范圍內(nèi),因此,該控制軟件能夠完成系統(tǒng)的實(shí)時(shí)控制任務(wù)。