瞿祖鑫,田桂平,陳 潔
(昆明物理研究所,云南 昆明 650023)
紅外搜索跟蹤系統(tǒng)IRST(infrared search and track system)通常采用全景成像方式,該方式是指利用全景技術(shù)獲得水平和垂直方向均大于180°的半球視場(chǎng)或者水平方向上全360°,在垂直方向上一定角度的視場(chǎng)[1]。全景成像系統(tǒng)分為兩類:使用全景鏡頭的和使用常規(guī)光學(xué)鏡頭的。使用常規(guī)光學(xué)鏡頭的全景成像系統(tǒng)主要通過旋轉(zhuǎn)拼接和折反射來實(shí)現(xiàn)全景成像。IRST通常采用旋轉(zhuǎn)拼接式,采用一個(gè)或多個(gè)鏡頭,繞著與光軸垂直的固定軸旋轉(zhuǎn)[2],將所得圖像進(jìn)行拼接,從而獲得全景圖像。
當(dāng)前主流的IRST 主要分為基于線列器件和凝視器件兩類,凝視型的應(yīng)用更為廣泛。但凝視型器件在進(jìn)行掃描時(shí)會(huì)造成圖像拖尾,需對(duì)系統(tǒng)進(jìn)行凝視補(bǔ)償[3],補(bǔ)償方式主要分為擺鏡補(bǔ)償和步進(jìn)凝視兩類,擺鏡補(bǔ)償成本高,控制復(fù)雜;步進(jìn)凝視成本低,結(jié)構(gòu)相對(duì)簡(jiǎn)單,可以實(shí)現(xiàn)小型便攜,一般適用于車載(即在坦克或戰(zhàn)車上對(duì)四周一定距離內(nèi)進(jìn)行全景成像)等應(yīng)用場(chǎng)景,故本系統(tǒng)采用步進(jìn)凝視型。為實(shí)現(xiàn)步進(jìn)凝視,需要在360°范圍內(nèi)不停地快速啟動(dòng)停止,在每次停止進(jìn)行凝視成像,凝視成像需要足夠長的積分時(shí)間,步進(jìn)時(shí)間需要足夠快,這對(duì)控制的精度和響應(yīng)速度提出了要求,控制精度直接影響成像質(zhì)量。
以往的IRST 往往使用了大量非國產(chǎn)器件,從焦平面陣列到芯片和電路板,往往都從國外購買。而從美國長期的技術(shù)封鎖到中美貿(mào)易戰(zhàn)導(dǎo)致的形勢(shì)變化,將技術(shù)限制從軍用領(lǐng)域推進(jìn)到了民用領(lǐng)域,這導(dǎo)致從軟件到硬件都對(duì)國產(chǎn)化提出了更高需求。而國產(chǎn)化進(jìn)程中也遇到了眾多問題,硬件方面加工工藝仍有較大差距,軟件方面缺乏足夠的生態(tài),對(duì)現(xiàn)有的國產(chǎn)硬件的適配也不足。為實(shí)現(xiàn)自主可控,本文構(gòu)建了一種使用國產(chǎn)的MM32F031為控制芯片的轉(zhuǎn)臺(tái)電機(jī)控制系統(tǒng)。MM32F031是上海靈動(dòng)微電子公司推出的一款高性能、多功能、高性價(jià)比的32位ARM 芯片,針對(duì)本設(shè)計(jì)的需求,本文詳細(xì)介紹了轉(zhuǎn)臺(tái)控制系統(tǒng)的軟件設(shè)計(jì),并針對(duì)采用非國產(chǎn)芯片如STM32的系統(tǒng)進(jìn)行對(duì)比,以說明本軟件國產(chǎn)化設(shè)計(jì)的優(yōu)勢(shì)所在。
本系統(tǒng)的研究主體是架在三腳架上的傳感頭主機(jī)部分,如圖1所示。主機(jī)前方傳感頭集成了長波640×512 非制冷熱像儀,通過高速啟停的步進(jìn)掃描小型精密轉(zhuǎn)塔機(jī)構(gòu)做全景掃描,形成全景圖像。由于在工程實(shí)現(xiàn)上想要快速停止再快速啟動(dòng)不易實(shí)現(xiàn),因此選擇控制平臺(tái)進(jìn)行不等速運(yùn)動(dòng)。掃描運(yùn)動(dòng)平臺(tái)在系統(tǒng)進(jìn)行凝視采樣時(shí)進(jìn)行低速運(yùn)動(dòng)來采集圖像,待圖像采集完成后平臺(tái)加速運(yùn)動(dòng)到下一個(gè)采樣位置前,然后開始減速,減速之后采集下一幅圖像,如此周期步進(jìn),就得到了各個(gè)視場(chǎng)的圖像,再進(jìn)行拼接,就可得到完整的全景圖像。傳感頭的運(yùn)動(dòng)速度可近似為正弦曲線。圖2即為步進(jìn)凝視控制方法的速度曲線圖。
圖1 全景成像系統(tǒng)示意圖Fig.1 Schematic diagram of panoramic imaging system
圖2 速度曲線圖Fig.2 Velocity diagram
根據(jù)對(duì)系統(tǒng)的分析以及系統(tǒng)工作方式得知,傳感頭主機(jī)將要進(jìn)行±20°的俯仰旋轉(zhuǎn)和連續(xù)360°的方位旋轉(zhuǎn)。傳感頭前方的640×512 非制冷長波熱像儀,已知其水平視場(chǎng)為20°,探測(cè)頻率為25 Hz。為了補(bǔ)償凝視器件在快速掃描時(shí)造成的圖像拖尾現(xiàn)象,本系統(tǒng)采用的是步進(jìn)運(yùn)動(dòng)。為了使其采集到的每幅圖像能夠達(dá)到拼接的要求,傳感頭旋轉(zhuǎn)需要達(dá)到的要求是在360°范圍內(nèi),有20個(gè)步進(jìn)周期,并且需要在12 s 內(nèi)完成周掃運(yùn)動(dòng),其轉(zhuǎn)動(dòng)最大角速度為60°/s,最大角加速度為30°/s2。將本運(yùn)動(dòng)等效成正弦曲線,則等效速度曲線為:
對(duì)其取積分,得到等效位置曲線為:
該系統(tǒng)一個(gè)步進(jìn)周期為600 ms,轉(zhuǎn)動(dòng)范圍為20°,凝視器件需求的積分時(shí)間約為10 ms。取t1=0.595 s,t2=0.605 s,求得積分時(shí)間內(nèi)傳感頭轉(zhuǎn)動(dòng)角度約為0.0001371°,而水平方向單個(gè)像素的瞬時(shí)視場(chǎng)為20°/640=0.031°,積分時(shí)間內(nèi)圖像在探測(cè)器焦平面上移動(dòng)不超過一個(gè)像素,故可視為相對(duì)靜止?fàn)顟B(tài),此時(shí)可以進(jìn)行積分圖像采集。雖然實(shí)際上由于控制精度有限可能無法達(dá)到如此低的角速度,但此理論速度說明了該方案的可行性。
在轉(zhuǎn)臺(tái)控制系統(tǒng)中,控制算法輸出的控制量經(jīng)過電機(jī)驅(qū)動(dòng)放大電路以PWM 信號(hào)的形式輸入電機(jī),驅(qū)動(dòng)轉(zhuǎn)臺(tái)進(jìn)行運(yùn)動(dòng)[4],從而實(shí)現(xiàn)控制。因此,我們的研究對(duì)象是驅(qū)動(dòng)電路、電機(jī)本身和轉(zhuǎn)臺(tái)的負(fù)載所組成的一個(gè)系統(tǒng)[5]。本設(shè)計(jì)中的直流力矩電機(jī),其簡(jiǎn)單的驅(qū)動(dòng)負(fù)載模型如圖3所示。其中:Ua為電樞電壓,V;ε為電樞反電勢(shì),V;Ia為電樞電流,A;La為電樞電感,H;Ra為電樞電阻,Ω;M表示電磁轉(zhuǎn)矩,N·m。經(jīng)推導(dǎo),其傳函為:
圖3 電機(jī)模型示意圖Fig.3 Schematic diagram of motor model
式中:Φ為表示每極磁通,Wb;Ta=La/R為示電樞回路電磁時(shí)間常數(shù),s;Tm為機(jī)電時(shí)間常數(shù),s;Ce為電勢(shì)常數(shù);J為轉(zhuǎn)速慣量,N·m·s·min·r-1;
根據(jù)本系統(tǒng)所采用直流力矩電機(jī)的參數(shù),可計(jì)算得出電樞回路電磁時(shí)間常數(shù)Ta≈0.00092[6],機(jī)電時(shí)間常數(shù)Tm≈0.1。
采用Simulink 對(duì)其進(jìn)行經(jīng)典PID 控制仿真,框圖如圖4所示,將被控對(duì)象的輸出與目標(biāo)值的差值通過比例積分微分環(huán)節(jié),構(gòu)成控制量,對(duì)被控對(duì)象進(jìn)行控制。
經(jīng)調(diào)整,設(shè)Kp=1.355,Ki=26.54,Kd=-0.004655,階躍源從0 s 開始,幅值為1,仿真結(jié)果如圖5所示。
從圖中可以看出,響應(yīng)時(shí)間為0.06 s,收斂時(shí)間在0.18 s。顯示經(jīng)典PID 響應(yīng)速度快、穩(wěn)定性好,預(yù)計(jì)可滿足本系統(tǒng)要求。
控制系統(tǒng)軟件的主要功能是實(shí)現(xiàn)轉(zhuǎn)臺(tái)的步進(jìn)運(yùn)動(dòng),在轉(zhuǎn)臺(tái)速度不符合要求時(shí),根據(jù)控制指令能夠自動(dòng)精準(zhǔn)、快速地回到預(yù)訂的速度進(jìn)行運(yùn)動(dòng),因此,本軟件應(yīng)該具有的功能主要包括以下3 方面:
通信功能:通信功能由2個(gè)部分組成。第一個(gè)部分是MM32 與上位機(jī)之間的通信,主要功能是接受上位機(jī)指令與在上位機(jī)界面對(duì)控制狀態(tài)進(jìn)行直觀顯示;第二個(gè)是MM32 與視頻源之間的通信,控制視頻源工作。
初始化功能:軟件在運(yùn)行前需要對(duì)各個(gè)變量與函數(shù)進(jìn)行初始化,在斷電重啟后也需要進(jìn)行初始化。
速度控制功能:運(yùn)動(dòng)控制功能是控制轉(zhuǎn)臺(tái)以近似正弦的速度曲線進(jìn)行步進(jìn)運(yùn)動(dòng),并在速度不符預(yù)期時(shí)調(diào)節(jié)至需求速度,要求600 ms 一個(gè)周期,每個(gè)周期可用于凝視成像的時(shí)間大于10 ms。
為滿足控制系統(tǒng)對(duì)步進(jìn)運(yùn)行實(shí)現(xiàn)自動(dòng)控制的要求,明確控制各方面運(yùn)行控制邏輯關(guān)系,提高系統(tǒng)平臺(tái)運(yùn)行效率[6],對(duì)控制軟件所依托的轉(zhuǎn)臺(tái)伺服系統(tǒng)進(jìn)行設(shè)計(jì),其結(jié)構(gòu)如圖6所示。
為方便調(diào)試,將軟件進(jìn)行模塊化設(shè)計(jì),包括初始化模塊、數(shù)據(jù)采集模塊、運(yùn)動(dòng)控制模塊以及通信模塊[7]。各模塊所需實(shí)現(xiàn)功能均由相應(yīng)的硬件設(shè)備來與軟件共同實(shí)現(xiàn),模塊間的數(shù)據(jù)、指令交互通過通信協(xié)議來傳輸。
圖4 經(jīng)典PID 框圖Fig.4 Classic PID block diagram
圖5 PID 仿真結(jié)果Fig.5 PID simulation results
接口設(shè)計(jì)及模塊設(shè)計(jì)均如圖6所示,各模塊執(zhí)行優(yōu)先級(jí)由中斷來實(shí)現(xiàn)。軟件通過硬件中斷來執(zhí)行多任務(wù)操作,每個(gè)硬件設(shè)備都有自己的中斷請(qǐng)求(IRQ),CPU可以根據(jù)IRQ 將相應(yīng)的請(qǐng)求分發(fā)到對(duì)應(yīng)的硬件驅(qū)動(dòng)上。處理中斷的驅(qū)動(dòng)是需要運(yùn)行在CPU 上的,因此,當(dāng)中斷產(chǎn)生時(shí),CPU 會(huì)中斷當(dāng)前正在運(yùn)行的任務(wù),來處理中斷。軟件中斷不會(huì)直接中斷CPU,只有當(dāng)前正在運(yùn)行的任務(wù)才會(huì)產(chǎn)生軟中斷,這種中斷是一種需要內(nèi)核為正在運(yùn)行的進(jìn)程去做一些事情的請(qǐng)求。
本系統(tǒng)若采用非國產(chǎn)硬件進(jìn)行設(shè)計(jì),常用的有DSP、FPGA 與ARM,此處選擇STM32 來舉例說明設(shè)計(jì)時(shí)采用非國產(chǎn)ARM 與采用國產(chǎn)ARM的區(qū)別。首先從硬件使用條件對(duì)比:STM32 穩(wěn)定,價(jià)格貴,服務(wù)周期長,安全性較差;MM32為國內(nèi)廠商生產(chǎn),運(yùn)行速度稍強(qiáng)但偶爾不穩(wěn)定,價(jià)格便宜,服務(wù)及時(shí),安全性較好。其次從硬件本身對(duì)比:引腳定義相同、IO相同、內(nèi)核一樣;時(shí)鐘不同、寄存器不同、MM32 庫函數(shù)更為豐富。
因此,本軟件采用MM32 作為主控芯片進(jìn)行設(shè)計(jì),其優(yōu)勢(shì)主要在于MM32 有著比STM32 更為豐富的庫函數(shù)。實(shí)際設(shè)計(jì)中將更多功能使用庫函數(shù)來實(shí)現(xiàn),而不是直接對(duì)寄存器進(jìn)行操作,在軟件設(shè)計(jì)上提供了很多便利。本設(shè)計(jì)中采用了庫函數(shù)的功能包括通道選擇初始化、系統(tǒng)延時(shí)、外部中斷初始化、寄存器串口初始化、定時(shí)器初始化等許多功能,精簡(jiǎn)了約300行代碼,減小了芯片F(xiàn)LASH 約5%的占用。此外,MM32 價(jià)格比STM32 便宜,也能降低成本。
圖6 轉(zhuǎn)臺(tái)伺服系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖Fig.6 Turntable Servo system structure design diagram
搭建測(cè)試平臺(tái)并在平臺(tái)上進(jìn)行測(cè)試,將結(jié)合系統(tǒng)需求對(duì)運(yùn)動(dòng)狀態(tài)進(jìn)行測(cè)試。為了對(duì)轉(zhuǎn)臺(tái)伺服系統(tǒng)工作中的實(shí)際設(shè)備運(yùn)行情況通過上位機(jī)進(jìn)行監(jiān)測(cè)和控制[8]。本系統(tǒng)在設(shè)計(jì)中針對(duì)上位機(jī)程序采用LabVIEW 平臺(tái)進(jìn)行編寫,實(shí)現(xiàn)對(duì)主控軟件功能的控制[9],并可以實(shí)時(shí)直觀地看到程序運(yùn)行狀況[10]。前面板如圖7所示,該界面圖可以操作轉(zhuǎn)臺(tái)做相應(yīng)的運(yùn)動(dòng),在系統(tǒng)運(yùn)行過程中,界面上側(cè)的方位數(shù)據(jù)界面用來顯示傳感器的數(shù)據(jù),下側(cè)的操控按鈕部分用來控制轉(zhuǎn)臺(tái)的運(yùn)動(dòng),字符串操作用來調(diào)試串口。
將系統(tǒng)上電后,在上位機(jī)界面啟動(dòng)轉(zhuǎn)臺(tái),此時(shí)上位機(jī)面板開始有數(shù)據(jù)輸出,如圖8所示,這表明前面板發(fā)送的指令被控制器接收?qǐng)?zhí)行,反饋回上位機(jī)電機(jī)的執(zhí)行狀態(tài),證明反饋功能是正常的,且上位機(jī)和控制器進(jìn)行了有效的串口通信,說明系統(tǒng)主要功能可以正常實(shí)現(xiàn)[11]。
方位數(shù)據(jù)采集時(shí),每毫秒采集一次數(shù)據(jù),進(jìn)行一個(gè)完整的圓周運(yùn)動(dòng)需要12 s,共有12000個(gè)數(shù)據(jù)點(diǎn),如圖9所示,12 s 內(nèi)進(jìn)行了20次步進(jìn)運(yùn)動(dòng),可進(jìn)行20次凝視成像,滿足系統(tǒng)需求。將采集到的方位數(shù)據(jù)導(dǎo)入Matlab 生成圖像,如圖9所示,圖像上毛刺很多,說明采樣時(shí)受到很大干擾,系統(tǒng)會(huì)受到擾動(dòng)影響。任意選取1個(gè)步進(jìn)周期,如圖10所示,接近靜止時(shí)間達(dá)到10 ms,滿足了凝視成像的要求,符合設(shè)計(jì)需求。
圖7 上位機(jī)程序面板設(shè)計(jì)圖Fig.7 Upper computer program interface design diagram
圖8 上位機(jī)軟件輸出圖Fig.8 Upper computer software output diagram
圖9 系統(tǒng)速度曲線圖Fig.9 System velocity diagram
圖10 1.5~2.1s 內(nèi)位置曲線圖Fig.10 Position curve in 1.5-2.1s
文中主要對(duì)一種步進(jìn)凝視IRST 轉(zhuǎn)臺(tái)電機(jī)控制系統(tǒng)的重要組成部分主控軟件的設(shè)計(jì)進(jìn)行概述,經(jīng)實(shí)驗(yàn)測(cè)試表明該軟件的設(shè)計(jì)及其實(shí)現(xiàn)方式切實(shí)可行,可以滿足本系統(tǒng)的需求,通過和采用非國產(chǎn)化器件對(duì)比可說明本設(shè)計(jì)使軟件更為精簡(jiǎn)。但是信號(hào)圖上也有一些毛刺,說明系統(tǒng)會(huì)受到擾動(dòng)影響,此問題將留待后續(xù)研究解決。