劉旭輝 簡(jiǎn) 震 張遠(yuǎn)方 丁志娟
(上海應(yīng)用技術(shù)大學(xué)機(jī)械工程學(xué)院)
LabVIEW以簡(jiǎn)單易用的圖形開(kāi)發(fā)環(huán)境、強(qiáng)大的底層硬件驅(qū)動(dòng)和較好的圖形顯示能力在工業(yè)控制、數(shù)據(jù)采集、圖像處理及機(jī)器視覺(jué)等領(lǐng)域應(yīng)用頗為廣泛[1,2]。 隨著電磁技術(shù)的不斷發(fā)展,交流電機(jī)因結(jié)構(gòu)簡(jiǎn)單、運(yùn)行可靠及維護(hù)方便等優(yōu)勢(shì)得到了廣泛的應(yīng)用。 然而在一些大功率冶金行業(yè)、新能源汽車行業(yè)和大型家電行業(yè)里,直流電機(jī)以其良好的啟停性能和無(wú)極調(diào)速性能仍具有無(wú)可替代的作用, 并且從閉環(huán)反饋控制角度分析,直流電機(jī)控制是交流電機(jī)控制的基礎(chǔ),因此直流電機(jī)仍有一定的理論意義和廣闊的應(yīng)用前景[3]。 筆者基于STM32和LabVIEW搭建了直流電機(jī)閉環(huán)控制實(shí)驗(yàn)測(cè)試平臺(tái),依據(jù)脈寬調(diào)制(PWM)調(diào)速原理和PID控制理論,對(duì)直流電機(jī)進(jìn)行閉環(huán)控制實(shí)驗(yàn)。
筆者設(shè)計(jì)的閉環(huán)控制系統(tǒng)可分為硬件部分和軟件部分。硬件部分包括STM32控制器、直流電機(jī)、驅(qū)動(dòng)器和編碼器。 軟件部分包括LabVIEW上位機(jī)軟件和基于HAL庫(kù)編寫的STM32控制程序。STM32控制器采用STM32F407IG6驅(qū)動(dòng)芯片,該芯片采用Cortex-CM4內(nèi)核處理器。 直流電機(jī)采用25GA370大功率碳金刷直流減速電機(jī), 減速比為1∶30, 內(nèi)置11線光電編碼器。 電機(jī)驅(qū)動(dòng)器采用L298N驅(qū)動(dòng)芯片,內(nèi)置雙H橋驅(qū)動(dòng)電路。 上位機(jī)軟件通過(guò)串口與STM32進(jìn)行通信, 傳遞指令碼給STM32控制器, 控制器根據(jù)通信協(xié)議對(duì)指令碼進(jìn)行解析后輸出相應(yīng)占空比的PWM脈沖信號(hào)給驅(qū)動(dòng)器, 驅(qū)動(dòng)器根據(jù)脈沖信號(hào)控制H橋橋臂的開(kāi)斷狀態(tài),進(jìn)而控制直流電機(jī)的轉(zhuǎn)速與方向。STM32控制器通過(guò)編碼器接口獲取電機(jī)轉(zhuǎn)速,并通過(guò)波形圖表顯示模塊對(duì)電機(jī)轉(zhuǎn)速進(jìn)行實(shí)時(shí)顯示。 該控制系統(tǒng)的結(jié)構(gòu)如圖1所示。
圖1 控制系統(tǒng)結(jié)構(gòu)
驅(qū)動(dòng)器是控制器與電機(jī)之間的橋梁,本系統(tǒng)采用STM32控制器的GPIO口的輸出電壓是3.3V,而25GA370直流電機(jī)的額定電壓是12V, 不能用控制器直接驅(qū)動(dòng)電機(jī), 因此選用L298N芯片驅(qū)動(dòng)電機(jī),L298N芯片內(nèi)含雙H橋全橋式電機(jī)驅(qū)動(dòng)電路,每個(gè)H橋由4個(gè)大功率三極管構(gòu)成,為確保H橋電路不會(huì)同側(cè)導(dǎo)通,在原H橋電路基礎(chǔ)上增加4個(gè)與門和2個(gè)非門邏輯電路,可確保H橋單側(cè)只有一個(gè)三極管導(dǎo)通, 起到保護(hù)芯片的作用。 通過(guò)STM32控制器高級(jí)定時(shí)器輸出互補(bǔ)PWM脈沖,控制橋臂交替導(dǎo)通和截止, 實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)控制,通過(guò)調(diào)整PWM脈沖的占空比控制驅(qū)動(dòng)器輸出電壓實(shí)現(xiàn)電機(jī)調(diào)速[4]。 此外,利用4個(gè)光耦隔離器將STM32控制器與驅(qū)動(dòng)電路進(jìn)行隔離, 確保電路安全可靠。 電機(jī)驅(qū)動(dòng)電路如圖2所示。
圖2 電機(jī)驅(qū)動(dòng)電路
為實(shí)現(xiàn)對(duì)電機(jī)的閉環(huán)控制,系統(tǒng)需要對(duì)電機(jī)的轉(zhuǎn)速進(jìn)行采集。 25GA370直流電機(jī)上集成了一個(gè)編碼器測(cè)速裝置, 由2個(gè)霍爾傳感器和鐵氧體磁環(huán)組成,2個(gè)霍爾傳感器成90°安裝,即編碼器A相和B相。 電機(jī)轉(zhuǎn)子轉(zhuǎn)動(dòng)時(shí)帶動(dòng)鐵氧體磁環(huán)旋轉(zhuǎn),當(dāng)磁環(huán)的一個(gè)磁極靠近霍爾傳感器時(shí)輸出低電平信號(hào),磁環(huán)的另一個(gè)磁極靠近即上個(gè)磁極遠(yuǎn)離時(shí)輸出高電平信號(hào)[5]。 通過(guò)定時(shí)器輸入捕獲功能計(jì)算捕獲的高電平或低電平的次數(shù),從而得到電機(jī)的旋轉(zhuǎn)圈數(shù)。 筆者采用的編碼器分辨率為11線,即電機(jī)轉(zhuǎn)子旋轉(zhuǎn)一圈編碼器可產(chǎn)生11個(gè)脈沖信號(hào),考慮到電機(jī)減速比為1∶30,實(shí)際輸出軸旋轉(zhuǎn)一圈編碼器可產(chǎn)生330個(gè)脈沖信號(hào)。 通常編碼器測(cè)速有兩種方法——T法和M法,T法即計(jì)算一定脈沖數(shù)量所用的時(shí)間,M法即計(jì)算一定時(shí)間內(nèi)的脈沖數(shù)量[6],筆者采用M法測(cè)速。 YS-F4Pro控制板上集成了專用的編碼器接口,最多可同時(shí)雙相采集兩路編碼器脈沖信號(hào),其電路如圖3所示。
筆者采用離散型增量式PID算法實(shí)現(xiàn)對(duì)直流
圖3 編碼器接口電路
電機(jī)的閉環(huán)控制,表達(dá)式如下:
式中 ek——第k次采樣偏差;
k——采樣序號(hào);
Kd——微分系數(shù);
Ki——積分系數(shù);
Kp——比例系數(shù);
T——采樣周期;
Δuk——第k次采樣輸出控制量的增量。
系統(tǒng)的PID算法通過(guò)Keil軟件采用C語(yǔ)言編程實(shí)現(xiàn)。 STM32通過(guò)對(duì)編碼器脈沖信號(hào)進(jìn)行計(jì)數(shù)得到電機(jī)的實(shí)際轉(zhuǎn)速, 然后將當(dāng)前電機(jī)轉(zhuǎn)速傳給PID控制函數(shù), 得到控制量增量用以調(diào)節(jié)占空比輸出相應(yīng)的PWM脈沖信號(hào)給驅(qū)動(dòng)器,從而實(shí)現(xiàn)對(duì)直流電機(jī)轉(zhuǎn)速的PID控制,控制流程如圖4所示。
圖4 增量式PID控制算法流程
為實(shí)現(xiàn)上位機(jī)與下位機(jī)之間的通信,筆者基于LabVIEW編寫了上位機(jī)軟件,主要包括串口通信模塊、數(shù)據(jù)發(fā)送模塊和圖形顯示模塊。
3.2.1 串口通信模塊
VISA函數(shù)是LabVIEW中常用的串口通信模塊,VISA函數(shù)編程簡(jiǎn)單, 但生成安裝文件時(shí),需額外安裝約250MB的函數(shù)驅(qū)動(dòng)程序, 導(dǎo)致程序運(yùn)行較慢,數(shù)據(jù)傳輸時(shí)可能造成丟失。 筆者采用動(dòng)態(tài)鏈接庫(kù)庫(kù)函數(shù)PCOMM.dll來(lái)實(shí)現(xiàn)串口通信功能。通過(guò)PCOMM.dll庫(kù)函數(shù)可直接調(diào)用PC機(jī)底層的WINAPI開(kāi)發(fā)接口,與VISA相比運(yùn)行速度提高近兩倍[7]。 圖5為PCOMM.dll庫(kù)函數(shù)串口通信程序。
圖5 PCOMM.dll庫(kù)函數(shù)串口通信程序
3.2.2 數(shù)據(jù)發(fā)送模塊
數(shù)據(jù)發(fā)送模塊包括PID參數(shù)整定、 目標(biāo)位置發(fā)送和電機(jī)啟停。 采用字符串形式通過(guò)串口向下位機(jī)發(fā)送相關(guān)指令數(shù)據(jù),指令碼格式見(jiàn)表1。
表1 LabVIEW串口通信指令碼格式
以PID參數(shù)整定為例對(duì)該模塊進(jìn)行說(shuō)明。 常見(jiàn)PID參數(shù)整定法有理論計(jì)算法、試湊法、臨界比例法及衰減曲線法等,這些方法均需多次調(diào)整才能得到合適的PID參數(shù),較為耗時(shí)[8]。為此設(shè)計(jì)PID參數(shù)整定模塊。 PID參數(shù)設(shè)置的指令碼為“AA 07 P(XX XX XX XX) I(XX XX XX XX) D(XX XX XX XX) CS 2F”,其中AA為幀頭,07為功能碼,P、I、D為32位整型(以4個(gè)8位整型XX表示),CS為校驗(yàn)碼,2F為結(jié)束符(“/”),共16字節(jié),均以十六進(jìn)制表示。STM32收到數(shù)據(jù)后對(duì)功能碼進(jìn)行判斷,若為“07” 則截取PID參數(shù)字符串來(lái)修改STM32程序的PID參數(shù),達(dá)到參數(shù)整定的目的。 程序如圖6所示。
圖6 PID參數(shù)發(fā)送程序
3.2.3 圖形顯示模塊
為實(shí)現(xiàn)對(duì)電機(jī)運(yùn)轉(zhuǎn)狀態(tài)的實(shí)時(shí)監(jiān)測(cè),設(shè)計(jì)了圖形顯示模塊(圖7)。 為簡(jiǎn)化運(yùn)算,控制器SysTick定時(shí)器中斷回調(diào)函數(shù)每隔0.1s通過(guò)串口向上位機(jī)以指令碼形式發(fā)送一次電機(jī)轉(zhuǎn)速信息。 上位機(jī)接收到指令碼,先對(duì)指令碼幀頭、幀尾、校驗(yàn)和進(jìn)行驗(yàn)證,然后以條件結(jié)構(gòu)判斷功能碼,最后通過(guò)索引字符串功能截取轉(zhuǎn)速信息并以波形圖表顯示。
圖7 圖形顯示模塊程序
完成上述硬件設(shè)計(jì)和軟件編寫之后,搭建了直流電機(jī)閉環(huán)控制實(shí)驗(yàn)測(cè)試平臺(tái)(圖8),主要包括YS-F4Pro控制板、驅(qū)動(dòng)器、直流電機(jī)、編碼器和LabVIEW上位機(jī)軟件。
圖8 直流電機(jī)閉環(huán)控制實(shí)驗(yàn)測(cè)試平臺(tái)
經(jīng)過(guò)多次PID參數(shù)的實(shí)時(shí)整定,得出P=5.5、I=1.5、D=0時(shí),系統(tǒng)具有良好的動(dòng)態(tài)性能,在此基礎(chǔ)上進(jìn)行直流電機(jī)的閉環(huán)控制實(shí)驗(yàn),驗(yàn)證該閉環(huán)系統(tǒng)的穩(wěn)定性和響應(yīng)速度。 如圖9所示,設(shè)定目標(biāo)轉(zhuǎn)速為150r/s, 在28.5s時(shí)啟動(dòng)電機(jī), 實(shí)際轉(zhuǎn)速約在30s處與目標(biāo)曲線重合,整個(gè)調(diào)整時(shí)間約為1.5s,沒(méi)有出現(xiàn)較大超調(diào)量。 為了驗(yàn)證該閉環(huán)系統(tǒng)的穩(wěn)定性,在65s處給電機(jī)輸出軸施加反向負(fù)載,電機(jī)在149~152r/s范圍內(nèi)出現(xiàn)抖動(dòng)現(xiàn)象, 與目標(biāo)轉(zhuǎn)速差值在2r/s之內(nèi),屬于允許誤差范圍。 為進(jìn)一步驗(yàn)證系統(tǒng)的響應(yīng)速度,在112s處,將目標(biāo)轉(zhuǎn)速調(diào)整為50r/s, 實(shí)際轉(zhuǎn)速約在113s處與目標(biāo)轉(zhuǎn)速曲線重合,調(diào)整時(shí)間約為1s,電機(jī)響應(yīng)十分迅速。 由此可見(jiàn)PID參數(shù)是合理的, 該閉環(huán)系統(tǒng)具有良好的穩(wěn)定性和調(diào)速性能。
圖9 目標(biāo)轉(zhuǎn)速與實(shí)際轉(zhuǎn)速關(guān)系曲線
介紹了基于STM32和LabVIEW的直流電機(jī)閉環(huán)控制系統(tǒng)的設(shè)計(jì)過(guò)程, 并基于PID理論搭建了直流電機(jī)閉環(huán)控制實(shí)驗(yàn)測(cè)試平臺(tái)。 實(shí)驗(yàn)表明,在該系統(tǒng)下直流電機(jī)具有良好的穩(wěn)定性和調(diào)速性能。 此外,通過(guò)上位機(jī)軟件波形圖表顯示功能進(jìn)行PID參數(shù)實(shí)時(shí)整定, 與傳統(tǒng)參數(shù)整定方法相比更加直觀和快捷, 這種全新的參數(shù)整定模式,在工程上具有一定的應(yīng)用價(jià)值和借鑒意義。