朱建華,楊大林,汪亞敏,楊衛(wèi)東
(1.南京航空航天大學(xué)直升機(jī)旋翼動(dòng)力學(xué)國(guó)防重點(diǎn)實(shí)驗(yàn)室,江蘇南京 210016;2.中國(guó)直升機(jī)設(shè)計(jì)研究所,江西景德鎮(zhèn) 333001)
智能旋翼技術(shù)在近年取得較快的發(fā)展,其對(duì)直升機(jī)性能的提升效果也獲得業(yè)界的廣泛認(rèn)可,國(guó)內(nèi)的相關(guān)控制系統(tǒng)研究仍較少??刂葡到y(tǒng)本質(zhì)上是對(duì)一系列的信號(hào)進(jìn)行運(yùn)算處理和傳輸[1],對(duì)小翼偏轉(zhuǎn)的閉環(huán)控制是智能旋翼振動(dòng)控制的基礎(chǔ)。小翼偏轉(zhuǎn)閉環(huán)控制系統(tǒng)與智能旋翼振動(dòng)控制都要求具有較強(qiáng)的實(shí)時(shí)信號(hào)處理能力。針對(duì)小翼的閉環(huán)控制可以避免由于作動(dòng)系統(tǒng)的間隙及壓電材料的非線性特性帶來的不完全可控現(xiàn)象。本研究提供小翼閉環(huán)控制的系統(tǒng)軟硬件設(shè)計(jì),并預(yù)留用于智能旋翼振動(dòng)控制的軟件接口,便于后期振動(dòng)控制中的擴(kuò)展。整個(gè)小翼控制系統(tǒng)的原理結(jié)構(gòu)如圖1所示。主要由主控計(jì)算機(jī)、地面監(jiān)測(cè)系統(tǒng)、采集系統(tǒng)、功率輸出系統(tǒng)及作動(dòng)器與旋翼系統(tǒng)等組成。各部分之間的信號(hào)傳遞是完成控制任務(wù)的基礎(chǔ)。
控制系統(tǒng)完整結(jié)構(gòu)既需硬件設(shè)備組成的回路,同時(shí)軟件設(shè)計(jì)及通訊系統(tǒng)設(shè)計(jì)也是不可或缺的。
控制系統(tǒng)試驗(yàn)的設(shè)備準(zhǔn)備中,結(jié)合實(shí)驗(yàn)室本身具有的硬件條件,完成試驗(yàn)平臺(tái)的構(gòu)建。主要設(shè)備及型號(hào):
1)主控微處理器板卡TS8900-M128;
2)HVP-1000A型功率放大器可提供-200V~1000V可變電壓;
3)智能旋翼槳葉中內(nèi)置的霍爾角度傳感器—3503線性霍爾元件;
4)模型智能旋翼槳葉;
5)臺(tái)式計(jì)算機(jī);
6)其他儀器設(shè)備:萬用表、示波器、穩(wěn)壓電源及線纜等。
主控處理器是小翼控制系統(tǒng)的核心組件,用于數(shù)據(jù)采集、數(shù)據(jù)處理、作動(dòng)信號(hào)輸出及與上位機(jī)通信等,本系統(tǒng)選用了TS8900-M128型單片機(jī)開發(fā)板,具有采用寬電壓電源特性,采用的是Atmel公司生產(chǎn)的8位AVR Atmega128高性能微處理器。該型單片機(jī)的顯著特點(diǎn)包括:低功耗(5mA/3V),外圍接口豐富,具有 64KB外部存儲(chǔ)器擴(kuò)展,兼容IEEE1149.1標(biāo)準(zhǔn)的 JTAG接口,8個(gè) PWM 通道,8通道10位A/D轉(zhuǎn)換,2個(gè)8位定時(shí)器和2個(gè)16位定時(shí)器,1個(gè)具有獨(dú)立振蕩器的異步實(shí)時(shí)時(shí)鐘RTC,1個(gè)SPI同步串口,2個(gè)USART接口。其內(nèi)部結(jié)構(gòu)采用RISC精簡(jiǎn)指令結(jié)構(gòu),快速單周期指令系統(tǒng),具備1MIPS/MHZ的高速運(yùn)行處理能力,可以快速實(shí)現(xiàn)浮點(diǎn)數(shù)硬件乘法運(yùn)算,從而解決和實(shí)現(xiàn)復(fù)雜的控制算法;并具有4個(gè)不同優(yōu)先級(jí)中斷源,可實(shí)現(xiàn)通信、輸出執(zhí)行等事件的快速中斷響應(yīng)。
主控板卡集成功能包括:1.數(shù)據(jù)采集電路;2.電源電路;3.功能復(fù)位;4.外部晶振電路;5.DA轉(zhuǎn)換芯片及電路;6.JTAG仿真器接口電路;7、電平轉(zhuǎn)換,串口通信電路等。為了實(shí)時(shí)準(zhǔn)確獲知小翼偏轉(zhuǎn)角度信號(hào),采用霍爾角度傳感器進(jìn)行測(cè)量。所采用的霍爾傳感器型號(hào)為3503,從前面進(jìn)行的相關(guān)研究[2]中,我們可以獲得霍爾傳感器相關(guān)特性,其能夠較準(zhǔn)確地得到-10°~10°的小翼偏轉(zhuǎn)信號(hào),滿足試驗(yàn)要求。采集通道是atmega128自帶的10位8通道逐次逼近型ADC,所以預(yù)留了足夠的通道進(jìn)行減振控制試驗(yàn)中的槳轂載荷采集。最大分辨率即每秒模數(shù)轉(zhuǎn)換器采點(diǎn)數(shù)(采樣率)可達(dá)到15kSPS,此外,ADC還包括了一個(gè)采樣保持電路用來確保轉(zhuǎn)換過程中輸入的電壓保持恒定。為減小設(shè)備內(nèi)部及外部電路對(duì)ADC采集的電磁干擾,提高模擬信號(hào)采集精度,所采取的減噪方法有:ADC采用AVCC引腳單獨(dú)供電,AVCC通過電感電容網(wǎng)絡(luò)與數(shù)字電源VCC連接。對(duì)采集的角度信號(hào)進(jìn)行取均值平滑,減少高階諧波測(cè)量噪聲誤差。
小翼偏轉(zhuǎn)操作指令由地面控制計(jì)算機(jī)發(fā)送,主控計(jì)算機(jī)收到操作指令后,經(jīng)由內(nèi)部時(shí)鐘調(diào)制頻率后,輸出至DAC7512數(shù)模轉(zhuǎn)換器,得到所需要的模擬信號(hào)。DAC7512,如圖2,是一款12位低功耗串行數(shù)模轉(zhuǎn)換器,1管腳定義為芯片模擬輸出電壓,即模擬輸出量,其幅值為參考地與電源電壓的差值,GND是電路地參考點(diǎn)與主控處理芯片共地,VDD為供電電源,電壓5V,Din為串行數(shù)據(jù)輸入即AVR芯片發(fā)送來的控制信號(hào),SCLK為串行時(shí)鐘輸入,SYNC接單片機(jī)的PE3管腳,控制芯片的工作,低電平有效。輸出模擬電壓外接無源濾波電路,獲得平滑效果,減少由于芯片本身帶來的毛刺誤差輸出。具有高達(dá)30MHz的通用三線串行接口,完全匹配Atmega128的工作頻率要求,DAC7512與SPI接口兼容,可直接連接AVR單片機(jī),而不需要其它的轉(zhuǎn)接電路。
通過壓電作動(dòng)器及菱形驅(qū)動(dòng)機(jī)構(gòu)來實(shí)現(xiàn)伺服控制操作。壓電作動(dòng)器工作電壓為0-800V,對(duì)于控制板卡的控制信號(hào)輸出很難達(dá)到如此高的電壓,因此采用HVP-1000A型功率放大器,提供-200V-1000V可變電壓放大。
1.2.1 功能簡(jiǎn)介
單片機(jī)控制小翼并采集載荷信號(hào)的整個(gè)回路流程涉及到上位機(jī)和下位機(jī)的控制軟件設(shè)計(jì),主控處理器控制程序通過C語(yǔ)言編寫,實(shí)現(xiàn)各種功能,主要有:1.從數(shù)據(jù)采集器傳感器中獲得需要的反饋信號(hào);2.通過串口通信發(fā)送給上位機(jī)控制站;3.向壓電作動(dòng)器發(fā)送作動(dòng)信號(hào)。
1.2.2 下位機(jī)程序設(shè)計(jì)
選擇使用第三方C編譯器進(jìn)行控制程序編寫,這里開源采用WinAVR開發(fā)工具開發(fā)atmega128的控制代碼。WinAVR開發(fā)軟件包中主要包括了編譯器GCC、編譯器的庫(kù)、匯編器、編程接口、調(diào)試器、代碼編輯器及其他配套工具。采用AVR Studio 4實(shí)現(xiàn)調(diào)試功能、JTAG ICE仿真、程序燒制等。
ATMEL AVR Studio集成開發(fā)環(huán)境(IDE)包括1.項(xiàng)目管理;2.AVR Assembler編譯器;3.調(diào)試指令模擬和實(shí)時(shí)仿真功能;4.AVR Prog程序下載;5.STK500/JTAG ICE編程;6.第三方C編譯器管理等功能。有源文件編輯匯編(生成.OBJ/.HEX/.LIS文件)、搜尋、選項(xiàng)(生成匯編文件格式)、窗口、幫助等操作,匯編出錯(cuò)有錯(cuò)誤定位、錯(cuò)誤指示,便于源文件排錯(cuò)。將已經(jīng)編寫的程序進(jìn)行編譯,不出錯(cuò)則可生成.Hex文件。AVR的仿真與燒制都是對(duì)使用WinAVR編譯器編譯產(chǎn)生的Hex文件進(jìn)行操作的。Hex文件由對(duì)應(yīng)機(jī)器語(yǔ)言碼和/或常量數(shù)據(jù)的十六進(jìn)制編碼數(shù)字組成,用于傳輸將被存于ROM或者EPROM中的程序和數(shù)據(jù)的通常文件格式。
系統(tǒng)片上調(diào)試功能的進(jìn)行是通過AVR Studio進(jìn)行硬件仿真模擬及指令模擬;指令模擬和CCS,keil等集成開發(fā)環(huán)境是一樣的,支持?jǐn)帱c(diǎn)、單步、變量觀測(cè)、存儲(chǔ)器觀測(cè)、寄存器觀測(cè)、IO空間觀測(cè)、處理器狀態(tài)觀測(cè)等調(diào)試手段。
為了順利完成程序編寫任務(wù),首先進(jìn)行了流程圖設(shè)計(jì)。圖3為下位機(jī)控制程序的流程圖??刂拼a編寫中可依據(jù)流程圖,遵守AVR單片機(jī)編程規(guī)則和模式,進(jìn)行合理的程序布局。
圖3 下位機(jī)程序流程圖
下位機(jī)程序由頭文件、主程序兩部分組成。頭文件中主要定義了主從機(jī)通信格式,數(shù)據(jù)發(fā)送標(biāo)志,變量聲明,AD轉(zhuǎn)換后數(shù)據(jù)變量,DA轉(zhuǎn)換前數(shù)據(jù)即控制輸出數(shù)據(jù)變量,發(fā)送給上位機(jī)的測(cè)量輸出值變量,定時(shí)變量若干,需要標(biāo)定的參數(shù)值,其它可能需要的參數(shù)變量。
主程序主要由功能子函數(shù)與main函數(shù)組成,按照子函數(shù)的功能分為初始化子函數(shù)、采集發(fā)送子函數(shù)、通信子函數(shù)、中斷函數(shù)等類。具體的功能可以據(jù)圖劃分如下:
1)Main()函數(shù)主要實(shí)現(xiàn):首先是寄存器的初始化,防止程序跑偏看門狗的設(shè)置,按程序流程步驟做系統(tǒng)主循環(huán)直到系統(tǒng)停止。循環(huán)中主要命令有:按照試驗(yàn)要求調(diào)用,控制子程序調(diào)用(無參數(shù)設(shè)置),在設(shè)定時(shí)間內(nèi)完成數(shù)據(jù)采集,通過串口發(fā)送數(shù)據(jù)至上位計(jì)算機(jī)。
2)初始化子程序:
程序中主要參變量設(shè)置及初始化:包括設(shè)置看門狗,傳輸結(jié)構(gòu)類數(shù)據(jù)的幀頭幀尾設(shè)定;
系統(tǒng)初始化:中斷設(shè)置,串口倍速設(shè)置;定時(shí)器初始化;AD端口設(shè)置;DA端口初始設(shè)置等。
3)采集系統(tǒng)子程序:
分別讀取多路AD的采集信號(hào),并將獲得的多路AD信號(hào)與標(biāo)定比值做乘法運(yùn)算,得到采集的力信號(hào)并存儲(chǔ),等待發(fā)送上位機(jī)或控制器運(yùn)算使用;
4)DA輸出信號(hào)發(fā)生子系統(tǒng):
將控制子程序反饋的數(shù)據(jù)變量,賦值給DA管腳對(duì)應(yīng)寄存器變量,從而輸出控制模擬信號(hào);
5)數(shù)據(jù)通信子程序:
發(fā)送包括實(shí)際的輸出控制電壓信號(hào)和采集得到的角度信號(hào)。發(fā)送數(shù)據(jù)過程中包括了對(duì)發(fā)送數(shù)據(jù)的校驗(yàn)過程;
需要注意到,頭文件中設(shè)置使用到的系統(tǒng)庫(kù)文件調(diào)用,通信傳輸協(xié)議格式必須與上位機(jī)接受匹配,對(duì)使用較多的常量進(jìn)行宏定義;在單片機(jī)任務(wù)較簡(jiǎn)單時(shí),進(jìn)行看門狗設(shè)置,試驗(yàn)驗(yàn)證中沒有碰到程序跑偏或死循環(huán)狀態(tài)。利用中斷函數(shù)觸發(fā)信號(hào)采集發(fā)送的相關(guān)函數(shù),為數(shù)據(jù)采集與數(shù)據(jù)發(fā)送設(shè)置了不同的中斷時(shí)間。中斷是指計(jì)算機(jī)在執(zhí)行程序的過程中,當(dāng)出現(xiàn)異常情況或特殊請(qǐng)求時(shí),計(jì)算機(jī)停止現(xiàn)行程序的運(yùn)行,轉(zhuǎn)向?qū)@些異常情況或特殊請(qǐng)求的處理,處理結(jié)束后再返回現(xiàn)行程序的間斷處,繼續(xù)執(zhí)行原程序。中斷是單片機(jī)實(shí)時(shí)地處理內(nèi)部或外部事件的一種內(nèi)部機(jī)制。當(dāng)某種內(nèi)部或外部事件發(fā)生時(shí),單片機(jī)的中斷系統(tǒng)將迫使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)而去進(jìn)行中斷事件的處理,中斷處理完畢后,又返回被中斷的程序處,繼續(xù)執(zhí)行下去。因此中斷程序中的命令需要簡(jiǎn)短有效地執(zhí)行,避免陷入中斷沖突。中斷中采用的是溢出中斷的形式,通過改變T/C寄存器的值,即可獲得需要的中斷頻率?;趩纹瑱C(jī)的后續(xù)振動(dòng)載荷控制試驗(yàn)中,則需要采集多路載荷信號(hào),需要多路的DA芯片作為硬件輸出模塊支撐。
1.2.3 上位機(jī)程序設(shè)計(jì)
下位機(jī)的主要功能在于采集與發(fā)送信號(hào),上位機(jī)系統(tǒng)主要用于監(jiān)測(cè)信號(hào)、信號(hào)處理、調(diào)試控制系統(tǒng),并實(shí)現(xiàn)與下位機(jī)的串口控制系統(tǒng)通信。程序設(shè)計(jì)主要包括了串口通信設(shè)計(jì),信號(hào)處理,F(xiàn)ortran控制動(dòng)態(tài)鏈接庫(kù)的調(diào)用。
上位機(jī)程序采用 C#語(yǔ)言,C#是專為.NET Framework設(shè)計(jì)的對(duì)象導(dǎo)向性的高級(jí)編程語(yǔ)言,兼顧了C、C++的強(qiáng)大功能以及Visual Basic的簡(jiǎn)單易用特性。
上位機(jī)不僅需要和下位機(jī)的相關(guān)數(shù)據(jù)通信相匹配,還要進(jìn)行數(shù)據(jù)接受及校核、數(shù)據(jù)顯示、閉環(huán)控制律運(yùn)算、數(shù)據(jù)發(fā)送等功能。圖4為上位機(jī)功能框圖。
圖4 上位機(jī)功能框圖
圖5為Microsoft Visual Studio環(huán)境下的C#語(yǔ)言創(chuàng)建的Windows窗體應(yīng)用程序主界面。上位機(jī)包含了串口通信設(shè)置,串口開關(guān),控制算法調(diào)用,小翼偏轉(zhuǎn)角度調(diào)用,控制信號(hào)監(jiān)測(cè)和為保證作動(dòng)器的安全運(yùn)行,為系統(tǒng)調(diào)試設(shè)置的調(diào)幅調(diào)頻功能。
圖5 調(diào)試界面
控制算法的調(diào)用是進(jìn)行閉環(huán)控制的核心子程序,主要涉及C#如何調(diào)用Fortran編寫的動(dòng)態(tài)鏈接庫(kù),在聲明外部方法前需要在程序聲明中添加System.Runtime.InteropServices命名空間。外部方法聲明需要注意Fortran與C#數(shù)據(jù)格式的不同,主要是數(shù)組格式下,F(xiàn)ortran為按列排序,C#中為按行排列。外部方法聲明需要添加extern修飾符,這是與內(nèi)部方法調(diào)用的區(qū)別。Fortran中多使用子程序作為函數(shù)調(diào)用,所有變量都包含在傳遞參數(shù)中,因?yàn)镕ortran在傳遞參數(shù)時(shí)使用的是傳址調(diào)用,即調(diào)用時(shí)傳遞出去的參數(shù)和子函數(shù)中接受的參數(shù)會(huì)采用相同的內(nèi)存地址記錄,這樣的好處是提高運(yùn)算的速度,減少由于子程序調(diào)用而占用的內(nèi)存空間。
在進(jìn)行小翼控制時(shí)采用PID控制策略對(duì)小翼進(jìn)行閉環(huán)控制,在控制律設(shè)計(jì)中,利用反饋的偏轉(zhuǎn)角度測(cè)量信號(hào),為了消除角度偏轉(zhuǎn)靜差漂移量,防止執(zhí)行機(jī)構(gòu)在達(dá)到極限偏轉(zhuǎn)位置時(shí)進(jìn)入鎖死狀態(tài),控制律算法設(shè)計(jì)采用抗積分飽和的PID算法。
這里的u(kT)即表示為kT時(shí)算法的計(jì)算控制量,T為設(shè)置的采樣周期,采集周期大小與控制效果密切相關(guān),這里設(shè)置為關(guān)注輸出信號(hào)周期的四十分之一以獲得較好的控制效果,Kp、Ki、Kd分別是PID控制器參數(shù),對(duì)應(yīng)為比例常數(shù),積分常數(shù),微分常數(shù)。u0作為控制的基準(zhǔn)量表示控制系統(tǒng)的目標(biāo)值,(kT)為kT時(shí)刻的測(cè)量誤差(mT)為誤差的積累項(xiàng),在計(jì)算u(kT)前,判斷以時(shí)刻的控制量u((k-1)T)是否超過極限偏轉(zhuǎn)角,若大于umax,則積分項(xiàng)累積為負(fù),若不超過則積累正的偏差值。N為設(shè)置積分飽和上下限,當(dāng)累積誤差超過積分飽和限制時(shí)進(jìn)行上述操作。控制器的相關(guān)的控制參數(shù)是經(jīng)實(shí)驗(yàn)調(diào)試確定的。
試驗(yàn)中分別進(jìn)行了開環(huán)和閉環(huán)的小翼控制。小翼控制系統(tǒng)的調(diào)試過程按照以下環(huán)節(jié)分步進(jìn)行:首先進(jìn)行了硬件電路的調(diào)試,保證主控板卡正常工作,主要測(cè)試手段包括示波器、萬用表、地面監(jiān)測(cè)軟件、串口軟件等;其次是模型槳葉臺(tái)架的安裝調(diào)試,作動(dòng)器的正常工作供電,在此基礎(chǔ)之上,進(jìn)行信號(hào)傳輸調(diào)試,對(duì)采集的角度信號(hào)的大小進(jìn)行標(biāo)定,為了確保安全,采用最高工作電壓50%大小的驅(qū)動(dòng)信號(hào)對(duì)作動(dòng)器進(jìn)行調(diào)試。圖6為硬件電路調(diào)試現(xiàn)場(chǎng),圖7為小翼控制現(xiàn)場(chǎng)。
偏轉(zhuǎn)角度不僅作為用戶對(duì)小翼工作狀態(tài)的實(shí)時(shí)監(jiān)控對(duì)象,還是進(jìn)行小翼閉環(huán)控制算法工作的必要信號(hào)來源。如圖8所示,偏轉(zhuǎn)角度的單位是度,控制電壓的單位是伏特。在實(shí)際監(jiān)測(cè)過程中,能夠較好地反映實(shí)時(shí)的小翼偏轉(zhuǎn)角度信號(hào)。但是獲得的小翼偏轉(zhuǎn)角度的信號(hào)不夠完美,分析其原因可能有:系統(tǒng)噪聲的影響,控制系統(tǒng)工作在強(qiáng)弱電同時(shí)存在的工作空間內(nèi),尤其是槳葉的采集信號(hào)和高壓控制信號(hào)都需要經(jīng)過槳根處傳送,存在著一定程度的電磁干擾現(xiàn)象,需要做的改進(jìn)工作即強(qiáng)弱電的干擾隔離。在115200bit/s的比特率下,單向計(jì)算機(jī)與控制板卡每秒可以傳遞的數(shù)據(jù)為1000組,完全可以滿足0-50Hz的角度信號(hào)采集要求。
圖8與圖9的對(duì)比可以看到,在開環(huán)的信號(hào)輸入與閉環(huán)的信號(hào)輸入間存在著相位差,這是由于系統(tǒng)非線性及遲滯引起的,施加閉環(huán)控制后,實(shí)時(shí)控制效果是能夠獲得一定程度的改善的,且試驗(yàn)結(jié)果與仿真控制試驗(yàn)效果基本一致。
后續(xù)在小翼的閉環(huán)控制的基礎(chǔ)上可以改變控制信號(hào)目標(biāo),進(jìn)行多路控制,實(shí)現(xiàn)槳轂減振控制。
本文給出了智能旋翼小翼控制系統(tǒng)的設(shè)計(jì)方案,介紹控制系統(tǒng)硬件設(shè)備軟件系統(tǒng)的選擇與應(yīng)用,給出了相應(yīng)的試驗(yàn)結(jié)果。下一步工作將是對(duì)試驗(yàn)效果進(jìn)一步完善,并進(jìn)行更完善的智能旋翼振動(dòng)控制系統(tǒng)試驗(yàn)。
[1]胡壽松.自動(dòng)控制原理[M].北京:科學(xué)出版社,2001.
[2]張柱.基于高效驅(qū)動(dòng)機(jī)構(gòu)的新型智能旋翼設(shè)計(jì)分析與試驗(yàn)研究[D].南京:南京航空航天大學(xué),2007.
[3]王昌剛,徐錦法,夏青元.無人直升機(jī)控制系統(tǒng)與CAN通信[C].全國(guó)直升機(jī)年會(huì)論文,2010.
[4]Atmel AVR042:AVR Hardware Design Considerations[Z].2010.6
[5]佟長(zhǎng)福.AVR單片機(jī)GCC程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2006.