肖莉萍,徐志鵬,馬訢智,李志宇,周潔敏
(1.南京航空航天大學(xué)中小型無人機(jī)先進(jìn)技術(shù)工信部重點(diǎn)實(shí)驗(yàn)室,江蘇南京 210016;2.南京航空航天大學(xué)自動(dòng)化學(xué)院,江蘇南京 210016;3.南京航空航天大學(xué)民航學(xué)院,江蘇南京 210016)
電動(dòng)交流舵機(jī)廣泛應(yīng)用于有人機(jī)和大型無人機(jī)中,具有占空間小、反饋速度快、質(zhì)量輕等優(yōu)點(diǎn)[1-3]。舵機(jī)通過驅(qū)動(dòng)舵面偏轉(zhuǎn)來控制飛機(jī)姿態(tài),因此舵機(jī)的性能直接決定著飛機(jī)飛行過程的動(dòng)態(tài)品質(zhì)[4-6]。
從電動(dòng)交流舵機(jī)的故障模式來看,多數(shù)是由于舵機(jī)控制系統(tǒng)的輸入電壓及舵機(jī)控制信號(hào)等參數(shù)漂移而導(dǎo)致的舵機(jī)動(dòng)作不到位、超調(diào)量大等性能故障[7-9]。為解決上述問題,該設(shè)計(jì)選用以Cortex-M7為內(nèi)核的STM32F767 作為主處理器,外擴(kuò)LTC2600芯片和ADAS3022 芯片,通過成熟的接口電路設(shè)計(jì)實(shí)現(xiàn)對(duì)交流舵機(jī)的伺服控制以及舵機(jī)實(shí)時(shí)位置的采集。通過實(shí)驗(yàn)驗(yàn)證系統(tǒng)能夠有效跟蹤上位機(jī)給定的舵機(jī)位置控制信號(hào)且動(dòng)態(tài)性能良好,同時(shí)能有效抑制內(nèi)外部干擾,以確保舵機(jī)位置數(shù)據(jù)的準(zhǔn)確性。
多通道交流舵機(jī)伺服系統(tǒng)原理框圖如圖1 所示,系統(tǒng)主要由多通道交流舵機(jī)控制箱、上位機(jī)和交流舵機(jī)三部分組成,其中,核心單元為多通道交流伺服舵機(jī)控制箱。多通道交流伺服舵機(jī)控制箱主要包括基于STM32F767 處理器的主控板、功率驅(qū)動(dòng)板以及信號(hào)線、電纜。在進(jìn)行舵機(jī)控制實(shí)驗(yàn)時(shí)需要外部提供交流115 V 電源、直流27 V 電源,交流115 V 直接給四個(gè)交流舵機(jī)供電,直流27 V 通過二次電源變換轉(zhuǎn)換成各芯片所需要的電壓。
圖1 舵機(jī)控制系統(tǒng)原理框圖
上位機(jī)通過RS232 串口與舵機(jī)控制箱進(jìn)行數(shù)據(jù)交互,控制箱接收上位機(jī)發(fā)出的控制指令,主控板上的LTC2600 芯片通過D/A 轉(zhuǎn)換生成舵機(jī)控制的模擬量信號(hào),舵機(jī)響應(yīng)后能夠執(zhí)行并輸出不同的工作模態(tài)。主控板上的ADAS3022 芯片實(shí)時(shí)采集舵機(jī)位置并轉(zhuǎn)換為數(shù)字量信號(hào)傳輸給上位機(jī)。
1.1.1 主處理器選型
STM32F767 作為多通道交流舵機(jī)伺服系統(tǒng)的主處理器,它的主要任務(wù)是產(chǎn)生舵機(jī)控制的數(shù)字量信號(hào)、處理實(shí)時(shí)采集的舵機(jī)位置信號(hào)以及與上位機(jī)進(jìn)行數(shù)據(jù)交互等。作為Cortex-M 系列處理器市場(chǎng)最大的占有者,STM32F767 憑借性能優(yōu)異、性價(jià)比高、本地化教程豐富等優(yōu)點(diǎn)迅速占領(lǐng)了國(guó)內(nèi)外市場(chǎng)。該設(shè)計(jì)選用的STM32F767 是ST 推出的基于ARM Cortex-M7 內(nèi)核的32 位處理器,其性能、運(yùn)算處理能力較上一代有較大提升,能夠基本滿足多通道交流舵機(jī)伺服系統(tǒng)的設(shè)計(jì)需求[10-12]。
1.1.2 串口接口電路的設(shè)計(jì)
系統(tǒng)通過一路RS232 串口與上位機(jī)進(jìn)行數(shù)據(jù)交互。由于STM32F767 主處理器的串口均為TTL 電平,所以通過主控板上集成的MAX3232 芯片,將TTL電平轉(zhuǎn)換成標(biāo)準(zhǔn)的232 電平,再用于通信。
1.1.3 舵機(jī)位置控制信號(hào)的產(chǎn)生
系統(tǒng)需要通過四路模擬量控制信號(hào)對(duì)四臺(tái)交流舵機(jī)進(jìn)行控制,而STM32F767 主處理器只有兩路D/A轉(zhuǎn)換通道,不滿足控制要求,因此,在主控板上擴(kuò)展一片高精度D/A芯片LTC2600,它能提供八通道16位D/A轉(zhuǎn)換通道,其供電電壓和基準(zhǔn)電壓均為5 V。LTC2600芯片采用SPI接口與STM32F767 處理器通信,電路設(shè)計(jì)中需要采用MOSI(主輸出從輸入)、SCK(時(shí)鐘信號(hào))和CS(片選信號(hào))三線與STM32F767 處理器進(jìn)行同步通信。
1.1.4 舵機(jī)實(shí)時(shí)位置信號(hào)的采集
系統(tǒng)需要對(duì)四臺(tái)舵機(jī)的實(shí)時(shí)位置進(jìn)行采集,主控板上擴(kuò)展一片高精度A/D 芯片ADAS3002,通過SPI 接口與STM32F767 處理器通信。
ADAS3022 芯片是一款完整的八通道、16 位、1 MSPS、逐次逼近型模數(shù)數(shù)據(jù)采集芯片,該芯片采用±15 V 電源供電。采用SPI與STM32F767 處理器通信,通過CS(片選信號(hào))、MOSI(主輸出從輸入)、MISO(主輸入從輸出)和SCK(時(shí)鐘信號(hào))組成四線式串行接口。此外,使用CNV(轉(zhuǎn)換控制信號(hào))來控制A/D 轉(zhuǎn)換的進(jìn)行,將其連接至主控板的STM32F767 處理器的對(duì)應(yīng)IO口即可。
功率驅(qū)動(dòng)板采用雙向可控硅作為舵機(jī)電機(jī)功率驅(qū)動(dòng)器件,設(shè)計(jì)中采用直流信號(hào)綜合方式進(jìn)行信號(hào)綜合與功率驅(qū)動(dòng)放大,每塊電路板上集成了雙通道舵機(jī)驅(qū)動(dòng)電路,以實(shí)現(xiàn)對(duì)電動(dòng)交流舵機(jī)的閉環(huán)驅(qū)動(dòng)控制,其原理框圖如圖2 所示。
圖2 功率驅(qū)動(dòng)板原理框圖
系統(tǒng)上電運(yùn)行后,首先分別進(jìn)行時(shí)鐘、串口、A/D和D/A 通道等初始化設(shè)置,在串口接收到來自上位機(jī)的舵機(jī)控制信號(hào)后,采用LTC2600 芯片的四路獨(dú)立D/A 通道實(shí)現(xiàn)模擬量輸出,以此驅(qū)動(dòng)四個(gè)舵機(jī)同時(shí)動(dòng)作;同時(shí)由ADAS3022 芯片的A/D 轉(zhuǎn)換通道采集各舵機(jī)的實(shí)時(shí)位置數(shù)字量信號(hào),再通過數(shù)字濾波對(duì)數(shù)據(jù)進(jìn)行處理,提高數(shù)據(jù)的抗干擾性,最后對(duì)數(shù)據(jù)進(jìn)行編碼并通過RS232 串口發(fā)送到上位機(jī),進(jìn)行舵機(jī)位置信號(hào)的顯示與對(duì)比。
該設(shè)計(jì)采用模塊化的方式在Keil μVision5 開發(fā)工具中進(jìn)行系統(tǒng)嵌入式軟件設(shè)計(jì),其中包括底層驅(qū)動(dòng)開發(fā)和嵌入式應(yīng)用程序設(shè)計(jì),該文主要介紹了串口通信模塊、舵機(jī)控制信號(hào)生成模塊和舵機(jī)實(shí)時(shí)位置采集模塊??傮w軟件設(shè)計(jì)流程圖如圖3 所示。
圖3 總體軟件設(shè)計(jì)流程圖
該設(shè)計(jì)使用STM32F767 的USART1 串口,在進(jìn)行電平轉(zhuǎn)換后用于和上位機(jī)進(jìn)行數(shù)據(jù)交互,完成如下兩項(xiàng)任務(wù):1)接收并解碼上位機(jī)給出的舵機(jī)控制指令數(shù)據(jù);2)編碼并回傳舵機(jī)實(shí)時(shí)位置數(shù)據(jù)。
首先對(duì)串口進(jìn)行底層引腳配置,然后對(duì)串口的寄存器進(jìn)行設(shè)置,主要設(shè)置包括八位數(shù)據(jù)位、一位停止位、無校驗(yàn)位、波特率115 200 bps。采用串口中斷的方式來接收上位機(jī)數(shù)據(jù),中斷和狀態(tài)寄存器USART1_ISR 中的標(biāo)志位RXNE 用于判斷是否接收到數(shù)據(jù),然后逐個(gè)字節(jié)地從接收數(shù)據(jù)寄存器USART1_RDR 中讀取數(shù)據(jù)。接收過程中通過自定義的接收狀態(tài)標(biāo)志位USART_RX_STA 來標(biāo)記數(shù)據(jù)的接收是否都已完成。
在每一包數(shù)據(jù)接收完成后,需要對(duì)數(shù)據(jù)包進(jìn)行解碼,首先通過幀頭兩個(gè)字節(jié)數(shù)據(jù)(0xEB 和0x90)判斷并定位一幀數(shù)據(jù),再進(jìn)行該幀數(shù)據(jù)校驗(yàn)位的校驗(yàn),該設(shè)計(jì)采用和校驗(yàn)的方法,若校驗(yàn)通過則判斷該幀數(shù)據(jù)為有效數(shù)據(jù),否則為無效數(shù)據(jù),最后依次讀取有效數(shù)據(jù)包中的舵機(jī)控制指令信號(hào),其中包括四個(gè)通道的舵機(jī)控制指令信號(hào)的類型、幅值以及周期。
舵機(jī)控制信號(hào)生成模塊的設(shè)計(jì)需要使用STM32F767處理器的四個(gè)定時(shí)器,該設(shè)計(jì)采用定時(shí)器中斷的方式進(jìn)行四路舵機(jī)控制數(shù)字量信號(hào)的生成[13]。首先通過上述解碼得到上位機(jī)數(shù)據(jù)獲得舵機(jī)控制指令信號(hào)的周期及幅值,通過時(shí)鐘預(yù)分頻系數(shù)psc和自動(dòng)重裝值arr的選取,將定時(shí)器溢出時(shí)間設(shè)置為上位機(jī)給定信號(hào)周期值的千分之一,定時(shí)器溢出時(shí)間的計(jì)算方法如式(1)所示:
式中,F(xiàn)t為定時(shí)器的工作頻率,該處理器的工作效率為108 MHz。
一個(gè)完整周期的舵機(jī)位置控制信號(hào)需由1 000次中斷生成,每次進(jìn)入定時(shí)器中斷處理函數(shù),會(huì)產(chǎn)生該點(diǎn)舵機(jī)位置控制數(shù)字量信號(hào),再通過LTC2600 的D/A轉(zhuǎn)換功能生成對(duì)應(yīng)的模擬量信號(hào)。LTC2600 采用軟件模擬SPI 的方法與主控芯片進(jìn)行通信,初始化時(shí)需要進(jìn)行SCK、MOSI、CS 的底層引腳配置。
在進(jìn)行D/A 轉(zhuǎn)換時(shí),首先要將CS 拉低以選中該芯片,然后需在SCK 每個(gè)上升沿依次輸入轉(zhuǎn)換信號(hào),轉(zhuǎn)換信號(hào)內(nèi)容包括4 位功能位、4 位地址位和16 位待轉(zhuǎn)換的數(shù)字量信號(hào),當(dāng)16 位數(shù)字量信號(hào)被傳送到內(nèi)部DAC 寄存器之后便自動(dòng)開始轉(zhuǎn)換。經(jīng)過24 個(gè)SCK 上升沿后,LTC2600 芯片輸出對(duì)應(yīng)的模擬量輸出信號(hào),結(jié)束后將CS 拉高,輸出的模擬量信號(hào)用來驅(qū)動(dòng)交流舵機(jī)工作。舵機(jī)控制信號(hào)生成模塊流程圖如圖4 所示。
圖4 舵機(jī)控制信號(hào)生成模塊流程圖
該設(shè)計(jì)采用定時(shí)器中斷的方式進(jìn)行舵機(jī)實(shí)時(shí)位置的采集及數(shù)據(jù)回傳,配置定時(shí)器溢出時(shí)間為20 ms,即ADAS3022 芯片進(jìn)行舵機(jī)位置的采集的頻率為50 Hz。ADAS3022 芯片采用SPI 進(jìn)行通信,初始化時(shí)需要進(jìn)行SCK、MOSI、CS、MISO 的底層引腳配置。
在進(jìn)行A/D 轉(zhuǎn)換時(shí),首先將CS 拉低以選中該芯片,然后拉高CNV 引腳,CNV 的上升沿將ADAS3022芯片的狀態(tài)從跟蹤模式變?yōu)楸3帜J?,這便是啟動(dòng)轉(zhuǎn)換所需的全部條件,由于CNV 維持高電平時(shí)間為低納秒級(jí)別,因此10 ns 后將CNV 引腳拉低,表示轉(zhuǎn)換完成。如果需要,可在每個(gè)SCK 上升沿通過MOSI 輸入16 位控制字CFG,控制字中包括轉(zhuǎn)換通道的選擇、各通道電壓范圍的配置等。在每個(gè)下降沿可獲得當(dāng)前A/D 轉(zhuǎn)換后的數(shù)字量信號(hào)并通過MISO 將位置數(shù)據(jù)輸出給STM32F767 處理器,結(jié)束后需將CS 拉高。
在舵機(jī)位置數(shù)據(jù)采集完成后,需要將采集的舵機(jī)實(shí)時(shí)位置數(shù)據(jù)和上位機(jī)實(shí)時(shí)給定的舵機(jī)控制指令數(shù)據(jù)一同進(jìn)行編碼并打包,最后通過USART1串口發(fā)送至上位機(jī)。舵機(jī)位置采集模塊流程圖如圖5 所示。
圖5 舵機(jī)位置采集模塊流程圖
在飛機(jī)復(fù)雜的電磁環(huán)境下,多通道交流舵機(jī)伺服系統(tǒng)中采集的舵機(jī)實(shí)時(shí)位置信號(hào)會(huì)摻雜少量干擾信號(hào),影響數(shù)據(jù)的準(zhǔn)確性。為了濾除干擾信號(hào),提高舵機(jī)位置數(shù)據(jù)采集的精度和可靠性,該設(shè)計(jì)融合限幅濾波算法和滑動(dòng)平均濾波算法這兩種算法,能夠?qū)﹄S機(jī)脈沖干擾有明顯的抑制作用,且能獲得較為平滑的采樣數(shù)據(jù)曲線[14-15]。
首先進(jìn)行限幅濾波,濾除明顯的脈沖干擾,限幅濾波具體算法如下:
該變壓器為某核電站一期核電廠發(fā)電機(jī)出口升壓變壓器,運(yùn)行期間中性點(diǎn)采用直接接地的方式,中性點(diǎn)套管接線板通過銅片軟連接直接與接地母排相連和接入地網(wǎng),在考慮中性點(diǎn)絕緣和爬距的前提下,選擇的中性點(diǎn)套管型號(hào)為Type 45N2000,額定電壓45kV,額定電流2000A,爬電距離1090mm。
1)將該次采樣周期舵機(jī)位置采樣值與上一個(gè)采樣周期采樣值作差,得到差值的絕對(duì)值;
2)將差值的絕對(duì)值和兩次采樣值之間允許的最大偏差閾值對(duì)比;
3)前者小則取原始采樣值為該次采樣周期的采樣值;
4)后者小則取上一個(gè)采樣周期采樣值為該次采樣周期的采樣值。
舵機(jī)位置采樣值y如式(2)所示:
式中,Y(n)為該次采樣周期采樣值;Y(n-1)為上一個(gè)采樣周期采樣值;A為兩次采樣值之間允許的最大偏差閾值。
1)開辟一個(gè)長(zhǎng)度為N的隊(duì)列用于存儲(chǔ)N個(gè)連續(xù)的采樣數(shù)據(jù),通過實(shí)驗(yàn)確定該設(shè)計(jì)中的N取5;
2)新的采樣數(shù)據(jù)隊(duì)尾入隊(duì),同時(shí)隊(duì)首數(shù)據(jù)出隊(duì);
3)對(duì)隊(duì)列中的采樣數(shù)據(jù)求平均值[16]。
經(jīng)過上述步驟的濾波算法后,得到最終濾波后的舵機(jī)實(shí)時(shí)位置信號(hào),等待數(shù)據(jù)打包并發(fā)送到上位機(jī)。
在Visual Studio 搭建好的上位機(jī)軟件平臺(tái)上對(duì)多通道交流舵機(jī)伺服系統(tǒng)進(jìn)行位置閉環(huán)驗(yàn)證。驗(yàn)證分為單通道性能驗(yàn)證和四通道整體性能驗(yàn)證,通過觀察上位機(jī)顯示界面中給定的舵機(jī)指令信號(hào)曲線與實(shí)時(shí)采集的舵機(jī)位置信號(hào)曲線,來驗(yàn)證系統(tǒng)的控制性能及抗干擾性能。
單通道性能驗(yàn)證實(shí)驗(yàn)中上位機(jī)給定舵機(jī)單通道指令:1)幅值為40°、周期為10 s 的方波信號(hào);2)幅值為40°、周期為10 s 的正弦波信號(hào),觀察舵機(jī)實(shí)時(shí)位置反饋情況。同時(shí),將數(shù)字濾波前和濾波后的曲線進(jìn)行對(duì)比,驗(yàn)證數(shù)字濾波的效果。實(shí)驗(yàn)波形如圖6-7 所示。
圖6 給定方波信號(hào)的跟隨曲線圖
觀察圖6 濾波后的舵機(jī)實(shí)時(shí)位置波形發(fā)現(xiàn),起始零位存在很小的誤差,但在系統(tǒng)允許的誤差范圍內(nèi)。在每個(gè)方波信號(hào)的階躍突變階段,由于舵機(jī)機(jī)械機(jī)構(gòu)需要響應(yīng)時(shí)間,實(shí)際測(cè)試中舵機(jī)在0.5 s 左右能夠達(dá)到給定的穩(wěn)定值,動(dòng)態(tài)響應(yīng)時(shí)間較短,幾乎無超調(diào),無穩(wěn)態(tài)誤差,跟隨性良好。
觀察圖7 濾波后的波形發(fā)現(xiàn),當(dāng)給定信號(hào)為緩變信號(hào)-正弦信號(hào)時(shí),舵機(jī)工作狀態(tài)穩(wěn)定,系統(tǒng)能夠快速響應(yīng)上位機(jī)的控制指令。除了起始零位存在很小的誤差外,舵機(jī)的實(shí)時(shí)位置信號(hào)與給定信號(hào)基本重合,無超調(diào),跟隨性好。
圖7 給定正弦波信號(hào)的跟隨曲線圖
將圖6、圖7 中濾波前與濾波后的舵機(jī)實(shí)時(shí)位置信號(hào)波形進(jìn)行對(duì)比,可知文中的數(shù)字濾波算法可以比較明顯地削弱內(nèi)外部干擾對(duì)舵機(jī)位置信號(hào)的影響,實(shí)驗(yàn)?zāi)艿玫奖容^光滑的曲線,該系統(tǒng)的抗干擾性得到提升,確保了舵機(jī)實(shí)時(shí)位置信號(hào)的準(zhǔn)確性。
四通道性能驗(yàn)證實(shí)驗(yàn)中上位機(jī)給定四個(gè)通道如表1 所示的舵機(jī)控制指令,包括信號(hào)類型、幅值和周期,觀察各舵機(jī)實(shí)時(shí)位置反饋情況,實(shí)驗(yàn)波形如圖8所示。
表1 四通道整體性能測(cè)試的給定信號(hào)
為了區(qū)分,圖中四通道舵機(jī)分別命名升降舵、左副翼、右副翼和方向舵。整體性能驗(yàn)證中的實(shí)時(shí)位置反饋曲線均為濾波后的曲線。觀察圖8 可知,各通道舵機(jī)工作狀態(tài)穩(wěn)定,彼此之間基本無干擾,動(dòng)態(tài)性能指標(biāo)滿足設(shè)計(jì)要求,跟蹤性能良好。
圖8 四通道整體性能驗(yàn)證的跟隨曲線圖
該文設(shè)計(jì)了一種基于STM32F767 處理器的多通道交流舵機(jī)伺服系統(tǒng),其中包括了系統(tǒng)硬件電路設(shè)計(jì)、軟件算法設(shè)計(jì)及驗(yàn)證平臺(tái)的搭建。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能夠快速響應(yīng)外部控制指令,實(shí)現(xiàn)多通道交流舵機(jī)的閉環(huán)控制,同時(shí)能實(shí)時(shí)采集舵機(jī)位置信號(hào)并與上位機(jī)完成數(shù)據(jù)交互,系統(tǒng)的工作狀態(tài)穩(wěn)定,動(dòng)態(tài)性能良好,同時(shí)能夠有效抑制內(nèi)部及外部干擾,確保舵機(jī)位置數(shù)據(jù)的準(zhǔn)確性。