標(biāo)題:
STM32編碼器模式實(shí)現(xiàn)直流電機(jī)正反轉(zhuǎn)反饋控制思路[原創(chuàng)]
[打印本頁(yè)]
作者:
Carose
時(shí)間:
2021-6-20 20:57
標(biāo)題:
STM32編碼器模式實(shí)現(xiàn)直流電機(jī)正反轉(zhuǎn)反饋控制思路[原創(chuàng)]
近日寫了一篇關(guān)于直流電機(jī)正反轉(zhuǎn)反饋控制的小文章。從硬件設(shè)計(jì)到軟件設(shè)計(jì)到實(shí)際驗(yàn)證。花了很多心血,感覺(jué)論壇氛圍還不錯(cuò)打算放出來(lái)。大概內(nèi)容寫的是利用STM32的編碼器模式實(shí)現(xiàn)了簡(jiǎn)易的反饋調(diào)節(jié)。由于用到了從其他CSDN博主里的代碼,具體有哪些人不太記得了,沒(méi)法一一聯(lián)系授權(quán),所以就不把源碼放出來(lái)以教程的形式呈現(xiàn)出來(lái),記得的參考文章以參考文獻(xiàn)的形式列了出來(lái)。詳細(xì)請(qǐng)看PDF文件(如果不想下,不介意沒(méi)有圖片可以直接看)
/********************************分割線*************************************/
2021 年5 月31 日
直流電機(jī)正反轉(zhuǎn)反饋控制
摘 要: 直流電機(jī)有著廣泛的應(yīng)用,大到農(nóng)業(yè)機(jī)械化、工業(yè)、自動(dòng)化行業(yè),小到各類家具、自動(dòng)控制裝置都能見到它的身影。本文將采用STM32進(jìn)行直流電機(jī)的控制研究,并進(jìn)一步利用STM32的編碼器模式進(jìn)行反饋控制,實(shí)現(xiàn)電機(jī)的定時(shí)正反轉(zhuǎn)以及速度控制,并加入簡(jiǎn)易的反饋使電機(jī)具有更強(qiáng)的環(huán)境適應(yīng)性。
一、問(wèn)題回顧及簡(jiǎn)要分析
本課題所要解決的問(wèn)題在于,利用STM32實(shí)現(xiàn)直流電機(jī)的定時(shí)正反轉(zhuǎn)控制。為了使電機(jī)有更好的環(huán)境適應(yīng)性,本文進(jìn)一步提出了簡(jiǎn)易的反饋控制,在電機(jī)轉(zhuǎn)動(dòng)受到一定程度的阻礙時(shí),會(huì)加大轉(zhuǎn)速,以模擬電機(jī)驅(qū)動(dòng)的車輛在路面受阻時(shí)的加速越野功能。
若要使用單片機(jī)驅(qū)動(dòng)直流電機(jī),首先應(yīng)該解決電源問(wèn)題。目前,大多數(shù)單片機(jī)的電源為5V或3.3V,本課題采用的STM32電源為3.3V,所用直流電機(jī)額定電壓12V,并附帶額定電壓5V的磁感應(yīng)霍爾編碼器,故考慮采用12V干電池驅(qū)動(dòng),并配合DC-DC芯片MP1584、LM1117_3.3獲取5V、3.3V電壓用于驅(qū)動(dòng)編碼器和主控芯片。
同時(shí),為了實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)定時(shí)控制及速度控制,本課題考慮采用STM32的定時(shí)器實(shí)現(xiàn)定時(shí)控制功能,并采用A4950單H橋芯片并對(duì)其輸入兩路PWM實(shí)現(xiàn)正反轉(zhuǎn)控制。
二、所用器件清單及簡(jiǎn)介
本課題采用的器件有:STM32F103最小系統(tǒng)板*1、MP1584穩(wěn)壓芯片*1、LM1117_3.3穩(wěn)壓芯片*1、MG513P20_12V直流減速電機(jī)*1(帶霍爾編碼器)、A4950驅(qū)動(dòng)芯片*1、SS34肖特基二極管*2、SI4435MOS管*1、LED發(fā)光二極管*1、機(jī)械開關(guān)*1、電容電阻電感若干、12V干電池*1。
STM32F103為意法半導(dǎo)體的中低端32位ARM微控制器,本文采用的CPU為STM32F103RCT6,具有高達(dá)72MHz的晶振頻率,256K的FLASH容量,8個(gè)定時(shí)器以及PWM輸出功能,其定時(shí)器具有編碼器模式實(shí)現(xiàn)編碼器輸出脈沖數(shù)的精確計(jì)算。
MP1584穩(wěn)壓芯片可以實(shí)現(xiàn)12V轉(zhuǎn)5V穩(wěn)定電壓輸出對(duì)編碼器供電,LM1117_3.3可以實(shí)現(xiàn)3.3V電壓穩(wěn)定輸出以對(duì)主控芯片供電。
MG513P20直流電機(jī)帶有霍爾編碼器,霍爾編碼器線數(shù)為390ppr,線數(shù)代表了電機(jī)每轉(zhuǎn)動(dòng)一圈編碼器輸出的脈沖數(shù)。
A4950驅(qū)動(dòng)芯片是美國(guó)愛格羅公司生產(chǎn)的一款單H橋電擊驅(qū)動(dòng)芯片,可驅(qū)動(dòng)8-40V的電機(jī),最大輸出電流3.5A。本課題用此芯片實(shí)現(xiàn)利用主控芯片的PWM輸出控制直流電機(jī)正反轉(zhuǎn)以及轉(zhuǎn)速控制的作用。
其余二極管、MOS管、發(fā)光管以及電阻電感電容用于組成經(jīng)典電路并實(shí)現(xiàn)電路的保護(hù)及電源提示的功能,在此不予贅述。
三、硬件系統(tǒng)設(shè)計(jì)
直流電機(jī)控制的硬件設(shè)計(jì)如下:
圖3.1 直流電機(jī)控制硬件設(shè)計(jì)
電源模塊經(jīng)兩級(jí)降壓得到5V、3.3V電源后驅(qū)動(dòng)主控芯片及直流電機(jī),主控芯片通過(guò)定時(shí)器控制PWM輸出實(shí)現(xiàn)對(duì)電機(jī)的正反轉(zhuǎn)指定轉(zhuǎn)速控制,直流電機(jī)工作時(shí)利用霍爾編碼器通過(guò)脈沖形式反饋當(dāng)前轉(zhuǎn)速到主控芯片。
3.1 電源模塊
結(jié)合兩塊穩(wěn)壓芯片的參考手冊(cè)附帶的經(jīng)典電路[1][2],本課題提出了下述電源系統(tǒng)設(shè)計(jì):
如圖3.2為電源系統(tǒng)部分的設(shè)計(jì)。電源系統(tǒng)采用了兩級(jí)降壓的方式分出5V、3.3V為系統(tǒng)常用硬件部分供電。使用時(shí),于J1處插入12V干電池,K1閉合后,MOS管導(dǎo)通MP1584開始工作,5V電壓由SW端輸出,為了避免電壓輸出的尖峰脈沖,D11應(yīng)盡可能靠近SW引腳。LM1117_3.3輸出3.3V電壓為主控芯片供電。此時(shí),LD2被點(diǎn)亮,表示電源已接通。
3.2 直流電機(jī)驅(qū)動(dòng)
直流電機(jī)部分,本課題采用了單H橋的A4950芯片驅(qū)動(dòng)電機(jī)。根據(jù)芯片手冊(cè)的經(jīng)典電路,本課題電機(jī)驅(qū)動(dòng)部分設(shè)計(jì)如下:
圖3.3 電機(jī)驅(qū)動(dòng)部分電路
其中,IN1、IN2為H橋邏輯輸入端,VREF為參考電壓,一般接5V,此處接6V。VBB為電機(jī)驅(qū)動(dòng)電壓12V,J4處接直流電機(jī)。主控芯片對(duì)PB6、PB7進(jìn)行PWM輸出,實(shí)現(xiàn)對(duì)電機(jī)的控制。
根據(jù)文獻(xiàn)[3],IN1、IN2邏輯控制表如下:
若不要求速度控制,IN1為1,IN2為0時(shí),電機(jī)正轉(zhuǎn);IN1為0,IN2為1時(shí),電機(jī)反轉(zhuǎn),此時(shí)電機(jī)處于全速工作狀態(tài)。進(jìn)一步的,借助PWM可以實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的控制:
此時(shí),電壓的平均值決定了電機(jī)轉(zhuǎn)速的大小,對(duì)應(yīng)地,即PWM的占空比決定了電機(jī)的轉(zhuǎn)速大小,占空比越大,轉(zhuǎn)速越快。一般而言PWM頻率選擇5k-20kHz,本文以9kHz輸出為例。
在此,硬件系統(tǒng)實(shí)現(xiàn)了對(duì)編碼器、電機(jī)、主控芯片的供電,并提供了軟件控制電機(jī)正反轉(zhuǎn)的思路。
四、軟件系統(tǒng)設(shè)計(jì)
為了實(shí)現(xiàn)對(duì)直流電機(jī)的閉環(huán)控制,本文參考PID控制法的思路簡(jiǎn)要設(shè)計(jì)了一種實(shí)時(shí)反饋的直流電機(jī)控制方法。將PA0、PA1接入電機(jī)編碼器的A、B相,利用STM32自帶的編碼器模式進(jìn)行脈沖計(jì)數(shù)得出轉(zhuǎn)速。
在主函數(shù)中,芯片執(zhí)行完初始化相關(guān)程序后于while(1)死循環(huán)中改變轉(zhuǎn)動(dòng)方向。在轉(zhuǎn)速保持階段,利用串口向上位機(jī)發(fā)送轉(zhuǎn)速信息,此處的上位機(jī)為個(gè)人PC,通過(guò)可視化串口調(diào)試軟件Minibalance觀察轉(zhuǎn)速關(guān)于時(shí)間的波形,以便于進(jìn)行相關(guān)參數(shù)的調(diào)節(jié)。
中斷程序方面,本文將TIM6作為10ms的中斷周期改變電機(jī)轉(zhuǎn)速。程序根據(jù)設(shè)定的轉(zhuǎn)速輸出相應(yīng)的PWM值后,主控芯片根據(jù)編碼器反饋的差值計(jì)算出當(dāng)前電機(jī)轉(zhuǎn)速,并與設(shè)定的轉(zhuǎn)速對(duì)比,實(shí)時(shí)調(diào)整PWM輸出值。
STM32定時(shí)器具有編碼器接口模式,是定時(shí)器的一種高級(jí)應(yīng)用,其具體初始化配置見附錄及文獻(xiàn)[4],在此不予贅述,僅介紹其大致原理。在編碼器模式下,計(jì)數(shù)器依照增量編碼器的速度和方向被自動(dòng)修改,計(jì)數(shù)器內(nèi)容始終指示著編碼器的方向。其計(jì)數(shù)方向與編碼器信號(hào)的關(guān)系如下:
本程序?qū)⒁栽赥I1、TI2上計(jì)數(shù)為例,該模式常被稱為編碼器模式3。霍夫編碼器在輸出時(shí),AB相的脈沖相位差為90°,
根據(jù)表格可以計(jì)算出,編碼器每一個(gè)脈沖,編碼器計(jì)4個(gè)數(shù)。其向上向下的計(jì)數(shù)邏輯使編碼器計(jì)數(shù)對(duì)毛刺的抗干擾能力非常強(qiáng):
給定上圖波形下,若某一相出現(xiàn)了毛刺,如第二個(gè)脈沖以后TI1處出現(xiàn)毛刺,此時(shí)TI2保持,可以認(rèn)為此時(shí)電機(jī)處于停轉(zhuǎn)狀態(tài),而編碼器的值基本不變,毛刺所引起的計(jì)數(shù)誤差最多僅為1。因此可以認(rèn)為,STM32編碼器接口模式讀取的值相當(dāng)可靠。
反饋控制方面,本文借鑒了PID控制法的思想,輸出的PWM值與當(dāng)前誤差、歷史總誤差、當(dāng)前誤差與上一次誤差的差值各乘以固定系數(shù)后得出。三個(gè)系數(shù)記為變量_p、_i、_d并參考文獻(xiàn)[5]、文獻(xiàn)[6]、文獻(xiàn)[7]所給出的方法進(jìn)行調(diào)試得出。即先調(diào)_p觀察轉(zhuǎn)速輸出波形,使之在給定值的60%-70%間波動(dòng),然后適當(dāng)給出_i值,所得波形有一個(gè)適度的上沖(約為給定值1/4)后迅速收斂。_d則可以適當(dāng)給定,但不宜過(guò)大,否則波形容易出現(xiàn)高頻振蕩。
五、實(shí)際測(cè)試結(jié)果
經(jīng)調(diào)試,所得的_p、_i、_d參數(shù)為9、1.1、0.1。
運(yùn)行過(guò)程如圖5.1,圖5.2所示。圖5.1電機(jī)正轉(zhuǎn),白色塑料滑片被滑到一側(cè),圖5.2電機(jī)反轉(zhuǎn),白色塑料滑片被滑到另一側(cè)。
圖5.1 電機(jī)正轉(zhuǎn)
圖5.2 電機(jī)反轉(zhuǎn)
使用Minibalance觀察編碼器計(jì)數(shù)計(jì)算后的轉(zhuǎn)速波形可以發(fā)現(xiàn),輸出的波形為方波,最大最小值的絕對(duì)值基本一致,說(shuō)明轉(zhuǎn)速比較穩(wěn)定。脈寬基本一致,說(shuō)明正反轉(zhuǎn)改變時(shí)間基本一致。
圖5.3 Minibalance輸出波形
六、總結(jié)
本文提出并驗(yàn)證了一套切實(shí)可行的直流電機(jī)正反轉(zhuǎn)控制方案,并利用A4950芯片及STM32的PWM輸出實(shí)現(xiàn)了轉(zhuǎn)速可調(diào)。算法方面參考了PID算法的思路利用STM32的編碼器模式設(shè)計(jì)了簡(jiǎn)易負(fù)反饋機(jī)制。使得該算法驅(qū)動(dòng)的輪式車輛有更強(qiáng)的環(huán)境適應(yīng)性。
參考文獻(xiàn)
[1] MP1584 數(shù)據(jù)手冊(cè)
[2] LM1117_3.3 數(shù)據(jù)手冊(cè)
[3] A4950 數(shù)據(jù)手冊(cè)
[4] STM32F10XX 參考手冊(cè)
[5] PID調(diào)節(jié)經(jīng)驗(yàn) - zyboy2000 - CSDN
https://blog.csdn.net/zyboy2000/article/details/9418257
[6] PID調(diào)參過(guò)程詳解(包括增量式和位移式)- MrT_WANG- CSDN
https://blog.csdn.net/wangweijun ... 9770?utm_source=app
[7] 基于直流電機(jī)調(diào)速平臺(tái)的PID參數(shù)整定心得 – JOY_Tech - CSDN
https://blog.csdn.net/Tech_JOY/a ... 3116?utm_source=app
/*****************************************************************************/
以上圖文下載(不含代碼):
直流電機(jī)反饋控制 - 副本.pdf
(734.79 KB, 下載次數(shù): 26)
2021-6-20 20:55 上傳
點(diǎn)擊文件名下載附件
文章下載點(diǎn)擊此處,未經(jīng)允許嚴(yán)禁倒賣復(fù)制轉(zhuǎn)載
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1