孫 虎,梁 偉,趙 麒,周 驊
(1.貴州大學大數(shù)據(jù)與信息工程學院,貴陽550000;2.貴州民族大學機械電子學院,貴陽550000)
無刷電機具有調(diào)速范圍廣、低電壓特性好、啟動轉(zhuǎn)矩大(堵轉(zhuǎn)特性)等優(yōu)點,在工業(yè)領(lǐng)域已有廣泛應用。研究直流無刷電機控制技術(shù),設(shè)計直流無刷控制器在工業(yè)領(lǐng)域有極高的應用價值。直流無刷電機硬件上通常采用三相逆變電路,軟件上配合脈沖寬度調(diào)制實現(xiàn)。根據(jù)直流無刷電機的原理及特點,在此設(shè)計一種基于ARM Cortex-M4 處理器的有感無刷電機控制器,主要介紹硬件電路組成、系統(tǒng)軟件實現(xiàn),并結(jié)合PID 閉環(huán)控制算法提高控制系統(tǒng)的動態(tài)性能。
直流無刷電機主要由定子和轉(zhuǎn)子組成,其電樞繞組固定于定子,轉(zhuǎn)子為永磁體。根據(jù)電流的磁效應,只需給定子的電樞線圈通電便可產(chǎn)生磁場,使轉(zhuǎn)子朝磁場方向運動。三相逆變電路導通U+、U-、V+、V-、W+、W-六線中不同相的兩線,即可驅(qū)動電機旋轉(zhuǎn)π/3 rad[1]。由于電機重啟時轉(zhuǎn)子位置未知,因此驅(qū)動前還需判斷電機轉(zhuǎn)子位置,然后預先配置橋臂的通斷。BLDCM 內(nèi)部集成有三個霍爾傳感器,電機連續(xù)旋轉(zhuǎn)時,霍爾值會按照001→101→100→110→010→011 的規(guī)律變化,根據(jù)霍爾值的改變控制MOS管通斷順序,便可使電機連續(xù)轉(zhuǎn)動。
設(shè)計采用6 步方波驅(qū)動,用霍爾傳感器的輸出電平獲取轉(zhuǎn)子位置,配合微處理器的高頻特性快速進行六步換相,驅(qū)動電機旋轉(zhuǎn)。STM32F407 高級定時器可產(chǎn)生六路互補PWM 輸出,內(nèi)部實現(xiàn)了編碼器接口和霍爾傳感器接口。外圍擴展電路包括三相逆變電路、霍爾接口電路、編碼器電路等[2]。系統(tǒng)用編碼器對電機進行位置定位,利用它的反饋信號實現(xiàn)PID 位置環(huán)[3]。同時采集周期內(nèi)霍爾傳感器換相次數(shù),實現(xiàn)PID 速度環(huán)。系統(tǒng)總體方案如圖1 所示。
圖1 系統(tǒng)總體方案設(shè)計
BLDC 驅(qū)動電路由逆變電路和IRFS3607 功率場效應管組成,電路如圖2 所示。微控制器輸出的PWM 信號經(jīng)過TLP715 高速光耦進行信號隔離及升壓,確保主控制芯片不受電機高壓影響。微處理器輸出電壓為3.3 V 低壓,使其經(jīng)過IR2110S 芯片轉(zhuǎn)換輸出為15 V 作為IRFS3607 的輸入。IR2110S 芯片具有芯片失能引腳,配合STM32 微控制器死區(qū)插入功能,用于緊急情況保護。
BLDCM 自帶有三個霍爾傳感器,采用STM32 輸入捕獲對霍爾傳感器進行采集,根據(jù)霍爾值確定轉(zhuǎn)子位置,并以此位置為反饋作為主控制器3 對互補PWM 輸出的依據(jù)?;魻栁恢脵z測電路如圖3 所示。CN1 為主控制器和霍爾傳感器的連接接口,采用上拉電阻 R10、R11、R12 和電容 C5、C6、C7 做濾波處理,減免信號干擾[4]。HALL-W、HALL-V、HALL-U 為霍爾信號采集接口。
圖2 BLDC 驅(qū)動電路設(shè)計
圖3 霍爾位置檢測電路
為保證電機旋轉(zhuǎn)的位置精度及實現(xiàn)PID 位置閉環(huán)控制,設(shè)計了編碼器接口。STM32 定時器內(nèi)部設(shè)計的編碼器模式可以自動實現(xiàn)信號濾波,保證編碼器輸出脈沖信號精確性。編碼器檢測電路如圖4所示。圖中,ENCODER1、ENCODER2 為一對編碼器輸入,編碼器每旋轉(zhuǎn)一圈,主控制器會捕獲到相應的脈沖數(shù)。
圖4 編碼器檢測電路
PID 閉環(huán)控制器由比例單元P、積分單元I 和微分單元D 組成。閉環(huán)控制是指將控制量信息經(jīng)過PID 控制器處理后反饋給主控制器并改變實際輸出,實現(xiàn)執(zhí)行機構(gòu)的自適應調(diào)節(jié)[5]。PID 控制原理框圖如圖5 所示。
圖5 PID 控制原理圖
PID 控制算法的輸出與系統(tǒng)的過去狀態(tài)相關(guān),有利于提高系統(tǒng)的動態(tài)特性[6]。系統(tǒng)采用PID 位置速度雙閉環(huán)控制,由位置環(huán)提高電機行駛中的位置精度,速度環(huán)增強電機抗負載擾動的能力。使用軟件編程實現(xiàn)的PID 控制器靈活性高且便于修正。PID 雙閉環(huán)控制流程如圖6 所示。
圖6 PID 雙環(huán)控制原理框圖
位置檢測采用編碼器。STM32 通過定時器,把編碼器輸出脈沖所捕獲的位置信息與位置環(huán)的給定值做比較,產(chǎn)生位置環(huán)輸出即速度環(huán)設(shè)定。速度值通過霍爾傳感器在固定周期內(nèi)的脈沖數(shù)差計算獲得并使用滑動濾波函數(shù)進行濾波處理。經(jīng)過PID速度控制器計算后,控制PWM 占空比改變電機旋轉(zhuǎn)速度。系統(tǒng)設(shè)計中,周期定時器50 ms 中斷一次,有效避免了頻繁調(diào)節(jié)引起的系統(tǒng)抖動。PID 控制器中若位置環(huán)輸出和速度環(huán)輸出均小于設(shè)定值,則不進行計算調(diào)節(jié),避免系統(tǒng)振蕩。
軟件采用Keil μVision5 開發(fā)平臺設(shè)計,包括外設(shè)初始化、六步換相、中斷處理程序等。用C 語言編寫實現(xiàn)PID 控制器,實現(xiàn)位置反饋和速度反饋雙閉環(huán)控制。系統(tǒng)軟件主要由main 函數(shù)和ISR 函數(shù)組成。系統(tǒng)軟件流程如圖7 所示。
主函數(shù)為整個系統(tǒng)軟件的入口,主要實現(xiàn)外設(shè)、通用I/O 口、中斷優(yōu)先級分組、定時器基本配置以及PID 參數(shù)的初始化。主函數(shù)按照順序語句執(zhí)行,遇見中斷程序優(yōu)先處理中斷程序, 中斷程序執(zhí)行完后再返回至主函數(shù)中。
圖7 系統(tǒng)軟件開發(fā)流程圖
中斷服務(wù)函數(shù)實現(xiàn)了BLDCM 主要控制功能,包括換向邏輯查詢、位置反饋調(diào)節(jié)、速度反饋調(diào)節(jié)、編碼器捕獲等[7]。設(shè)計采用H-PWM-L-ON 模式驅(qū)動逆變電路,并插入了死區(qū)時間,保證同相上下橋臂不會同時導通。定時器4 配置采用霍爾接口模式,三個霍爾傳感器任意值發(fā)生變化都會觸發(fā)高級定時器COM 事件中斷,在此中斷服務(wù)函數(shù)中進行換相處理[8]。周期定時器中斷主要用于記錄固定周期內(nèi)霍爾脈沖數(shù)的變化獲取速度值。PID 位置速度雙閉環(huán)控制算法驅(qū)動電機根據(jù)編碼器反饋的位置信息自動調(diào)節(jié)轉(zhuǎn)速。
采用STLink 將軟件代碼下載到主控制器中,設(shè)置電機目標位置為50 mm,目標速度為7 mm/s,啟動電機并通過串口發(fā)送位置和轉(zhuǎn)速數(shù)據(jù),通過MATLAB繪制動態(tài)響應曲線[9-11]。位置閉環(huán)控制曲線如圖8所示,PID 位置速度雙閉環(huán)控制曲線如圖9 所示。
圖8 位置環(huán)PID 控制圖
圖9 速度環(huán)位置環(huán)PID 雙閉環(huán)控制
由數(shù)據(jù)曲線分析可得,相較于位置環(huán)控制,位置速度雙閉環(huán)控制的速度變換率更加平緩,可以根據(jù)編碼器反饋信息調(diào)節(jié)最佳行駛速度,避免由于速度過大引起的電機震動,保證系統(tǒng)的穩(wěn)定性。雙閉環(huán)控制輸出速度與目標速度誤差小至0.11, 遠低于位置環(huán)單環(huán)控制時的誤差0.65。
介紹了基于STM32F407IGT6 主控芯片設(shè)計的有感直流無刷電機PID 雙閉環(huán)系統(tǒng),采用位置環(huán)和速度環(huán)雙閉環(huán)控制的策略,根據(jù)電機行駛的目標距離自動調(diào)節(jié)在某一特定位置的旋轉(zhuǎn)速度,實現(xiàn)電機的加減速運動。相較于傳統(tǒng)的加減速算法和PID 單環(huán)控制,PID 雙閉環(huán)控制具有系統(tǒng)運行穩(wěn)定,響應速度快,電機位置精確度高,速度變化率平緩,超調(diào)量小等優(yōu)點。設(shè)計已應用到軌道式巡檢機器人控制系統(tǒng)中,獲得了良好的實用效果。