王紀(jì)超,陳 科
(合肥工業(yè)大學(xué) 機(jī)械與汽車(chē)工程學(xué)院,安徽 合肥 230009)
雷達(dá)裝備的研制對(duì)國(guó)家戰(zhàn)略有著重要意義。在研制過(guò)程中衛(wèi)星運(yùn)動(dòng)模擬試驗(yàn)系統(tǒng)以其良好的可控性、安全性以及不受場(chǎng)地限制等優(yōu)點(diǎn)在雷達(dá)裝備研制中扮演著重要的角色[1]。運(yùn)動(dòng)控制軟件系統(tǒng)作為衛(wèi)星運(yùn)動(dòng)模擬平臺(tái)系統(tǒng)的關(guān)鍵組成,其性能的優(yōu)劣直接關(guān)系到仿真試驗(yàn)的可靠性和置信度,因此,研制性能優(yōu)良、運(yùn)行穩(wěn)定、交互性良好的運(yùn)動(dòng)控制系統(tǒng)是提高地面仿真試驗(yàn)?zāi)芰Γ嵘走_(dá)研制水平的關(guān)鍵[2]。
雷達(dá)系統(tǒng)由信號(hào)發(fā)生器、接收天線、信號(hào)處理器、信號(hào)傳輸系統(tǒng)和控制系統(tǒng)組成。其控制系統(tǒng)操作雷達(dá)的轉(zhuǎn)向,工作模式,鎖定模式等等[3]。控制系統(tǒng)由操作人員通過(guò)控制電機(jī)運(yùn)動(dòng)操控雷達(dá)衛(wèi)星天線的運(yùn)動(dòng)以調(diào)整雷達(dá)的方位。雷達(dá)衛(wèi)星天線運(yùn)動(dòng)系統(tǒng)是很典型的機(jī)械運(yùn)動(dòng)系統(tǒng),如圖1.1所示,其運(yùn)動(dòng)主要分為平移運(yùn)動(dòng),俯仰運(yùn)動(dòng)和旋轉(zhuǎn)運(yùn)動(dòng)。圖1.2 給出了典型的陣面雷達(dá)的結(jié)構(gòu)。

圖1.1 雷達(dá)衛(wèi)星天線的運(yùn)動(dòng)示意圖Fig 1.1 The radar satellite antenna motion schematic

圖1.2 典型陣面雷達(dá)機(jī)械結(jié)構(gòu)示意圖Fig 1.2 The typical array radar mechanical structure diagram
圖1.2中的一維直線運(yùn)動(dòng)平臺(tái)是整個(gè)系統(tǒng)測(cè)量的基座,由底座、滑臺(tái)、限位裝置、兩組直線導(dǎo)軌副、一組滾珠絲杠副及傳動(dòng)鏈等組成;其二維轉(zhuǎn)臺(tái)是一個(gè)平移轉(zhuǎn)臺(tái),衛(wèi)星天線平臺(tái)在一維直線運(yùn)動(dòng)平臺(tái)上進(jìn)行直線運(yùn)動(dòng);其俯仰轉(zhuǎn)臺(tái)是執(zhí)行天線俯仰和方位角度調(diào)節(jié)的重要執(zhí)行機(jī)構(gòu),由俯仰電推桿、轉(zhuǎn)盤(pán)、底座、回轉(zhuǎn)支承、傳動(dòng)鏈、角度傳感器等組成。
該雷達(dá)機(jī)械機(jī)構(gòu)將實(shí)現(xiàn)直線運(yùn)動(dòng)、旋轉(zhuǎn)運(yùn)動(dòng)和俯仰運(yùn)動(dòng),其控制系統(tǒng)應(yīng)實(shí)現(xiàn)以下功能:
(1)能夠控制平臺(tái)的一維直線運(yùn)動(dòng)和轉(zhuǎn)臺(tái)的旋轉(zhuǎn)運(yùn)動(dòng)以及俯仰運(yùn)動(dòng)。
(2)能夠完成給定點(diǎn)坐標(biāo)從轉(zhuǎn)臺(tái)運(yùn)動(dòng)坐標(biāo)系到陣面載體坐標(biāo)系上的變換。
(3)人機(jī)交互界面上具有命令操作顯示、執(zhí)行命令成功提示、執(zhí)行過(guò)程及狀態(tài)顯示。
(4)控制系統(tǒng)具有容錯(cuò)處理的功能,以及報(bào)警提示功能。
(5)可完成對(duì)輸入?yún)?shù)的存儲(chǔ),并生成記錄日志。
根據(jù)上述控制系統(tǒng)實(shí)現(xiàn)的功能,將該運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)為上下位機(jī)結(jié)構(gòu)的計(jì)算機(jī)控制系統(tǒng)。
一臺(tái)工控機(jī)作為上位機(jī),實(shí)現(xiàn)對(duì)伺服系統(tǒng)的監(jiān)控、檢測(cè)和管理。上位機(jī)提供人機(jī)交互界面,實(shí)現(xiàn)對(duì)整個(gè)轉(zhuǎn)臺(tái)系統(tǒng)的在線檢測(cè)、安全保護(hù)、性能檢測(cè)和系統(tǒng)的運(yùn)動(dòng)管理以及數(shù)據(jù)處理[4]。下位機(jī)通過(guò)運(yùn)動(dòng)控制卡控制電機(jī)驅(qū)動(dòng)器控制電機(jī)實(shí)現(xiàn)機(jī)械運(yùn)動(dòng)。系統(tǒng)的工作狀態(tài)通過(guò)上位機(jī)的操作面板設(shè)置,工作狀態(tài)信息在上位機(jī)顯示[5]。
上位機(jī)在接受輸入設(shè)置命令后傳于下位機(jī),上下位機(jī)通過(guò)通信接口進(jìn)行數(shù)據(jù)交換。下位機(jī)快速采集測(cè)速機(jī)及數(shù)顯表反饋信號(hào),依據(jù)控制算法,實(shí)時(shí)解算出控制量,由D/A輸出,經(jīng)前置放大器和功放后控制電機(jī),實(shí)現(xiàn)轉(zhuǎn)臺(tái)的實(shí)時(shí)控制[7]。
本軟件主要使用非自動(dòng)形式的系統(tǒng)開(kāi)發(fā)方法。使用的軟件主要有C#和matlab。雷達(dá)機(jī)械機(jī)構(gòu)的坐標(biāo)變換相對(duì)較繁瑣,推導(dǎo)出的坐標(biāo)變換公式用矩陣形式表示,在計(jì)算過(guò)程中相互變換較多,較復(fù)雜,本軟件將matlab程序作為一個(gè)子模塊調(diào)用,通過(guò)調(diào)用matlab軟件可以輕松的解決坐標(biāo)變換。主程序都是在C#界面下編寫(xiě)的,將每個(gè)模塊編寫(xiě)成不同的類(lèi),通過(guò)主程序調(diào)用這些類(lèi),將各個(gè)不同的模塊鏈接到一起,從部分到整體,條理清楚,方便設(shè)計(jì)[6]。
該控制系統(tǒng)硬件原理如圖3.1所示。其中控制器為西門(mén)子1214C的PLC,是運(yùn)動(dòng)控制系統(tǒng)的核心,主要完成信號(hào)的采集、處理、伺服定位等功能。伺服驅(qū)動(dòng)器作為驅(qū)動(dòng)設(shè)備,接收來(lái)自PLC的指令脈沖驅(qū)動(dòng)電機(jī)完成高精度的定位,接收編碼器脈沖并將脈沖反饋給PLC實(shí)現(xiàn)整個(gè)系統(tǒng)的半閉環(huán)控制[8]。

圖3.1 系統(tǒng)硬件工作原理圖Fig 3.1 The system hardware operating principle
根據(jù)系統(tǒng)需要對(duì)軟件設(shè)計(jì)過(guò)程進(jìn)行規(guī)劃,設(shè)計(jì)流程如圖4.1所示。
首先對(duì)軟件所要實(shí)現(xiàn)的功能分析,將軟件劃分為以下幾個(gè)模塊: 一是主程序。主程序的功能是時(shí)實(shí)檢測(cè)CPU、各種擴(kuò)展模塊及執(zhí)行原件的工作狀態(tài),等待上位機(jī)的指令,傳輸以及接受數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)控制功能等;二是數(shù)據(jù)接收模塊。接收上位機(jī)的控制命令,對(duì)收到的命令進(jìn)行判斷分析,提取有效的控制關(guān)鍵字,對(duì)收到的角度命令進(jìn)行轉(zhuǎn)換;三是運(yùn)動(dòng)控制模塊。將上位機(jī)發(fā)來(lái)的命令分析后,如果是要求定位,程序使用該子程序,定位模式子程序功能是將上位機(jī)送來(lái)的平臺(tái)、方位和俯仰運(yùn)動(dòng)角度、速度進(jìn)行分析,按照一定的運(yùn)動(dòng)規(guī)則進(jìn)行天線運(yùn)動(dòng)控制,使天線按照預(yù)先設(shè)定的運(yùn)動(dòng)軌跡進(jìn)行運(yùn)動(dòng);四是監(jiān)控模塊。監(jiān)控模塊主要功能是提供友好的人機(jī)界面,可以實(shí)現(xiàn)控制命令的傳送、定位角度的輸入、角度回饋顯示和系統(tǒng)故障顯示;五是日志模塊。日志模塊用實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)、雷達(dá)天線運(yùn)動(dòng)軌跡實(shí)時(shí)記錄,儲(chǔ)存管理[9]。整個(gè)系統(tǒng)功結(jié)構(gòu)圖如圖4.2。

圖4.1 系統(tǒng)軟件設(shè)計(jì)流程圖Fig4.1 The system software design flow

圖4.2 軟件結(jié)構(gòu)示意圖Fig4.2 The software structure diagram
界面可以根據(jù)要求分為三個(gè)部分,三個(gè)部分是相互聯(lián)系,在界面上沒(méi)有明顯的分界點(diǎn)。主要功能分為三個(gè),參數(shù)控制,運(yùn)動(dòng)控制,日志管理。
在結(jié)構(gòu)參數(shù)下設(shè)置下拉菜單,下拉菜單中包含的參數(shù)設(shè)置有結(jié)構(gòu)參數(shù)設(shè)置和串口參數(shù)設(shè)置。運(yùn)動(dòng)控制同樣有下拉菜單,下拉菜單包含的是運(yùn)動(dòng)控制具體的內(nèi)容,包含位置控制、軌跡控制、到位控制、以及平臺(tái)控制等內(nèi)容。日志管理模塊是用來(lái)儲(chǔ)存和查詢平臺(tái)的運(yùn)動(dòng)數(shù)據(jù)。根據(jù)要顯示功能,可以把界面劃分為四個(gè)區(qū),分別是菜單欄,控制區(qū),操作界面以及實(shí)時(shí)顯示區(qū)。控制區(qū)是根據(jù)控制區(qū)的不同而不同的,是軟件的核心部分。界面具體設(shè)置如圖4.3所示[10]。

圖4.3 軟件主界面Fig4.3 The software main interface

圖4.4 結(jié)構(gòu)參數(shù)設(shè)置界面Fig4.4 The structural parameter setting interface
結(jié)構(gòu)參數(shù)設(shè)置的界面如圖4.4所示,界面上的模式一和模式二是常見(jiàn)的結(jié)構(gòu)的參數(shù),把常見(jiàn)的結(jié)構(gòu)設(shè)置成兩個(gè)模式形式,方便用戶選擇。如果機(jī)械結(jié)果的參數(shù)不是常用的,或者不是這兩個(gè)模式,軟件設(shè)置了自定義選項(xiàng),用戶可以根據(jù)自己的需要自定義結(jié)構(gòu)參數(shù)。
串口設(shè)置界面要求用戶設(shè)置串口參數(shù),由于運(yùn)動(dòng)控制軟件并不是直接控制機(jī)械結(jié)構(gòu)的運(yùn)動(dòng)的,而是通過(guò)控制PLC等控制器來(lái)實(shí)現(xiàn)控制運(yùn)動(dòng)的,為了友好的與控制器連接,設(shè)置串口連接是必要的。串口界面提供了計(jì)算機(jī)和控制器連接的一些常用參數(shù)設(shè)置,實(shí)現(xiàn)正確的串口連接是實(shí)現(xiàn)功能的不可或缺的條件。

圖4.5 串口設(shè)置界面Fig4.5 The serial port setting interface
運(yùn)動(dòng)控制界面是將位置控制、軌跡控制放在一個(gè)控制窗口里;到位控制以及平臺(tái)控制顯示在另一個(gè)控制窗口上,界面設(shè)計(jì)如圖4.6 所示。不同的功能占用各自的一塊區(qū)域[11],當(dāng)選中某個(gè)功能時(shí)相對(duì)的區(qū)域會(huì)可操作,沒(méi)選中的功能區(qū)不可操作,如圖4.6所標(biāo)注的。

圖4.6 運(yùn)動(dòng)控制界面Fig4.6 The motion control interface
日志管理界面是對(duì)日志的記錄、查詢做了相關(guān)的要求,如用戶自定義開(kāi)始來(lái)記錄,自定義停止記錄,自定義保存路徑等。界面如圖 4.7所示。
為了提供實(shí)時(shí)顯示的功能,設(shè)計(jì)界面時(shí)將實(shí)時(shí)顯示的功能界面始終顯示在主界面的下方,方便用戶實(shí)時(shí)的了解重要的數(shù)據(jù),了解各個(gè)部分的運(yùn)行情況,同時(shí)還可以了解運(yùn)動(dòng)情況及軟件的運(yùn)行情況[12]。

圖4.7日志管理界面Fig4.7 The log management interface
軟件的各個(gè)界面部分是相互關(guān)聯(lián)的,并不是獨(dú)立的。如在運(yùn)動(dòng)控制中控制衛(wèi)星平臺(tái)的各個(gè)數(shù)據(jù)將會(huì)被傳送到實(shí)時(shí)顯示區(qū)顯示,提供給用戶,方便了解衛(wèi)星的當(dāng)前姿態(tài)和狀態(tài),同時(shí)又可將數(shù)據(jù)傳送到日志管理區(qū),可以保存一定的格式。
4.2.1 運(yùn)動(dòng)控制模塊
(1)位置控制程序模塊的編制
利用C#調(diào)用反求運(yùn)動(dòng)量的MATLAB程序,該模塊可以實(shí)現(xiàn)如下功能:反求出平臺(tái)運(yùn)動(dòng)到目標(biāo)點(diǎn)所需的運(yùn)動(dòng)量;通過(guò)串口通信,按照特定的通訊協(xié)議,給下位機(jī)發(fā)送運(yùn)動(dòng)指令。
(2)到位控制程序模塊的編制
利用C#調(diào)用坐標(biāo)轉(zhuǎn)換的MATLAB程序,該模塊可以實(shí)現(xiàn)如下功能:讓用戶輸入所需的運(yùn)動(dòng)參數(shù)(z0,θ,φ);通過(guò)串口通信,按照特定的通訊協(xié)議,給下位機(jī)發(fā)送運(yùn)動(dòng)指令;求解出不動(dòng)點(diǎn)新的陣面坐標(biāo)。
(3)軌跡控制程序模塊的編制
擴(kuò)展位置控制模塊,在平臺(tái)當(dāng)前姿態(tài)下,讓用戶給定一系列特定的點(diǎn)的陣面坐標(biāo),反求出平臺(tái)所需的運(yùn)動(dòng)量并發(fā)送給下位機(jī)。
(4)平臺(tái)控制程序模塊的編制
擴(kuò)展到位控制模塊,在平臺(tái)當(dāng)前姿態(tài)下,讓用戶給定一系列特定運(yùn)動(dòng)參數(shù),把這些運(yùn)動(dòng)量發(fā)送給下位機(jī)。
(5)平臺(tái)實(shí)時(shí)姿態(tài)顯示及系統(tǒng)監(jiān)測(cè)
在C#程序界面里設(shè)定定時(shí)器,通過(guò)串口通信,不斷接受下位機(jī)反饋回來(lái)的字節(jié)數(shù)據(jù),按照通訊協(xié)議,從字節(jié)數(shù)據(jù)中找出平臺(tái)的姿態(tài)數(shù)據(jù)和系統(tǒng)狀態(tài)數(shù)據(jù),把這些數(shù)據(jù)經(jīng)過(guò)轉(zhuǎn)換,顯示到控制主界面。
4.2.2 串口通信模塊
界面中的串口通信模塊是通過(guò)調(diào)用C#中的SerialPort類(lèi)來(lái)實(shí)現(xiàn)的,其中主要使用了發(fā)送字節(jié)的Write()方法、讀取字節(jié)的Read()方法以及接受數(shù)據(jù)的DataReceived()事件,通信步驟如下:
(1)串口初始化:通過(guò)更改Serial Port類(lèi)的屬性,設(shè)置串口的端口號(hào)、波特率、停止位、校驗(yàn)位、數(shù)據(jù)位。
(2)數(shù)據(jù)的打包和發(fā)送:把將要發(fā)送的數(shù)據(jù)按照通信協(xié)議,設(shè)定字頭字節(jié)、長(zhǎng)度字節(jié)、功能號(hào)字節(jié)、數(shù)據(jù)字節(jié)、備份字節(jié)、檢查和字節(jié),組裝在一個(gè)定義好的字節(jié)數(shù)組里面,然后通過(guò)Write()方法發(fā)送給下位機(jī)。
(3)數(shù)據(jù)的讀取和存儲(chǔ):利用Read()方法,讀取緩沖區(qū)的字節(jié)數(shù)據(jù),并存儲(chǔ)到定義好的字節(jié)數(shù)組中,然后按照通信協(xié)議,逐個(gè)檢驗(yàn)字節(jié)數(shù)據(jù),提取并分離出需要的數(shù)據(jù),存儲(chǔ)到不同的變量。
(4)關(guān)閉串口:停止所有的讀寫(xiě)操作,斷開(kāi)和下位機(jī)之間的通信。
4.2.3 日志模塊
(1)創(chuàng)建日志記錄表:通過(guò)用戶設(shè)置日志存放的路徑,以系統(tǒng)運(yùn)行的當(dāng)前時(shí)間為文件名創(chuàng)建日志excel表格。
(2)生成日志記錄:當(dāng)雷達(dá)天線的位置與上一時(shí)刻位置有變化時(shí),自動(dòng)將天線的位置數(shù)據(jù),平臺(tái)的運(yùn)動(dòng)數(shù)據(jù)記錄在日志表格中。
(3)日志存放:表格默認(rèn)存放在用戶設(shè)置的路徑內(nèi),方便隨時(shí)查詢。
該雷達(dá)運(yùn)動(dòng)平臺(tái)控制系統(tǒng)已調(diào)試并安裝于某雷達(dá)系統(tǒng)中,很好地實(shí)現(xiàn)了預(yù)期的功能,運(yùn)行狀態(tài)良好。
文章以某典型雷達(dá)運(yùn)動(dòng)平臺(tái)為控制對(duì)象,研發(fā)了雷達(dá)運(yùn)動(dòng)控制系統(tǒng),通過(guò)上位機(jī)和下位機(jī)的協(xié)調(diào)配合,可實(shí)現(xiàn)雷達(dá)運(yùn)動(dòng)平臺(tái)的水平方向移動(dòng),平臺(tái)的俯仰運(yùn)動(dòng)和平臺(tái)的空間旋轉(zhuǎn)運(yùn)動(dòng)。該系統(tǒng)通過(guò)簡(jiǎn)單修改部分系統(tǒng)參數(shù)即可應(yīng)用于不同的雷達(dá)運(yùn)動(dòng)平臺(tái)的控制,增強(qiáng)了系統(tǒng)的通用性。
[1]Pollard, R.J.E.(1).Control system for the DART radarGEC Review, 1988,4(3):168-175.
[2]Yu, Yan Xin,Sun, Rong Chun.Design of Automobile reversing rader control system based onultrasonic[J].AppliedMechanics and Materials, 2014, 45(7):872-877.
[3]劉世挺.雷達(dá)伺服控制技術(shù)的新發(fā)展[J].火控雷達(dá)技術(shù),2002(31):33-35.
[4]毛志輝,李成鐵,趙強(qiáng)等.基于PLC的運(yùn)動(dòng)控制系統(tǒng)在印刷開(kāi)槽機(jī)中的應(yīng)用[J].儀器儀表學(xué)報(bào),2006,27(6):597、599.
[5]阮毅,陳伯時(shí).電力拖動(dòng)自動(dòng)控制系統(tǒng)—運(yùn)動(dòng)控制系統(tǒng)[M].北京:機(jī)械工業(yè)出版社,2009.
[6]曹洪君,吳盤(pán)龍.無(wú)人移動(dòng)平臺(tái)運(yùn)動(dòng)控制系統(tǒng)的設(shè)計(jì)[J].測(cè)控技術(shù),2014,33(9):64-67.
[7]Pei Wang,Gerhard Reinelt,Yuejin Tan.Self-adaptive large neighborhood search algorithm for parallel machine scheduling problems[J].Journal of Systems Engineering and Electronics,2012,23(2):208-215.
[8]馬林森,張文愛(ài),王秀.基于PLC和Visual C#上位機(jī)的噴霧測(cè)試系統(tǒng)[J].農(nóng)機(jī)化研究,2013(7):145-146.
[9]劉正華,爾聯(lián)潔,吳云潔.三軸虛擬轉(zhuǎn)臺(tái)的仿真平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].系統(tǒng)仿真學(xué)報(bào),2004,16(11):2555-2556.
[10]Burkov, A.P.,Krasilnikyants, E.V.,Design principles for motion control system software [J].Automation and Remote Control.May 2014, 75(8):935.
[11]李剛.多軸運(yùn)動(dòng)控制平臺(tái)管理軟件設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2014:1-15.
[12]楊晶.多軸運(yùn)動(dòng)控制平臺(tái)管理軟件設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2012:25-35.