夏雯娟 徐曉光 陸濤 馬平華
摘 要:混合式步進(jìn)電機(jī)是一種高精度的高轉(zhuǎn)矩低轉(zhuǎn)速伺服電機(jī),但電機(jī)參數(shù)的時(shí)變性會(huì)使步進(jìn)電機(jī)在運(yùn)行時(shí)出現(xiàn)失步。為此設(shè)計(jì)STM32處理器的混合式步進(jìn)電機(jī)控制系統(tǒng),采用模糊自適應(yīng)PID控制算法對(duì)步進(jìn)電機(jī)形成閉環(huán)控制,本文闡述了μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)在STM32上的移植及應(yīng)用。
關(guān)鍵詞:混合式步進(jìn)電機(jī);STM32處理器;模糊自適應(yīng)PID控制;μC/OS-II
0 引言
步進(jìn)電機(jī)是非線性、時(shí)變、滯后的控制對(duì)象,易受使用環(huán)境的干擾,因此在工業(yè)中的應(yīng)用也受到了限制。為了提高兩相混合步進(jìn)電機(jī)的控制性能,微處理器STM32F103ZET6芯片采用Cortex-M3核,結(jié)合μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)在Cortex-M3內(nèi)核微處理器上的應(yīng)用,進(jìn)行嵌入式控制系統(tǒng)硬件電路的設(shè)計(jì)和軟件的開發(fā)。
1 系統(tǒng)硬件設(shè)計(jì)
核心處理器為STM32F103ZET6,由該芯片和它的外圍電路共同完成整個(gè)系統(tǒng)的控制以及數(shù)據(jù)的采集、傳輸、處理和顯示。
控制系統(tǒng)采用光電測(cè)速儀采集脈沖作為STM32控制器的輸入信號(hào),經(jīng)過處理得到步進(jìn)電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向。它通過FSMC(靜態(tài)存儲(chǔ)控制器)與核心控制器進(jìn)行通信。
本次設(shè)計(jì)選用的混合式步進(jìn)電機(jī)型號(hào)為42HB48-174,驅(qū)動(dòng)芯片為YK2404MA,電機(jī)和驅(qū)動(dòng)芯片的驅(qū)動(dòng)電壓為24V,電源電壓選擇為12V,因此需要設(shè)計(jì)多個(gè)變壓電路以滿足電機(jī)驅(qū)動(dòng)和核心控制器的要求。
2 模糊自適應(yīng)PID控制器設(shè)計(jì)
由模糊控制規(guī)則可以確定模糊關(guān)系R,然后選擇Mamdani型模糊邏輯推理系統(tǒng),可以得出控制量的模糊集合U。經(jīng)過模糊推理后,需要對(duì)模糊控制器調(diào)整的參數(shù)進(jìn)行清晰化處理,以獲得精確量,本次控制器中采用的清晰化方法是最大隸屬度法。
根據(jù)各模糊子集的隸屬度賦值表和各參數(shù)模糊控制模型,應(yīng)用模糊合成推理設(shè)計(jì)PID參數(shù)的模糊矩陣表,查出修正參數(shù)代入公式計(jì)算。
3 軟件設(shè)計(jì)
軟件設(shè)計(jì)包括兩個(gè)部分,分別是系統(tǒng)軟件和應(yīng)用軟件。本次設(shè)計(jì)中的微處理器STM32選擇的系統(tǒng)實(shí)時(shí)操作系統(tǒng)為μC/OS-II,通過μC/OS-II在STM32上的移植來(lái)完成系統(tǒng)軟件設(shè)計(jì),而應(yīng)用軟件功能的實(shí)現(xiàn)是建立在此基礎(chǔ)之上。
系統(tǒng)軟件移植指的是一個(gè)操作系統(tǒng)可以在某個(gè)微處理器或者微控制器上運(yùn)行。實(shí)時(shí)操作系統(tǒng)μC/OS-II的移植要求移植者對(duì)被移植體系的四個(gè)重要部分有較深的了解:即目標(biāo)體系、操作系統(tǒng)及其原理、編譯器、所使用芯片這四部分。實(shí)時(shí)操作系統(tǒng)μC/OS-II的移植過程其實(shí)只需要修改與處理器部分相關(guān)的代碼即可,其它部分的現(xiàn)有代碼不需要做修改,與具體應(yīng)用相關(guān)的代碼在具體設(shè)計(jì)的時(shí)候在做相應(yīng)的修改。與此同時(shí),處理器需要給操作系統(tǒng)預(yù)留一個(gè)專用的定時(shí)器,該特定的定時(shí)器用來(lái)產(chǎn)生定時(shí)器中斷。
(1) OS_CPU.H 文件
該文件包括了用戶#define語(yǔ)句定義的變量,以增加代碼的可移植性,由于不同的處理器其數(shù)據(jù)長(zhǎng)度不同,因此需要對(duì)數(shù)據(jù)長(zhǎng)度進(jìn)行重新定義。
(2) OS_CPU_C.C文件
OS_CPU_C.C文件包含一個(gè)必要的OSTaskStkInit()函數(shù)和9個(gè)空函數(shù)的聲明,實(shí)時(shí)操作系統(tǒng)在創(chuàng)建任務(wù)時(shí),需要通過調(diào)用OSTaskStkInit()函數(shù),調(diào)用該函數(shù)的目的是建立堆棧的結(jié)構(gòu),同時(shí)給堆棧賦上新的初始值,并且寄存器中的值都保存在新建立的堆棧中,方便在接下來(lái)的操作中對(duì)其進(jìn)行任務(wù)切換。
4 結(jié)束語(yǔ)
本次設(shè)計(jì)采用STM32F103ZET6作為核心控制芯片,主要完成步進(jìn)電機(jī)的運(yùn)動(dòng)控制,為了提高控制精度,采用了模糊自適應(yīng)PID控制算法,減少環(huán)境因素對(duì)電機(jī)的影響。選用μC/OS-II實(shí)時(shí)操作系統(tǒng)作為軟件平臺(tái),并進(jìn)行軟件系統(tǒng)移植和應(yīng)用程序設(shè)計(jì)。本文的創(chuàng)新之處是使用了當(dāng)前應(yīng)用廣泛的微處理器并且在該處理器上進(jìn)行算法的應(yīng)用,但是步進(jìn)電機(jī)的運(yùn)行尚需完善。
【基金項(xiàng)目:安徽高校省級(jí)自然科學(xué)研究項(xiàng)目,項(xiàng)目編號(hào):KJ2014A024】
參考文獻(xiàn)
[1] 周黎,楊世洪,高曉東.步進(jìn)電機(jī)控制系統(tǒng)建模及運(yùn)行曲線仿真[J].電機(jī)與控制學(xué)報(bào),2011,15(1):20-25.
[2] 徐亞茹,陸靜平.步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)模糊PID仿真分析[J].機(jī)械設(shè)計(jì)與制造,2014,12:23-29.
[3] 趙劍.混合式步進(jìn)電機(jī)的模糊數(shù)字控制系統(tǒng)研究[J].數(shù)控技術(shù),2013,02:18-19.
[4] 陶彩霞,楊艷萍.混合步進(jìn)電機(jī)的模糊控制研究[J].自動(dòng)化與儀器儀表,2014,12:41-47.
[5] 周一飛,劉慶想,李相強(qiáng),王邦繼,周磊,李偉.螺旋天線步進(jìn)電機(jī)控制系統(tǒng)仿真及運(yùn)行曲線優(yōu)化[J].強(qiáng)激光與粒
子束.2014(06).
[6] 湯莉莉,黃偉.基于STM32的FSMC接口驅(qū)動(dòng)TFT彩屏設(shè)計(jì)[J].現(xiàn)代電子技術(shù).2013(20). [7] 孫燦飛,蔡元友,龍海
軍.電子式氧氣調(diào)節(jié)器中步進(jìn)電機(jī)模糊控制技術(shù)研究[J].測(cè)控技術(shù). 2013(04).
[8] 李茂軍,劉鼎邦.步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)電磁轉(zhuǎn)矩分析[J].控制工程,2013(02).
[9] 徐宏宇,戴東鵬.基于DSP的SPWM變頻電源的設(shè)計(jì)[J].沈陽(yáng)航空航天大學(xué)學(xué)報(bào).2012(04).[10] 劉汝斌,程武
山.扭矩傳感器在步進(jìn)電機(jī)控制系統(tǒng)中的應(yīng)用[J].儀表技術(shù)與傳感器.2012(07).
[11] 隋宗強(qiáng),李立偉,張洪偉.基于STM32單片機(jī)的EMS液晶顯示觸摸屏設(shè)計(jì)[J].通信電源技術(shù).2012(03).
[12] 林麗純,谷愛昱,劉夢(mèng)亭.FPGA在步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)控制系統(tǒng)中的應(yīng)用[J].實(shí)驗(yàn)科學(xué)與技術(shù).2012(02).
[13] 程小艷,胡毅.基于ARM Cortex-M3內(nèi)核的嵌入式多機(jī)通信系統(tǒng)設(shè)計(jì)與應(yīng)用[J].儀表技術(shù).2012(04).
[14] 魯田峰,郝國(guó)法,姜覓.基于AVR單片機(jī)在控制步進(jìn)電機(jī)方面的應(yīng)用[J].信息技術(shù).2012(01).