王傳博 王溪文
摘要:直流電機(jī)閉環(huán)調(diào)速控制系統(tǒng)主體是由主控電路、測(cè)速模塊及電動(dòng)機(jī)組成。該系統(tǒng)通過(guò)PID與PWM之間的關(guān)系控制脈沖序列,由速度傳感器測(cè)出電動(dòng)機(jī)的轉(zhuǎn)速反饋給單片機(jī),從而構(gòu)成閉環(huán)反饋控制系統(tǒng),在單片機(jī)處理信號(hào)時(shí)采用PID算法對(duì)輸出信號(hào)進(jìn)行校正,改變輸出脈沖的占空比使其更加準(zhǔn)確的控制電動(dòng)機(jī)轉(zhuǎn)速。這種閉環(huán)控制系統(tǒng)提高了系統(tǒng)運(yùn)行時(shí)的穩(wěn)定性和調(diào)速的精度,增強(qiáng)了對(duì)直流電機(jī)速度的可控性,能夠有效的實(shí)現(xiàn)對(duì)直流電動(dòng)機(jī)轉(zhuǎn)速的控制。
關(guān)鍵詞:電機(jī);測(cè)速傳感器;PWM控制;PID算法
0引言
隨著科學(xué)技術(shù)的發(fā)展和進(jìn)步,自動(dòng)化控制技術(shù)的需求不斷擴(kuò)大,以單片機(jī)為核心的電機(jī)調(diào)速系統(tǒng)以其良好的調(diào)速特性和制動(dòng)性能,使得在各個(gè)領(lǐng)域中的應(yīng)用越加廣泛[1-2]。本次設(shè)計(jì)以STM32單片機(jī)作為控制核心,采用增量式PID算法和PWM技術(shù)通過(guò)霍爾傳感器的反饋構(gòu)成閉環(huán)控制系統(tǒng),更好的保證電機(jī)調(diào)速系統(tǒng)在各個(gè)領(lǐng)域的應(yīng)用與發(fā)展。
1系統(tǒng)總體方案設(shè)計(jì)
本次設(shè)計(jì)一共設(shè)置了四個(gè)按鍵,分別對(duì)應(yīng)電機(jī)啟動(dòng),加速,減速,停止四種運(yùn)行狀態(tài)。上位機(jī)將相對(duì)應(yīng)的程序?qū)懭隨TM32單片機(jī),由STM32單片機(jī)輸出脈沖序列通過(guò)占空比的改變控制電動(dòng)機(jī)的轉(zhuǎn)速,霍爾傳感器采集電動(dòng)機(jī)的轉(zhuǎn)速轉(zhuǎn)換成數(shù)字信號(hào)反饋給單片機(jī),單片機(jī)內(nèi)部程序通過(guò)PID算法對(duì)反饋信號(hào)加以校正在重新輸出,使系統(tǒng)形成一個(gè)閉環(huán)反饋。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
2硬件設(shè)計(jì)
2.1電機(jī)控制模塊設(shè)計(jì)
本次設(shè)計(jì)中采用的電機(jī)控制模塊是L298N雙H橋直流電機(jī)驅(qū)動(dòng)芯片,該芯片具有ENA和ENB兩個(gè)使能控制端,采用邏輯電平信號(hào)控制電機(jī)轉(zhuǎn)動(dòng)[3]。芯片工作時(shí)端子懸空,VMS驅(qū)動(dòng)部分由單片機(jī)通過(guò)杜邦線供電,這種供電方式簡(jiǎn)化了電路的設(shè)計(jì),大幅提高了系統(tǒng)的運(yùn)行效率。
L298N控制芯片的端子左右兩排插針I(yè)N1~I(xiàn)N4分別接在STM32單片機(jī)接口的GPIOF1~4,OUT1~OUT2連接直流電動(dòng)機(jī),用來(lái)控制電動(dòng)機(jī)旋轉(zhuǎn)方向和轉(zhuǎn)速。ENA和ENB接高電平時(shí)芯片使能,在本次設(shè)計(jì)中由單片機(jī)輸出信號(hào)拉高。
2.2測(cè)速傳感器模塊設(shè)計(jì)
本文采用的測(cè)速傳感器為霍爾測(cè)速傳感器ES3144,該傳感器主要由傳感頭和齒圈組成,其工作原理為霍爾效應(yīng),當(dāng)轉(zhuǎn)動(dòng)的金屬部件通過(guò)霍爾傳感器的磁場(chǎng)時(shí)引起電勢(shì)變化,通過(guò)對(duì)電勢(shì)的測(cè)量就可以得到被測(cè)量對(duì)象的轉(zhuǎn)速值。當(dāng)信號(hào)盤(pán)隨電機(jī)轉(zhuǎn)軸旋轉(zhuǎn)時(shí),信號(hào)盤(pán)的每個(gè)齒經(jīng)過(guò)探頭正前方時(shí)產(chǎn)生感應(yīng),探頭就輸出一個(gè)標(biāo)準(zhǔn)的脈沖信號(hào)。因此,脈沖信號(hào)的頻率大小就反映了直流電動(dòng)機(jī)的轉(zhuǎn)速。
對(duì)于轉(zhuǎn)速的測(cè)量方法很多種,本次設(shè)計(jì)中采用的是根據(jù)脈沖計(jì)數(shù)來(lái)實(shí)現(xiàn)轉(zhuǎn)速測(cè)量的定數(shù)計(jì)時(shí)法也稱(chēng)測(cè)周期法。定數(shù)計(jì)時(shí)法是指電機(jī)轉(zhuǎn)速以單位時(shí)間內(nèi)轉(zhuǎn)數(shù)來(lái)衡量,在變換過(guò)程中多數(shù)是有規(guī)律的重復(fù)運(yùn)動(dòng)本次設(shè)計(jì)中采用定數(shù)計(jì)時(shí)法,在被測(cè)信號(hào)的一個(gè)周期內(nèi),計(jì)數(shù)時(shí)鐘脈沖數(shù)為m,fc為時(shí)鐘頻率,則被測(cè)信號(hào)的頻率fx的計(jì)算公式可見(jiàn)式(2.1)。
(2.1)
霍爾轉(zhuǎn)速傳感器通過(guò)磁力線密度的變化,在磁力線穿過(guò)傳感器上的感應(yīng)元件時(shí),產(chǎn)生霍爾電勢(shì)并將其轉(zhuǎn)換為交變電信號(hào),最后傳感器的內(nèi)置電路會(huì)將信號(hào)調(diào)整和放大,輸出矩形脈沖信號(hào)傳遞給單片機(jī)。
3軟件設(shè)計(jì)
3.1 PWM調(diào)速設(shè)計(jì)
在本次設(shè)計(jì)中將電動(dòng)機(jī)的工作頻率設(shè)為1000HZ,則周期為1ms。在輸出PWM波時(shí),利用定時(shí)器確定PWM的周期及占空比。其計(jì)算公式見(jiàn)式(3.1)。
(3.1)
式中的T為PWM的周期,D為占空比,t是由定時(shí)器產(chǎn)生一個(gè)時(shí)間基準(zhǔn),定時(shí)器溢出的次數(shù)為n。周期與占空比相乘所得的時(shí)間也就是單片機(jī)輸出高電平的時(shí)間。系統(tǒng)運(yùn)行時(shí),規(guī)定電動(dòng)機(jī)最大轉(zhuǎn)速為Vmax,占空比為D,則電機(jī)的平均速度其中Va指的是電機(jī)的平均速度;Vmax是指電動(dòng)機(jī)在全通電時(shí)的最大速度;占空比。當(dāng)占空比不同時(shí),會(huì)得到不同的平均速度Vd,達(dá)到調(diào)速目的。一個(gè)周期加在直流電動(dòng)機(jī)兩端的電壓的大小就是高電平脈沖的個(gè)數(shù)乘上占空比的大小,電機(jī)的平均速度等于在指定的占空比下直流電動(dòng)機(jī)的最大速度乘上占空比,因此當(dāng)改變脈沖序列里的占空比時(shí),電動(dòng)機(jī)就會(huì)產(chǎn)生不同的速度。
單片機(jī)產(chǎn)生的周期為1ms(10000HZ)的PWM,所以可設(shè)置中斷的時(shí)間間隔為0.01ms,,然后中斷100次即為1ms。在中斷子程序內(nèi),可設(shè)置一個(gè)變量time,在中斷子程序內(nèi),當(dāng)time>=100時(shí),time清零(此語(yǔ)句保證頻率為10000HZ),time>n(n在0-100之間)時(shí)單片相應(yīng)的I/O口輸出高電平,反之,單片相應(yīng)的I/O口輸出低電平,此時(shí)占空比就為n%。占空比通過(guò)time的值進(jìn)行變化,time<=20時(shí) PWM1=0; 是指%20的時(shí)間輸出低電平,80%的時(shí)間輸出高電平,即占空比為80%。頻率是由11.0592M晶振,10KHZ PWM輸出頻率,定時(shí)器0.01ms中斷一次,中斷次數(shù)100次即為10KHZ( 0.01ms*100=1ms,即為10000HZ,此時(shí),定時(shí)器計(jì)數(shù)器賦初值為FF。
另需要定義一個(gè)標(biāo)志位flag,根據(jù)flag的狀態(tài)決定輸出高平還是低電平,定義flag=1的時(shí)候輸出高電平,用變量記錄定時(shí)器中斷的次數(shù),每次中斷就讓記錄中斷次數(shù)的變量加1,在中斷程序里面判斷這個(gè)變量的值是否到n值。當(dāng)達(dá)到了高電平的時(shí)間,此時(shí)改變將0值賦給flag,輸出低電平,同時(shí)記錄中斷變量的值清零,每次中斷的時(shí)候依舊加1,根據(jù)flag=0的情況跳去判斷記錄變量的值是否達(dá)到n,如果符合,flag值會(huì)改成1,輸出改高電平,同時(shí)記錄次數(shù)變量清零,重新開(kāi)始,通過(guò)子程序的不斷循環(huán)來(lái)得到設(shè)計(jì)需要的PWM波形。
3.2 PID控制算法設(shè)計(jì)
PID控制算法其實(shí)是對(duì)設(shè)置的預(yù)定參數(shù)進(jìn)行跟蹤。在控制領(lǐng)域,先采集目前的實(shí)時(shí)參數(shù),與設(shè)定的參數(shù)進(jìn)行比較,計(jì)算出誤差,然后進(jìn)行積分微分運(yùn)算,計(jì)算出控制器需要的增量然后與實(shí)際參數(shù)相加,使其盡可能的接近設(shè)定值 。PID控制算法一共有三種,分別是增量式算法、位置式算法和微分先行,在本次設(shè)計(jì)中采用增量式算法,其計(jì)算公式見(jiàn)式(3.2)。
(3.2)
在本次設(shè)計(jì)中為了加快開(kāi)始的動(dòng)態(tài)過(guò)程,設(shè)定了一個(gè)偏差范圍v,當(dāng)偏差|e(t)|< β時(shí),即被控量接近給定值時(shí),就按正常規(guī)律調(diào)節(jié),而當(dāng)|e(t)|>= β時(shí),則不管比例作用為正或?yàn)樨?fù),都使它向有利于接近給定值的方向調(diào)整,即取其值為|e(t)-e(t-1)|,加快了控制的動(dòng)態(tài)過(guò)程。增量式算法中比例積分Kp越大時(shí),電機(jī)轉(zhuǎn)速回歸到輸入值的速度將更快,及調(diào)節(jié)靈敏度就越高,可以增加P值來(lái)減少調(diào)節(jié)時(shí)間,但造成了電機(jī)轉(zhuǎn)速在預(yù)設(shè)值附近振蕩的情形,因此引入積分Ki環(huán)節(jié)消除穩(wěn)態(tài)誤差,但系統(tǒng)趨于穩(wěn)定的時(shí)間不應(yīng)過(guò)長(zhǎng),因此在本次設(shè)計(jì)的系統(tǒng)中將時(shí)間常數(shù)設(shè)置很小。具體PID算法程序流程圖如圖2所示。
4結(jié)語(yǔ)
本文主要對(duì)基于STM32單片機(jī)的直流電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì)進(jìn)行了詳細(xì)的闡述。以單片機(jī)作為核心控制芯片,采用閉環(huán)的數(shù)字控制,用組合邏輯電路實(shí)現(xiàn)脈沖信號(hào)輸出,配合控制芯片對(duì)電動(dòng)機(jī)驅(qū)動(dòng)的控制,通過(guò)霍爾測(cè)速傳感器對(duì)直流電機(jī)的速度采樣,由PID控制算法對(duì)輸出信號(hào)進(jìn)行校正提高測(cè)量電機(jī)轉(zhuǎn)速的精度。
參考文獻(xiàn):
[1]陸麗婷,項(xiàng)巖.基于單片機(jī)的電機(jī)測(cè)速系統(tǒng)設(shè)計(jì)[J].無(wú)線互聯(lián)科技,2017 (17):35-36.
[2]蔡述庭.智能汽車(chē)競(jìng)賽設(shè)計(jì)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2012.
[3]張小鳴,盧方民.基于 IR2110 的 H 橋可逆 PWM 驅(qū)動(dòng)電路應(yīng)用[J].
作者簡(jiǎn)介: 王傳博(1996.10—),男,遼寧,碩士,主要研究方向:控制系統(tǒng)與應(yīng)用
圖2.PID算法程序流程圖