關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應用 > 一種基于STM32的PID直流電機控制系統(tǒng)

一種基于STM32的PID直流電機控制系統(tǒng)

作者:龔茂林,張鳳(國網(wǎng)四川省供電公司德陽供電公司,四川德陽 618000) 時間:2022-03-01 來源:電子產(chǎn)品世界 收藏
編者按:本文是以PID(比例、積分、微分)算法為核心,基于STM32控制芯片的直流電機控制系統(tǒng)研究,硬件模塊包括L298N電機驅(qū)動模塊、編碼器測速、PWM(脈沖寬度調(diào)制,Pulse Width Modulation)輸出等,軟件部分以Keil MDK(混合開發(fā)工具,Mix Development Kit)為開發(fā)環(huán)境,實現(xiàn)調(diào)速系統(tǒng)各子模塊功能,并對結(jié)果進行分析。此次研究搭建的系統(tǒng)實現(xiàn)使直流電機的穩(wěn)態(tài)誤差始終保持在0.49%以下,直流電機速度精度控制在95%以上。在額定轉(zhuǎn)速時,其穩(wěn)態(tài)誤差為0.25%。隨著設(shè)定電機轉(zhuǎn)速

摘 要:本文是以(比例、積分、微分)算法[2]為核心,基于控制芯片的直流電機控制系統(tǒng)研究,硬件模塊包括L298N電機驅(qū)動模塊、編碼器測速、(脈沖寬度調(diào)制,Pulse Width Modulation)輸出等,軟件部分以Keil MDK(混合開發(fā)工具,Mix Development Kit)為開發(fā)環(huán)境,實現(xiàn)調(diào)速系統(tǒng)各子模塊功能,并對結(jié)果進行分析。此次研究搭建的系統(tǒng)實現(xiàn)使直流電機的穩(wěn)態(tài)誤差始終保持在0.49%以下,直流電機速度精度控制在95%以上。在額定轉(zhuǎn)速時,其穩(wěn)態(tài)誤差為0.25%。隨著設(shè)定電機轉(zhuǎn)速增大,穩(wěn)態(tài)轉(zhuǎn)速的誤差率總體呈減小趨勢,實物系統(tǒng)有較好的穩(wěn)態(tài)性能和控制精度。

本文引用地址:http://butianyuan.cn/article/202203/431568.htm

關(guān)鍵詞;;

近年來,隨著微機控制技術(shù)、電力電子技術(shù)等迅速發(fā)展,直流電機因為其調(diào)速性能好、起動性能好,被廣泛應用在高精度、可調(diào)速的場合,如航天、工業(yè)自動化、數(shù)字化控制、工業(yè)機器人、醫(yī)療設(shè)備等。

1   增量式算法與位置式PID算法對比

PID 控制是指比例、積分、微分控制。將系統(tǒng)的輸出經(jīng)過比例、積分、微分三種運算后,疊加至輸入中,達到控制調(diào)速目的。由于其原理簡單、易于實現(xiàn)等優(yōu)點,被應用于多種領(lǐng)域。

1.1 位置式PID算法

位置式PID 算法的表達式為

image.png

其中Kp 為比例放大系數(shù),Ti 為積分時間常量,Td為微分時間常量。

位置式PID 算法是根據(jù)當前實際位置與要達到的預期位置的偏差,進行PID 控制。將每一次的誤差進行累加作為積分,其運算量大,每次輸出均與過去的狀態(tài)相關(guān),缺點是可能會引起大幅度超調(diào)。

1.2 增量式PID算法

增量式PID 算法的表達式為

1646119560686832.png

增量式PID 算法的控制量是對應的最近3 次的位置誤差的增量,只對當前誤差積分,運算量較小,沒有誤差累加。所以增量式PID 容易通過加權(quán)處理獲得比較好的控制效果,相較于位置式PID 算法,在程序?qū)崿F(xiàn)時更簡潔有效,運行時更加穩(wěn)定,運算速度更快。

1646119588252017.png

圖1 PID控制系統(tǒng)圖

2   硬件系統(tǒng)整體流程

此系統(tǒng)由單片機F103 輸出[1],同時接收編碼器計數(shù),經(jīng)處理達到控制調(diào)速目的,獨立鍵盤進行速度的增減,LCD(液晶顯示,liquid crystal display)模塊進行設(shè)定值和實時速度的顯示,選擇L298N 模塊作為直流電機驅(qū)動給電機供電。所有模塊形成一個完整的速度閉環(huán)系統(tǒng),能對直流電機快速精準調(diào)速。

1646119686926624.png

圖2 硬件系統(tǒng)整體流程圖

2.1 電機驅(qū)動模塊L298N

本文選用L298N 為驅(qū)動模塊,其電路中包含有兩個H 橋的高電壓大電流雙橋式驅(qū)動器。在使用中,STM32F103 配置的PWM 輸出引腳直接給該模塊提供變占空比的信號,方便控制。

其控制狀態(tài)表見表1。L298N 電機驅(qū)動模塊可以實現(xiàn)電機的調(diào)速與正反轉(zhuǎn),此次研究只使用其驅(qū)動一臺二相直流電機構(gòu)成閉環(huán)調(diào)速系統(tǒng),根據(jù)表1 配置IN1(輸入)與IN2,對使能端輸出PWM 脈沖,即可實現(xiàn)變占空比調(diào)速。

表1 L298N驅(qū)動直流電機狀態(tài)表

1646119775646817.png

2.2 編碼器測速模塊

編碼器為AB 相增量式霍爾編碼器,輸出標準的方波,STM32F103 自帶的編碼器模式可直接讀取脈沖信號,AB 相編碼器的A 相、B 相互相延遲四分之一周期輸出脈沖。如圖3 為編碼器的輸出波形,取A 相、B 相的上升沿和下降沿都作為脈沖,可以取得二倍頻或四倍頻。四倍頻采樣可提高系統(tǒng)運算時的精確性。通過每10 ms 讀取處理一次編碼器脈沖,可以測得電機速度和處理控制,此次使用四倍頻采樣,有提高系統(tǒng)運算精確性的優(yōu)勢。

image.png

圖3 編碼器輸出脈沖波形

2.3 PWM

配置脈沖計數(shù)器TIMx_CNT 為向上計數(shù)模式,而重載寄存器TIMx_ARR 被配置為ARR(自動重裝載寄存器),比較值為CCRx,在t 時刻對計數(shù)器值與比較值進行比較。如果此時計數(shù)器值小于CCRx 值,輸出低電平;如果此時計數(shù)器值大于CCRx 值,輸出高電平,從而調(diào)節(jié)占空比。

3   軟件整體流程

此次研究以Keil MDK 作為編譯開發(fā)環(huán)境,軟件部分的重點是PID 控制的處理。流程圖如圖4,主要包括主程序、PID 處理、外部中斷、定時中斷、PWM 的輸出和編碼器的脈沖計數(shù)。

image.png

圖4 調(diào)速系統(tǒng)軟件流程圖

3.1 調(diào)速系統(tǒng)主程序[3]

主程序包括對各模塊初始化和各常量、變量的聲明。包括中斷外部函數(shù)的初始化、定時中斷循環(huán)的初始化、獨立按鍵配置、編碼器配置初始化、顯示模塊初始化、PWM 配置初始化。初始化后觸發(fā)由定時器6 的定時中斷的循環(huán),每隔10 ms 對系統(tǒng)進行一次編碼器測速與PID 運算和PWM 的控制輸出。期間獨立按鍵可以觸發(fā)外部中斷對調(diào)速系統(tǒng)的設(shè)定速度值進行增加與減少。

定時中斷循環(huán)實現(xiàn)功能包括:編碼器脈沖讀取,脈沖數(shù)量轉(zhuǎn)化為速度顯示在LCD 屏幕,進行PID 運算,更新PWM 占空比。

3.2 PID算法處理與PWM輸出

PID 控制在系統(tǒng)中采用增量式PID 算法,經(jīng)調(diào)試其比例常數(shù)為0.5、積分常數(shù)為0.0025、微分常數(shù)為0。PID 模塊根據(jù)設(shè)定值與得到的編碼器脈沖值經(jīng)公式運算后返回增量值。PWM 的輸出由定時器1 實現(xiàn),指定PA8 作為PWM 輸出端子。在連接硬件時,需要連接兩個端子才能實現(xiàn)驅(qū)動,另一個端子起參考電位的作用。PWM 模塊根據(jù)得到的增量值更新PWM 占空比,從而實現(xiàn)實時、穩(wěn)定、精確地控制調(diào)速系統(tǒng)。

4   實驗數(shù)據(jù)及分析

實物系統(tǒng)主要包括STM32F103 開發(fā)板[7]、帶AB相霍爾式編碼器的直流電機、L298N 驅(qū)動模塊、STLINK、7.2 V 電源等。其中系統(tǒng)實物搭建圖如圖5。

1646120041662276.png

圖5 系統(tǒng)硬件搭建圖

經(jīng)過調(diào)試,在代碼調(diào)試中,按照先整定Kp 再整定Ti 的順序進行調(diào)整,最終得出在Kp = 0.5 和Ti = 200 時,系統(tǒng)的調(diào)速響應快,調(diào)速的范圍可達170 rpm~440 rpm(圈每分鐘)。通過基于STM32 的PID 直流電機控制系統(tǒng)對電機的輸出軸分別進行轉(zhuǎn)速設(shè)定[13],分別設(shè)定了190 rpm、220 rpm、250 rpm、280 rpm、310 rpm、340 rpm、370 rpm、400 rpm、410 rpm、420 rpm、430 rpm,實際測量結(jié)果如表2,數(shù)據(jù)進行了誤差計算。

表2 轉(zhuǎn)速數(shù)據(jù)采集及誤差計算

1646120127244928.png

由表2 可知,直流電機的穩(wěn)態(tài)誤差始終保持在0.49% 以下,其超調(diào)性很小。在額定轉(zhuǎn)速時,其穩(wěn)態(tài)誤差為0.25% 。隨著設(shè)定電機轉(zhuǎn)速增大,穩(wěn)態(tài)轉(zhuǎn)速的誤差率總體呈減小趨勢,實物系統(tǒng)有較好的穩(wěn)態(tài)性能和控制精度。

參考文獻

[1] 焦玉朋.基于51單片機的PWM系統(tǒng)[D].呼和浩特:內(nèi)蒙古大學,2013.

[2] 雷慧杰.基于STM32的直流電機PID調(diào)速系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2016,39(8):165-167,170.

[3] 司開波,黃健,呂林濤.基于STM32的新方法[J].宇航計測技術(shù),2018,38(02):87-91.

[4] 劉松斌,王海星,李碩恒.基于STM32的直流電機PWM調(diào)速系統(tǒng)[J].化工自動化及儀表,2016,43(8):834-837.

[5] 王國宇.基于STM32的無刷直流電機控制系統(tǒng)設(shè)計及仿真研究[D].桂林:廣西師范大學,2016.

[6] 張才勇,王庭有,李馳骎.基于單片機的直流電機調(diào)速控制[J].化工自動化及儀表,2019,46(11):885-890,916.

[7] 李勇.直流電動機拖動系統(tǒng)的電氣調(diào)速方法[J].四川水力發(fā)電,2000(03):90-92.

[8] 李鵬輝.淺談直流電動機調(diào)速[J].生物技術(shù)世界,2014(1):174.

[9] 牛麗婕.直流電機的調(diào)速方法[J].無線互聯(lián)科技,2013(3):72.

[10] 阮毅,楊影,陳伯時.電力拖動自動控制—運動控制系統(tǒng)[M].北京:機械工業(yè)出版社:2016.

[11] 熊東海.兩輪電動車用直流無刷電機調(diào)速系統(tǒng)的設(shè)計[D].廣州:廣東工業(yè)大學,2018.

[12] 張宏衛(wèi),曹志剛.基于Simulink的智能車用微型電機閉環(huán)系統(tǒng)的仿真研究[J].電氣傳動自動化,2011,33(1):30-32.

[13] 王祎晨.增量式PID和位置式PID算法的整定比較與研究[J].工業(yè)控制計算機,2018,31(5):123-124.

[14] 朱貴國,汪黨.基于STM32單片機的直流電機調(diào)速系統(tǒng)設(shè)計[J].數(shù)字技術(shù)與應用,2013(5):2-3.

(本文來源于《電子產(chǎn)品世界》雜志2022年2月期)



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉