司開波 黃 健 呂林濤
(西京學(xué)院,西安 710123)
直流電機(jī)因其效率高、壽命長(zhǎng)、低噪聲、力矩大等優(yōu)點(diǎn),在工業(yè)生產(chǎn)和家用電器等方面得到了廣泛的應(yīng)用。人們經(jīng)常用PWM波來(lái)調(diào)整直流電機(jī)的轉(zhuǎn)速,但在實(shí)際應(yīng)用中常常會(huì)發(fā)現(xiàn),即使是一個(gè)固定的PWM值,也不能得到一個(gè)恒定不變的轉(zhuǎn)速。因此,人們常常用PID算法來(lái)調(diào)整電機(jī)的轉(zhuǎn)速。這種算法在使用時(shí),要根據(jù)不同的電機(jī)建立不同的模型,然后分別得到P、I、D的系數(shù),根據(jù)系數(shù)調(diào)整電機(jī)的轉(zhuǎn)速。但該方法受客觀因素影響較大,不能克服非線性摩擦力以及電機(jī)力矩波動(dòng)對(duì)轉(zhuǎn)速的影響,而且相應(yīng)速度不夠快[1~3]。
為了克服以上缺點(diǎn),本文提出采用基于Cortex-M3的高性能微處理器STM32,應(yīng)用其內(nèi)部定時(shí)器Timer,每間隔10ms對(duì)PWM波中的正脈寬寬度作出調(diào)整,以控制電機(jī)的轉(zhuǎn)速。對(duì)電機(jī)的轉(zhuǎn)速采用編碼器測(cè)速,精度高、響應(yīng)速度快。將設(shè)定的速度值與編碼器測(cè)得的速度進(jìn)行比較,若其值為正,說(shuō)明實(shí)際速度值偏小,在定時(shí)器中將正脈寬的寬度加大,以提高驅(qū)動(dòng)能力,達(dá)到提升速度的目的;若其值為負(fù),說(shuō)明實(shí)際速度值偏大,在定時(shí)器中將正脈寬的寬度減小,以減小驅(qū)動(dòng)能力,達(dá)到降低速度的目的;若兩值相等,則當(dāng)前的正脈寬值保持不變。采用這種方法,調(diào)節(jié)時(shí)間間隔短、響應(yīng)快,能夠較好的控制電機(jī)的轉(zhuǎn)速。
系統(tǒng)設(shè)計(jì)框圖如圖1所示。圖中主控采用STM32F103ZET6,在STM32F1系列中屬于高端產(chǎn)品,功能強(qiáng)大,資源豐富。基于Cortex M3的32位微處理器,有3個(gè)硬件SPI接口、8個(gè)定時(shí)器、3個(gè)串口、144個(gè)引腳[4,5]。圖1中首先用按鍵電路設(shè)置電機(jī)轉(zhuǎn)速,用TB6612驅(qū)動(dòng)直流微型電機(jī),該微型電機(jī)自帶編碼器,可用于測(cè)速。測(cè)速時(shí),將編碼器的A、B相分別連接到STM32定時(shí)器T2的PA2和PA3引腳上,就可測(cè)得電機(jī)的轉(zhuǎn)速。將測(cè)得的轉(zhuǎn)速值與設(shè)置的轉(zhuǎn)速值進(jìn)行比較,就可得到誤差值,根據(jù)誤差值調(diào)節(jié)PWM中的正脈寬寬度。若測(cè)量值小于設(shè)定值,則增大正脈寬的寬度;若測(cè)量值大于設(shè)定值,則減小正脈寬的寬度;若相等,則維持原來(lái)正脈寬的值不變。
圖2 4*1按鍵設(shè)計(jì)電路Fig.2 4*1 Button design circuit
按鍵設(shè)計(jì)電路如圖2所示。采用4*1按鍵,用于設(shè)置電機(jī)轉(zhuǎn)速。
TB6612是日本東芝公式出品的一款直流電機(jī)驅(qū)動(dòng)器,性能優(yōu)于L298,可同時(shí)驅(qū)動(dòng)2路直流電機(jī)。最大電流可達(dá)1.5A,TB6612與STM32的連接圖如圖3所示。
圖3 TB6612與STM32的連接圖Fig.3 Connection graph between TB6612 and STM32
圖3中AIN1、AIN2、PWMA分別控制1路電機(jī),對(duì)應(yīng)電機(jī)連接端是AO1和AO2; BIN1、BIN2、PWMB分別控制1路電機(jī),對(duì)應(yīng)電機(jī)連接端是BO1和BO2; 可將AIN1、AIN2、PWMA連接到對(duì)應(yīng)的STM32的IO口。PWMA和PWMB分別連接到STM32的PA0、PA1,這兩個(gè)引腳對(duì)應(yīng)的是定時(shí)器T5的通道1和通道2,能夠產(chǎn)生對(duì)應(yīng)的PWM波形,用于電機(jī)的調(diào)速。對(duì)應(yīng)的真值表如表1所示。
表1 TB6612真值表
Tab.1 Truth table of TB6612
表1中H代表高電平,L代表低電平。當(dāng)電機(jī)全速運(yùn)行時(shí),PWMA輸出高電平,要調(diào)整速度時(shí),PWMA輸出不同占空比的方波。另一路電機(jī)BIN1、BIN2、PWMB、 BO1、BO2的控制邏輯與表1類似。
12V直流電機(jī)連接圖如圖4所示。電機(jī)驅(qū)動(dòng) PWM 頻率是10kHZ。電機(jī)尾部自帶了13線的磁(霍爾)編碼器,電機(jī)減速比30:1,故車輪轉(zhuǎn)一圈,電機(jī)可以輸出 390個(gè)脈沖。編碼器的額定工作電壓是3.3V,集成了上拉電阻和比較整形功能,可以直接輸出方波。將編碼器的輸出A相、B相分別接到定時(shí)器T2的PA2和PA3,用定時(shí)器T2的計(jì)數(shù)功能測(cè)速[6~8]。圖4中的“電機(jī)線+”和“電機(jī)線-”分別接圖3中TB6612的輸出端AO1和A02。
圖4 12V直流電機(jī)連接圖Fig.4 Connection diagram of 12V DC motor
顯示單元采用1.44寸SPI接口真彩屏,顯示電路設(shè)計(jì)如圖5所示。圖中采用0.96寸的OLED做顯示屏,分辨率為128×64。接口非常簡(jiǎn)單,采用模擬IIC接口,帶有2個(gè)10K上拉電阻,分別連接到STM32的PE0、PE1引腳。采用3.3V電壓供電。性能優(yōu)于普通的液晶顯示器LCD1602,引腳數(shù)比1602少很多。按鍵設(shè)定的速度值和編碼器測(cè)量的速度值都將在OLED顯示屏上顯示,還可以顯示時(shí)間等其它信息。
圖5 OLED顯示電路原理圖Fig.5 Schematic diagram of OLED display circuit
軟件設(shè)計(jì)流程圖如圖6所示。首先對(duì)IIC、定時(shí)器等進(jìn)行初始化,然后用按鍵設(shè)置電機(jī)轉(zhuǎn)速。按照表1送出對(duì)應(yīng)信號(hào),啟動(dòng)電機(jī)旋轉(zhuǎn)。在旋轉(zhuǎn)過(guò)程中,利用定時(shí)器T1每隔10ms測(cè)試一次電機(jī)轉(zhuǎn)速[9]。根據(jù)公式(1)得到速度差e。若設(shè)定值大于測(cè)量值,則PWM的正脈寬加e;若設(shè)定值小于測(cè)量值,則PWM的正脈寬減e;若相等,則PWM的值不變。一直循環(huán),流程圖如圖6所示。
圖6 軟件流程圖Fig.6 Software flow chart
公式(1)中,vs為設(shè)定的速度值,vc為測(cè)量的速度值。兩者相減得到速度的誤差值Er
Er=vs-vc
(1)
以下是定時(shí)器T1的初始化程序,調(diào)用形式是Timer1_Init(99,7199);根據(jù)公式(2)計(jì)算,定時(shí)時(shí)間恰好是10ms。
Tout=(arr+1)×(psc+1)/Fclk
(2)
式中:Tout——定時(shí)時(shí)間;Fclk——時(shí)鐘頻率,STM32F103的時(shí)鐘頻率是72MHz;arr——定時(shí)器的自動(dòng)重裝值;psc——時(shí)鐘預(yù)分頻系數(shù),分別做為函數(shù)Timer1_Init的兩個(gè)參數(shù)。
void Timer1_Init(u16 arr,u16 psc)
{
RCC->APB2ENR|=1<<11;
TIM1->ARR=arr;
TIM1->PSC=psc;
TIM1->DIER|=1<<0;
TIM1->DIER|=1<<6;
TIM1->CR1|=0x01;
MY_NVIC_Init(0,0,TIM1_UP_IRQn,2);
}
以下代碼是定時(shí)器1的中斷代碼,每隔10ms中斷一次。程序中Read_Encoder(2)為讀取編碼器值的函數(shù),并將其賦給Encoder_Left。程序中Set_value為按鍵設(shè)定電機(jī)轉(zhuǎn)速。若測(cè)量值大于設(shè)定值,則pwm值減1,并調(diào)用TIM5_PWM_Set函數(shù)重新設(shè)定pwm脈寬,降低電機(jī)轉(zhuǎn)速;若測(cè)量值小于設(shè)定值,則pwm值加1,并調(diào)用TIM5_PWM_Set函數(shù)重新設(shè)定pwm脈寬,提高電機(jī)轉(zhuǎn)速。利用此函數(shù),能夠快速調(diào)節(jié)電機(jī)的轉(zhuǎn)速。
int TIM1_UP_IRQHandler(void)
{
if(TIM1->SR&0X0001)
{
Encoder_Left=Read_Encoder(2);
if(Encoder_Left>Set_value)
{pwm-= Vs-Vc;
TIM5_PWM_Set(35999,0,3,3,pwm);
}
Else if(Encoder_Left {pwm+= Vs-Vc; TIM5_PWM_Set(35999,0,3,3,pwm); } } } 測(cè)試時(shí),根據(jù)上述硬件原理圖進(jìn)行連接。在KEIL下用C語(yǔ)言編寫程序,調(diào)試好后下載到STM32F103中,就可進(jìn)行測(cè)試。實(shí)物如圖7所示。 測(cè)試時(shí),將編碼器輸出值用串口輸出,每隔10ms記錄一次,并將結(jié)果保存在一個(gè)表格中,如表2所示。由于篇幅有限,表2中只給出了部分?jǐn)?shù)據(jù)。根據(jù)更多個(gè)數(shù)據(jù),得到時(shí)間與測(cè)量速度值之間的曲線如圖8所示。測(cè)試時(shí)按鍵設(shè)定的速度值是240cm/ms。 圖8 時(shí)間與測(cè)量速度值之間對(duì)應(yīng)關(guān)系圖Fig.8 Corresponding graph between time and measured velocity value 從表格2和圖8中可以看出,從0到60ms,PWM值不斷增大,電機(jī)轉(zhuǎn)速不斷提高;從70ms到110ms,由于慣性左右,電機(jī)轉(zhuǎn)速還在增大,但此時(shí)定時(shí)器已經(jīng)開始調(diào)節(jié)速度,調(diào)節(jié)過(guò)程中電機(jī)轉(zhuǎn)速有適當(dāng)?shù)牟▌?dòng),但是到120ms后趨于穩(wěn)定。速度穩(wěn)定在240cm/ms,也就是設(shè)定值,達(dá)到了調(diào)速的目的。 表2 編碼器測(cè)量值與時(shí)間之間的對(duì)應(yīng)關(guān)系 Tab.2 Relationship between encoder measurement value and time 本文提出了一種直流電機(jī)的調(diào)速新方法,繪制了硬件原理圖,編寫了軟件程序,制作出了實(shí)物,并對(duì)該方法進(jìn)行了驗(yàn)證[10]。測(cè)試結(jié)果表明:該方法具有簡(jiǎn)單、實(shí)用、響應(yīng)快等優(yōu)點(diǎn),能夠快速調(diào)節(jié)電機(jī)的轉(zhuǎn)速,取得了較好的效果。 [1] 余熾業(yè), 宋 躍, 雷瑞庭.基于STC12C5A60S2 的智能循跡小車[J]. 實(shí)驗(yàn)室研究與探索,2014,33(11):46~49. [2] 徐坤,徐坤,吳定允.基于DSP直流無(wú)刷電機(jī)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信陽(yáng)師范學(xué)院學(xué)報(bào)( 自然科學(xué)版),2016,29(2):249~252. [3] 張厚升,董 碩,姜吉順,邢雪寧.基于Matlab_Simulimk的直流調(diào)速系統(tǒng)虛擬實(shí)驗(yàn)教學(xué)[J].實(shí)驗(yàn)室研究與探索,2016,35(6) : 66~70. [4] 敬光紅. 基于FPGA的無(wú)刷直流電機(jī)數(shù)字控制方法研究[J].電子器件,2016,39(1) : 111~117. [5] 莫太平,楊宏光,劉冬梅. 面向多路線的智能循跡小車的設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化與儀表,2014,(4):6~9. [6] 賀桂芳. 一種新型智能金屬探測(cè)儀的設(shè)計(jì)[J]. 儀表技術(shù)與傳感器,2016,1:13~15. [7] 師樹恒,趙斌,郭朋彥,鄒棟. 基于MK60N512的智能循跡小車設(shè)計(jì)[J].機(jī)床與液壓,2014,42(2):91~96. [8] 王茹茹,宋開宏,明軍,潘煜天,吳振飛. 基于開放線圈系統(tǒng)金屬探測(cè)儀傳感器的特性分析[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,38(3):354~357. [9] 宋永獻(xiàn),馬娟麗,賀乃寶,張先進(jìn). 基于TMS320F2812的智能循跡小車控制系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2011,19(9):2 128~2 130. [10] 張從鵬,邢慶輝. 基于ARMCortex_M4的永磁無(wú)刷直流調(diào)速系統(tǒng)設(shè)計(jì)[J].微特電機(jī),2016,44(1):90~92.5 測(cè)試結(jié)果
6 結(jié)束語(yǔ)