基于STM32的直流電機(jī)PID調(diào)速系統(tǒng)設(shè)計與實現(xiàn)
直流調(diào)速系統(tǒng)廣泛應(yīng)用于低轉(zhuǎn)速、高精度等各領(lǐng)域,如精密辦公設(shè)備(噴墨打印機(jī)、激光打印機(jī)),自動售貨機(jī),家用電器、機(jī)器人和玩具設(shè)備等。其發(fā)展得力于微電子技術(shù)、電力電子技術(shù)、傳感器技術(shù)、永磁材料技術(shù)、自動控制技術(shù)和微機(jī)應(yīng)用技術(shù)的最新發(fā)展成就。順應(yīng)調(diào)速系統(tǒng)智能化、簡單化的發(fā)展趨勢,本設(shè)計采用一款性價比高、功耗低的基于ARMCortex?M3內(nèi)核的STM32單片機(jī)為控制核心,結(jié)合PID控制技術(shù),實現(xiàn)了直流電機(jī)范圍大、精度高的調(diào)速性能。
1、系統(tǒng)的總體設(shè)計
該調(diào)速系統(tǒng)能夠?qū)崿F(xiàn)對電機(jī)的啟動、制動、正反轉(zhuǎn)調(diào)速、測速和數(shù)據(jù)上傳等功能,可方便地實現(xiàn)直流電機(jī)的四象限運行。本系統(tǒng)的性能指標(biāo)為:調(diào)速精度高達(dá)到1r/min;調(diào)速穩(wěn)態(tài)誤差不超過0.5%;調(diào)速范圍為-500~500r/min;串口指令控制方式;驅(qū)動電路導(dǎo)通阻抗低,能耗少;運行穩(wěn)定可靠。系統(tǒng)由電源、上位機(jī)、通信接口、控制電路、電機(jī)驅(qū)動電路、電機(jī)與負(fù)載和測速裝置等模塊組成,結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
2、硬件設(shè)計
2.1、控制電路設(shè)計
控制電路負(fù)責(zé)接收控制指令,并產(chǎn)生相應(yīng)的控制信號,同時返回電機(jī)速度數(shù)據(jù)和電機(jī)運行狀態(tài)數(shù)據(jù)等。為了保證電路工作穩(wěn)定可靠,控制電路應(yīng)具有較高的運行速度、高度可靠的穩(wěn)定性能、開發(fā)容易、高性價比,產(chǎn)生的PWM控制信號應(yīng)具有死區(qū)延時、互補輸出、緊急剎車等功能。STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的ARMCortex?M3內(nèi)核,本系統(tǒng)采用STM32F103作為核心控制器??刂齐娐芬許TM32F103為核心的最小系統(tǒng)包括STM32主芯片、時鐘電路、復(fù)位電路、UART?USB轉(zhuǎn)換電路、JTAG調(diào)試接口電路、電源等,其原理圖如圖2所示。
圖2 以STM32F103為核心的控制電路原理圖
2.2、驅(qū)動電路設(shè)計
根據(jù)系統(tǒng)正反轉(zhuǎn)的控制要求,采用H橋驅(qū)動電路,由MOS管構(gòu)成的H橋驅(qū)動電路原理圖如圖3所示。
圖3 由MOS管構(gòu)成的H橋驅(qū)動電路原理圖
MOSFET是電壓控制型器件,具有開關(guān)速度快、輸入阻抗高、驅(qū)動方便等優(yōu)點[5]。本系統(tǒng)采用IRF9630和IRF630對管,組成H橋,上橋臂均使用PMOS,下橋臂均使用NMOS,兩種MOS管基本特性如表1所示。
表1H橋MOSFET主要參數(shù)表
控制電路的輸出信號為DC3.3V信號,需要與驅(qū)動電路隔離,采用了LTV352光電耦合隔離器?;パaPWM輸入信號經(jīng)過光耦隔離作用到MOSFET柵極,從而控制OUTA,OUTB之間的電壓。MOSFET中G,S兩極之間使用了雙向TVS管抑制瞬態(tài)電壓,防止MOSFET損壞。由于采用了PMOS,NMOS對管電路,MOSFET柵極電壓是由輸入電壓進(jìn)行分壓得到,因此不需要采用額外的高電壓信號源。
互補PWM輸入信號中,PWMA控制V1,V4橋臂,PWMB信號控制V2,V3橋臂。當(dāng)占空比為50%的PWM輸入信號時,OUTA,OUTB之間輸出電壓是0V,電機(jī)處于停止?fàn)顟B(tài)時,由于電機(jī)電樞中仍存在高頻微震電流,從而消除了正反向轉(zhuǎn)動時的靜摩擦死區(qū),起著動力潤滑作用。
2.3、速度反饋裝置設(shè)計
本系統(tǒng)采用高達(dá)888線AB相光電編碼器,兩相脈沖相差90°,通過測量某相的周期T可以得到電機(jī)運行速度,通過測量兩相的上升沿時刻可以得到電機(jī)運行方向。
3、系統(tǒng)軟件設(shè)計
系統(tǒng)的軟件設(shè)計主要完成硬件和數(shù)據(jù)初始化功能,然后進(jìn)入標(biāo)志位循環(huán)掃描狀態(tài),一旦中斷發(fā)生便處理中斷程序,在中斷程序中有相關(guān)標(biāo)志位置位(包括上位機(jī)發(fā)送來的、通信異常處理、電機(jī)停轉(zhuǎn)處理),有則處理,無則繼續(xù)進(jìn)行中斷等待。系統(tǒng)軟件主程序流程如圖4所示。
圖4 主程序流程圖
中斷源分為USART中斷、PWM剎車中斷、EXTI、TIMER中斷。
USART中斷是由于與上位機(jī)的數(shù)據(jù)交換過程中產(chǎn)生的,在中斷程序中需要對接收到的數(shù)據(jù)包進(jìn)行解析,并更新通信超時計數(shù)器。
PWM剎車中斷是由于PWM剎車輸入信號產(chǎn)生的,代表電機(jī)控制現(xiàn)場產(chǎn)生了緊急停車的請求。
EXTI中斷由AB相編碼器產(chǎn)生的光電編碼脈沖產(chǎn)生,需要在中斷服務(wù)歷程中計算電機(jī)運行速度和方向,同時更新測速超時計數(shù)器。
TIMER中斷為1ms定時中斷,這個中斷源的存在是為了系統(tǒng)通信超時檢測、電機(jī)停轉(zhuǎn)檢測使用,在中斷中需要對通信超時計數(shù)器和測速超時計數(shù)器進(jìn)行自減處理,如果到零則發(fā)出響應(yīng)信號通知系統(tǒng)。
由于中斷源的多樣性,STM32自帶有可嵌套的中斷向量控制器(NVIC),因此中斷處理程序?qū)嶋H上是相互獨立的。
3.1、PID算法設(shè)計
PID控制器將給定轉(zhuǎn)速和反饋測得轉(zhuǎn)速相比較后,經(jīng)計算得出一個輸出信號,將此輸出信號量化為PWM的占空比,最終作用在電機(jī)的驅(qū)動電路上來控制電機(jī)。本系統(tǒng)中采用增量式PID算法[9?10],增量式數(shù)字PID表達(dá)式為:
KP為比例系數(shù);TI為積分項積分時間常數(shù);TD為微分時間常數(shù)。由上式可以得出增量式PID算法程序如下:
#defineKP0.15
#defineTI0.95
#defineTD0
#defineT0.001
#defineEMIN0.01
#defineA(KP*(1+T/TI+TD/T))
#defineB(KP*(1+2*TD/T))
#defineC(KP*TD/T)
floatPIDCompute(floatr,floaty)
{staticfloate0=0.0;
staticfloate1=0.0;
floate=0.0;
floatdelta;
e=r-y;
delta=A*e-B*e1+C*e0;
e0=e1;
e1=e;
returndelta;}
3.2、測速軟件設(shè)計
測速軟件需要完成測量電機(jī)轉(zhuǎn)速與測量電機(jī)運行方向兩部分內(nèi)容。光電測速編碼器輸出的888線AB相脈沖分別連接到STM32的PA0,PA1上。
測速在STM32上的編程實現(xiàn)過程如下:
(1)配置EXTI1上升沿、下降沿均觸發(fā)中斷;
(2)配置端口與TIM2,TIM3;
(3)開啟中斷;
(4)EXTI中斷程序中讀取TIM2CNT中的數(shù)據(jù)并記錄,清空TIM2CNT寄存器中的數(shù)據(jù)并重新啟動計數(shù);
(5)根據(jù)記錄的數(shù)據(jù)進(jìn)行瞬時速度計算;
(6)當(dāng)若干個時基中斷發(fā)生且期間無測速中斷請求則宣告電機(jī)轉(zhuǎn)速為0。
將A相信號輸入至PA0(EXTI0)之上,編程使得EXTI0上升沿中斷。在中斷例程里讀取B相信號,根據(jù)AB相脈沖時序可以判斷電機(jī)轉(zhuǎn)動方向,即B=1,電機(jī)反轉(zhuǎn);B=0,電機(jī)正轉(zhuǎn)。
4、系統(tǒng)驗證
本系統(tǒng)經(jīng)過原理圖和PCB設(shè)計、焊接制板、硬件測試、模塊程序編寫、模塊程序功能測試、連接各個子模塊程序、PID參數(shù)整定,最后通過反復(fù)的調(diào)試,系統(tǒng)完全滿足預(yù)期要求,能夠?qū)崿F(xiàn)-500~500r/min之間任意速度控制(以順時針方向為正方向),控制精度達(dá)1r/min,穩(wěn)態(tài)誤差不超過0.5%。在正常工作環(huán)境下,電機(jī)空載運行時,此時系統(tǒng)測試參數(shù)見表2,上位機(jī)界面如圖5所示。
圖5 上位機(jī)界面
表2 系統(tǒng)特性參數(shù)表
5、結(jié)論
本文設(shè)計了一種基于ARMCortex?M3內(nèi)核的STM32微控制器的直流電機(jī)PID調(diào)速系統(tǒng)。實驗結(jié)果表明,該系統(tǒng)具有穩(wěn)態(tài)誤差小,控制精度高,響應(yīng)速度快,能耗低、效率高等優(yōu)點,對上肢康復(fù)機(jī)器人的研究具有一定的借鑒價值。