朱文龍,周 驊,張榮芬,羅文龍
(貴州大學(xué)大數(shù)據(jù)與信息工程學(xué)院,貴陽 550025)
隨著科技不斷發(fā)展,越來越多的有限轉(zhuǎn)角電機(jī)應(yīng)用場景被發(fā)掘出來,比如無人機(jī)姿態(tài)調(diào)整器、發(fā)動機(jī)燃油閥控制器等的應(yīng)用場景中都以有限轉(zhuǎn)角電機(jī)作為系統(tǒng)執(zhí)行機(jī)構(gòu)[1]。有限轉(zhuǎn)角電機(jī)控制器直接控制電機(jī)運(yùn)轉(zhuǎn),其性能直接影響著有限轉(zhuǎn)角電機(jī)的運(yùn)轉(zhuǎn)狀態(tài),進(jìn)而影響隨動系統(tǒng)工作質(zhì)量。改進(jìn)有限轉(zhuǎn)角電機(jī)控制器能夠改善電機(jī)運(yùn)行中的各項(xiàng)數(shù)據(jù)指標(biāo),近一步提高人們的生活質(zhì)量。
PID(Proportion Integral Differential)算法是對期望值、實(shí)際反饋值作差,經(jīng)比列、積分、微分環(huán)節(jié)計(jì)算得到系統(tǒng)控制輸出值[2]。在經(jīng)典控制領(lǐng)域中PID算法通常采用位置環(huán)、速度環(huán)、電流環(huán)的三閉環(huán)控制技術(shù)路線,完成對有限轉(zhuǎn)角電機(jī)轉(zhuǎn)子位置的實(shí)時(shí)控制[2]。目前,在有限轉(zhuǎn)角電機(jī)控制器實(shí)現(xiàn)的硬件技術(shù)路線上,大多采用模擬電路、MCU(Micro Controller Unit)等方式。事實(shí)上,該系列技術(shù)路線在實(shí)際控制中的電機(jī)響應(yīng)速度、控制精度等存在一定的不足。故此針基于模擬電路、MCU 技術(shù)路線的有限轉(zhuǎn)角電機(jī)控制器控制效果不佳的問題,嘗試引入FPGA(Field Programmable Gate Array, 現(xiàn)場可編程門陣列)硬件平臺,基于Cyclone IV EP4C22F17C8 芯片,通過編程,設(shè)計(jì)一種具有位置環(huán)、速度環(huán)、電流環(huán)的三閉環(huán)控制器,并通過實(shí)驗(yàn)考核其在控制精度與響應(yīng)速度上與MCU 端同類產(chǎn)品的差異。
控制器開發(fā)是針對有限轉(zhuǎn)角直流無刷力矩電機(jī)[4]進(jìn)行的。該類電機(jī)能夠在一定角度之內(nèi)實(shí)現(xiàn)正向或反向轉(zhuǎn)動。其主要特點(diǎn)為轉(zhuǎn)速較低、轉(zhuǎn)矩較大,在長期堵轉(zhuǎn)情況下仍能正常工作;同時(shí)轉(zhuǎn)速和轉(zhuǎn)矩波動小,機(jī)械特性和調(diào)節(jié)線性度好,更適合用來進(jìn)行小角度、高精度的控制。
在常規(guī)的直流力矩電機(jī)運(yùn)行過程中,為了保持電樞的連續(xù)旋轉(zhuǎn),電機(jī)必須采用換向器使得電樞中的電流在連續(xù)變向的磁極下仍然保持流向不變[5],進(jìn)而使得電機(jī)電磁轉(zhuǎn)矩方向也保持固定方向。因?yàn)殡姍C(jī)極對數(shù)限制著電機(jī)電角度,在極對數(shù)為1 時(shí)電樞最大角度不超過180°,此時(shí)給電機(jī)通正向或反向電流就實(shí)現(xiàn)了在一定角度內(nèi)的正向或反向轉(zhuǎn)動,有限轉(zhuǎn)角電機(jī)正是基于這一點(diǎn)制造出來的。
所設(shè)計(jì)的有限轉(zhuǎn)角電機(jī)控制器系統(tǒng)結(jié)構(gòu)如圖1所示。系統(tǒng)的主要組成部分包括上級指令信號采集模塊、電機(jī)反饋信號采集模塊、PID 計(jì)算模塊、PWM(Pulse Width Modulation, 脈寬調(diào)制)控制模塊、有限轉(zhuǎn)角電機(jī)等。系統(tǒng)整體的控制思路為:由上級指令信號采集模塊采集上一級命令系統(tǒng)給出的目標(biāo)角度,同時(shí)經(jīng)過機(jī)反饋信號采集模塊實(shí)時(shí)檢測有限轉(zhuǎn)角電機(jī)的轉(zhuǎn)子位置、轉(zhuǎn)速、母線電流信號,并將這些信號輸送到PID 計(jì)算模塊。此時(shí),PID 計(jì)算模塊根據(jù)有限轉(zhuǎn)角電機(jī)實(shí)時(shí)角度與給定角度進(jìn)行計(jì)算,不斷更新PID 的輸出值。PWM 控制模塊將PID 輸出值轉(zhuǎn)換為脈寬調(diào)制控制信號[6],并經(jīng)過H 橋輸送給有限轉(zhuǎn)角電機(jī),產(chǎn)生轉(zhuǎn)角輸出,實(shí)時(shí)有效地閉環(huán)控制有限轉(zhuǎn)角電機(jī)的轉(zhuǎn)子位置[7],使其轉(zhuǎn)子能夠準(zhǔn)確的到達(dá)或停止在目標(biāo)位置。
圖1 有限轉(zhuǎn)角電機(jī)控制器結(jié)構(gòu)圖
電機(jī)驅(qū)動電路由電源輸入電路和H 橋驅(qū)動電路組成。如圖2 所示為電源輸入處理電路圖,以18~22V 直流電源經(jīng)過TB1-10、TB1-11 進(jìn)入電機(jī)控制裝置,自恢復(fù)保險(xiǎn)管F1、F2 和壓敏電阻RV1,主要對輸入電源線路上出現(xiàn)的浪涌電流及瞬態(tài)電壓現(xiàn)象進(jìn)行安全防護(hù)。經(jīng)過共模電感L2 后的電源,一路經(jīng)過大功率共陰極肖特基二極管CR1 轉(zhuǎn)換為電機(jī)線圈的供電電源VCC4;依靠CR1 的單向?qū)ㄐ阅苡行Х乐闺姍C(jī)運(yùn)轉(zhuǎn)過程中產(chǎn)生的尖峰電壓對控制裝置帶來的影響。另一路采用共模電感和差模電感設(shè)計(jì)以增強(qiáng)電路的EMC 特性,電源的輸出為VCC1,作為電源轉(zhuǎn)換電路的輸入。電源線路采用濾波電路來濾掉電源上的高頻噪聲。
圖2 電源輸入電路設(shè)計(jì)
H 橋驅(qū)動模塊電路如圖2 所示,采用了H 橋電路的專用驅(qū)動芯片HIP4080A,主要功能是將FPGA模塊輸出的兩路PWM 波進(jìn)行比較,通過轉(zhuǎn)換,進(jìn)一步控制H 橋四個(gè)橋臂(Q1、Q2、Q2、Q4)的柵極電壓,實(shí)現(xiàn)Q1、Q4 和Q2、Q2 交替導(dǎo)通和關(guān)閉。HIP4080A的AHS、BHS 連接至H 橋電路的輸出,為了增強(qiáng)電機(jī)控制裝置的電磁兼容性,此輸出經(jīng)過共模電感L2及穿心磁珠E2 后再接至電機(jī)繞組。
圖3 H 橋驅(qū)動電路
控制器選用AD7091R 傳感器、RDC19222 旋轉(zhuǎn)變壓器作為解析元件將上級系統(tǒng)指令信號和電機(jī)轉(zhuǎn)子的實(shí)時(shí)位置信號、實(shí)時(shí)角速度信號、實(shí)時(shí)母線電流信號解析為數(shù)字信號,并傳輸至FPGA 芯片內(nèi)部。AD7091R 傳感器所需驅(qū)動電源為2.2V,因?yàn)镕PGA芯片管腳輸出高電平為2.2V 電壓,所以AD7091R可直接使用FPGA 芯片2.2V LVTTL 接口信號作為輸入驅(qū)動電源。如圖4 所示為旋轉(zhuǎn)變壓器電源驅(qū)動電路圖。電路采用集成芯片來進(jìn)行電壓轉(zhuǎn)換,電路中VCC2 為+8 V,VCC2 為-8 V,VCC1 為+22.8 V,V+為24V;實(shí)現(xiàn)穩(wěn)定的±12V、+5V 輸出電源。
圖4 旋轉(zhuǎn)變壓器驅(qū)動電路圖
PID 算法原理如圖5 所示。rin(k)為上級系統(tǒng)給出的目標(biāo)位置指令;yout(t)為有限轉(zhuǎn)角電機(jī)實(shí)時(shí)位置反饋值;e(t)為誤差值,即目標(biāo)值與實(shí)際值之差;u(t)為經(jīng)過PID 計(jì)算輸出的控制值[8]。當(dāng)該控制器作用于有限轉(zhuǎn)角電機(jī)時(shí),能夠使其轉(zhuǎn)子達(dá)到目標(biāo)位置或者停留當(dāng)前位置;Kp、Ki、Kd分別為PID 控制中的比例系數(shù)、積分系數(shù)、微分系數(shù)。
圖5 PID 算法原理圖
設(shè)計(jì)需要將PID 控制算法移植到FPGA 內(nèi)部,因此須對其進(jìn)行離散化,如下式所示:
式中,U(k)為第k 次采樣所得到的PID 計(jì)算值;e(k)、e(k-1)為第k 次、第k-1 次采樣得到的誤差值。
由式(1)整理得到增量式PID 控制輸出表達(dá)式:
式中,U(k)為第k 次采樣時(shí)PID 控制系統(tǒng)較第k-1次控制輸出值的增量;e(k-2)為第k-2 次采樣時(shí)刻的誤差值。
設(shè)計(jì)采用位置環(huán)、速度環(huán)、電流環(huán)三閉環(huán)控制方式,控制原理如圖6 所示。位置環(huán)控制能夠提高有限轉(zhuǎn)角電機(jī)運(yùn)動過程中轉(zhuǎn)子位置精度;速度環(huán)控制提高了電機(jī)轉(zhuǎn)子角速度抗負(fù)載擾動能力;電流環(huán)控制直接作用到電極母線電流,可提高電機(jī)響應(yīng)速度以及抗干擾能力[9]。
圖6 三閉環(huán)PID 控制原理
邏輯設(shè)計(jì)采用的EDA 開發(fā)工具為Quartus II,具體包括控制器頂層狀態(tài)機(jī)、RDC19222 驅(qū)動、AD7091R 驅(qū)動、PID 控制器、PWM 波、PLL 鎖相環(huán)模塊邏輯代碼設(shè)計(jì)。頂層狀態(tài)機(jī)工作流程如圖7 所示。在控制器頂層狀態(tài)機(jī)中,設(shè)置初始狀態(tài)、等待狀態(tài)、工作狀態(tài)。
圖7 頂層狀態(tài)機(jī)工作流程
在初始狀態(tài)下,先通過配置端口信號使RDC1922、AD7091R 完成上電初始化,進(jìn)行正常轉(zhuǎn)換工作。
處于等待狀態(tài)表明傳感器已經(jīng)完成初始化,可以進(jìn)行正常工作,此時(shí)等待PWM 波啟動信號到來。
在工作狀態(tài)下,頂層狀態(tài)機(jī)先調(diào)用傳感器模塊完成各項(xiàng)數(shù)據(jù)采集,并將數(shù)據(jù)寄存在FPGA 內(nèi)部,然后調(diào)用PID 控制器進(jìn)行PID 計(jì)算,最后調(diào)用PWM波模塊,將PID 計(jì)算輸出值轉(zhuǎn)換為相應(yīng)占空比的PWM 波,并輸出至有限轉(zhuǎn)角電機(jī)自帶的H 橋模塊。至此便完成了一次從數(shù)據(jù)采集到電機(jī)實(shí)際控制的邏輯計(jì)算。
在實(shí)際控制過程中,頂層狀態(tài)機(jī)會在等待狀態(tài)和工作狀態(tài)之間來回切換。因?yàn)橛邢揶D(zhuǎn)角電機(jī)需適應(yīng)20 kHz 的PWM 波,為了防止PID 計(jì)算出現(xiàn)發(fā)散的情況,PID 控制器每完成一次計(jì)算后均需要進(jìn)行鎖存,等待下一個(gè)PWM 到來時(shí)再次被喚醒。因此在PID 控制器設(shè)計(jì)中需要添加狀態(tài)機(jī)機(jī)制,其工作流程如圖8 所示。設(shè)置初始化狀態(tài)、誤差計(jì)算、MULT、ADD、限幅、輸出數(shù)據(jù),如式(2)增量式PID 所示,在初始狀態(tài)下配置PID 控制系數(shù);誤差計(jì)算狀態(tài)下更新e(k)、e(k-1)、e(k-2)。MULT 狀態(tài)下完成PID 控制系數(shù)與信號乘法計(jì)算;ADD 狀態(tài)下更新PID 控制輸出增u(k);最后為了保護(hù)電機(jī),需要對PID 控制輸出信號進(jìn)行限幅。
圖8 PID 狀態(tài)機(jī)工作流程
通過JTAG 接口將Quartus 中的程序下載到FPGA 芯片中,以階躍信號做目標(biāo)指令,啟動有限轉(zhuǎn)角電機(jī),并通過串口發(fā)動電子轉(zhuǎn)子位置數(shù)據(jù),通過MATLAB 繪制出如圖9 所示電機(jī)位置響應(yīng)圖。為了進(jìn)行對比分析,實(shí)驗(yàn)中還搭建起了另一套ARM cortex_M4 處理器的有限轉(zhuǎn)角電機(jī)控制器,其設(shè)計(jì)同樣采用位置環(huán)、速度環(huán)、電流環(huán)的三閉環(huán)控制方式。給定同等指令信號,經(jīng)MATLAB 得到圖10 所示電機(jī)位置響應(yīng)圖。
圖9 FPGA 控制器響應(yīng)測試結(jié)果圖
圖10 MCU 控制器響應(yīng)測試結(jié)果圖
可見,采用基于FPGA 的控制器時(shí),電機(jī)轉(zhuǎn)子到達(dá)目標(biāo)角度調(diào)整時(shí)間為0.211s,超調(diào)量0.6°;采用基于MCU 的控制器時(shí),電機(jī)轉(zhuǎn)子到達(dá)目標(biāo)角度調(diào)整時(shí)間為0.242s,超調(diào)量為1.2°。對比之下,在目標(biāo)角度為10°時(shí),基于FPGA 的控制器超調(diào)量減少了0.7°,調(diào)整時(shí)間縮短了0.021s。說明結(jié)合FPGA 強(qiáng)大的數(shù)據(jù)處理能力,能夠提前計(jì)算出PID 控制輸出值,同時(shí)增加的限幅模塊使得PID 控制輸出值得到了一定程度的限制,使得最終超調(diào)量也有一定減少。
所設(shè)計(jì)的基于FPGA 的有限轉(zhuǎn)角電機(jī)控制器,仍采用位置環(huán)、速度環(huán)、電流環(huán)三閉環(huán)控制方式,能夠根據(jù)給定目標(biāo)位置指令和電機(jī)實(shí)時(shí)轉(zhuǎn)子位置、轉(zhuǎn)子角速度、母線電流控制電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速,使其達(dá)到或者停留在目標(biāo)角度上。相較基于MCU 端的控制器而言,基于FPGA 的設(shè)計(jì)超調(diào)量更小、響應(yīng)速度更快,也更利于控制器的微型化、二次開發(fā)和平臺移植。本設(shè)計(jì)已實(shí)際應(yīng)用到發(fā)動機(jī)燃油閥控制系統(tǒng)中,與傳統(tǒng)MCU 端控制器相比,其對燃油閥系統(tǒng)的控制效果有了較為明顯的提升。