魯 鵬,付 強,楊 艷,胡 旭,谷明信,羅天洪
(重慶文理學院智能制造工程學院,重慶 402160)
隨著我國高端制造行業(yè)的發(fā)展,基于數(shù)字控制的電機調(diào)速系統(tǒng)在很多領域得到了廣泛應用,掌握電機控制系統(tǒng)的原理與應用,已成為智能制造、機器人、無人駕駛、航空航天等行業(yè)相關(guān)技術(shù)人員的迫切需求[1]。
電機控制課程實驗是掌握控制理論的重要環(huán)節(jié),而現(xiàn)在國內(nèi)的教學裝置有些開放性差,只能修改某些參數(shù)或者簡單外部接線,學生無法掌握內(nèi)部的開發(fā)流程;另外一類實驗設備又過于復雜,如基于C 語言的電機控制開發(fā)套件,欲對系統(tǒng)有深入理解需花費大量時間,而且信號檢測還需要單獨的儀器,中間變量的輸出更是難以圖形化顯示,以上兩種方式均不能達到理想教學效果。
近10 年來,基于模型設計(MBD)的V 形開發(fā)流程在華為、波音等先進制造業(yè)中獲得了廣泛認同。這種設計思路是在系統(tǒng)開發(fā)的不同階段建立相應的系統(tǒng)模型,利用高層次語言進行設計、仿真和系統(tǒng)實現(xiàn)。如圖1 所示,這種思想讓理論與實踐緊密地聯(lián)系起來。開發(fā)人員在各個環(huán)節(jié)可以進行硬件在環(huán)(Hardware-in-the-Loop,HIL)仿真,從而降低了開發(fā)難度,縮短研發(fā)時間,真正做到設計更快,質(zhì)量更高,靈活性更大[2-5]。
圖1 基于模型設計的控制策略開發(fā)流程
德國dSPACE 公司開發(fā)的實時仿真系統(tǒng)以及加拿大的Quanser 系統(tǒng)是目前被廣泛使用的MBD 實時硬件在環(huán)開發(fā)平臺[6-8],系統(tǒng)軟件平臺采用MATLAB∕Simulink,自動化的代碼生成∕下載以及快捷的調(diào)試環(huán)境使得應用開發(fā)過程快速易行;性能強勁的專用硬件具有高速計算能力,能夠滿足控制工程領域的各種相關(guān)產(chǎn)品開發(fā)。但是以上設備比較昂貴,目前主要用于科研,要作為普通高等院校實驗設備還有一定難度,而另一種通用低成本的Arduino 單片機方案能夠?qū)崿F(xiàn)上述產(chǎn)品的替代[9]。為此,本文介紹了基于MATLAB∕Simulink 軟件平臺,硬件采用Arduino單片機為核心的開源低成本的直流電機控制教學實驗裝置,并實現(xiàn)了硬件電路設計、系統(tǒng)搭建、模型設計、自動代碼生成、系統(tǒng)調(diào)試等功能。通過PID 算法在線控制測試,電機速度超調(diào)量小,在有外接負載擾動情況下能迅速穩(wěn)定,達到控制預期效果。
本文的伺服控制實驗裝置以Simulink 為軟件平臺,構(gòu)建了開放式、圖形化的實驗設計環(huán)境,實現(xiàn)了伺服控制模型設計、仿真和控制程序的自動化生成。控制器的硬件平臺采用基于ATmega 2560 單片機的Arduino 電路板作為中央處理器,具有性能高、集成度高、可靠性好、成本低等優(yōu)點。為實現(xiàn)與伺服電機等被控對象的連接,實驗裝置擴展了A∕D、D∕A、編碼器、通用I∕O 等接口,也提供了彩色液晶顯示器、按鍵、LED、RS-232通信接口等外設,便于實現(xiàn)人機交互和數(shù)據(jù)采集。該系統(tǒng)用于變負荷情況下,電機的速度控制以及控制量的計算與分析。直流伺服控制實驗裝置系統(tǒng)框圖如圖2所示。
圖2 直流伺服控制實驗裝置系統(tǒng)框圖
Arduino Mega2560 具有54 路數(shù)字輸入輸出接口(其中14 路可作PWM 輸出),適合需要大量I∕O 接口的設計。Arduino Mega2560另含16路模擬輸入,每個I∕O的電流為40 mA。4路UART接口,一個16 MHz晶體振蕩器,一個USB 口,一個電源插座,一個ICSP header 和一個復位按鈕,第3版支持I2C接口。閃存為256 kB,其中8 kB由引導加載程序(BootLoader) 使用,SRAM 為8 kB,EEPROM 為4 kB。Arduino Mega2560 也 能 兼 容 為Arduino UNO 設計的擴展板。在不燒錄Arduino 固件時,也可以作為普通的單片機使用,通常采用C語言對其開發(fā)。
圖3 Arduino Mega2560R3 電路板
目前,直流減速電機在平衡車、倒立擺以及智能車中應用廣泛,為此本文選擇帶編碼器的微形直流減速電機SZCMMOTOR的JGA25-370,具體參數(shù)如表1所示。
表1 減速電機參數(shù)
如圖4 所示,直流電機由電刷、換向器、電樞繞組、主磁極構(gòu)成。通過給電機的外部接入直流電,換向器根據(jù)電樞的位置切換,由法拉第電磁定律,帶電的繞組在主磁極中會受到洛倫茲力的作用從而旋轉(zhuǎn)。由電機學知識可知,電機速度如公式(1)所示,可以看出,要改變速度n有3 種方法:改變磁通?、電樞電壓U或電樞回路電阻Ra。最為通用的電子調(diào)速器都是改變電樞電壓來改變轉(zhuǎn)速,本文也是采用控制電樞電壓的方式實現(xiàn)調(diào)速,具體由Arduino 2560 根據(jù)控制量的大小從而輸出不同占空比的PWM 波形到驅(qū)動電路板TB6612FNG,驅(qū)動電路板核心為H 形全橋電路,通過控制橋臂的功率管導通時間從而改變輸出電壓有效值的大小與方向,達到控制直流電機速度與方向的目的。
圖4 直流電機原理
對于減速直流電機而言,電機的輸出軸連接到了減速器,而電機的尾部直接安裝了霍爾編碼器。如圖5 所示,電機的正負電源線為紅色與白色,調(diào)換可以控制電機正反轉(zhuǎn);其他4 種顏色為編碼器的電源線與信號線,其中黑色為編碼器電源負極,藍色為編碼器的電源正極(3~5.5 V),黃色線與綠色線分別是電機反饋信號線(電機轉(zhuǎn)1圈可以產(chǎn)生11個脈沖信號),用于控制器測速。減速器的減速比為4.4。
圖5 直流減速電機實物
由于單片機輸出的電流達不到電機工作所需的電流,所以需要設計驅(qū)動電路。常用的驅(qū)動電路可以通過繼電器、功率晶體管、可控硅或功率型的MOS 場效應管來實現(xiàn),不過以上都是分離元件實現(xiàn)方式,實現(xiàn)方式較為繁瑣。本文選擇了一種成熟的驅(qū)動芯片來實現(xiàn),型號為TB6612FNG,其體積小,在當前的電子設計中應用廣泛,性能超過以前常用的L298N。
TB6612FNG 是東芝半導體公司生產(chǎn)的一款直流電機驅(qū)動器件,它具有大電流MOSFET-H 橋結(jié)構(gòu),雙通道電路輸出,可同時驅(qū)動2個直流電機。它無需外加散熱片,外圍電路簡單,只需外接電源濾波電容就可以直接驅(qū)動電機,利于減小系統(tǒng)尺寸。對于PWM 信號輸入頻率范圍,高達100 kHz 的頻率更是足以滿足大部分的需求,其最大輸入電壓為15 V,最大輸出電流為1.2 A,內(nèi)置過熱保護和低壓檢測電路。
如圖6 所示,TB6612 的端口分為兩組,分別控制電機A 與電機B,以電機A 端口為例,單片機輸出的電機速度控制PWM 信號接入PWMA 端口;STBY 為整個驅(qū)動芯片的使能信號,當將低電平輸入到該引腳,則其所驅(qū)動的電機全部停止;方向控制信號端為AIN1、AIN2,具體控制真值表如表2 所示,其中布爾量“0”表示低電平,“1”表示高電平。系統(tǒng)硬件實物如圖7所示。
圖6 TB6612驅(qū)動模塊電路
表2 電機方向控制真值
圖7 系統(tǒng)硬件實物
PID 控制,即比例-積分-微分控制,是自動控制原理中定義的一種控制方法,在現(xiàn)代工業(yè)控制中占有舉足輕重的作用。PID 控制主要是對系統(tǒng)輸出偏差進行比例、積分、微分3 種操作的組合而形成輸出控制量,以減小系統(tǒng)誤差,提高系統(tǒng)響應速度和響應效果[10-13]。圖8 所示為限幅PID算法示意。
圖8 限幅PID算法示意
PID 控制可以分為模擬PID 控制與數(shù)字PID 控制,在數(shù)字PID控制中,其控制量計算式為:
式中:u(n)為控制器的輸出;e(n)為控制器的輸入,即系統(tǒng)的期望值r(n)與實際測量值y(n)之差;數(shù)字PID 采用n代替連續(xù)PID中的t。
由于式(2)在實現(xiàn)時會將所有的誤差值累加,計算量較大,所以出現(xiàn)了增量式算法。增量式PID 控制是數(shù)字PID 控制算法的一種基本形式,是通過對控制量的增量(本次控制量和上次控制量的差值)進行PID 控制的一種控制算法??刂葡到y(tǒng)輸出為控制量的變化量。由于控制量剛開始時會非常大,常常會超過系統(tǒng)存儲器的最大值,本系統(tǒng)采用的控制量大小為8 位,所以最后限幅為255。
本文軟件開發(fā)環(huán)境:WIN10 操作系統(tǒng)、MATLAB2015a 以及相匹配Simulink 關(guān)于Arduino 的硬件支持包。Simulink 具有強大的圖形化建模、仿真能力,以及完整的信號處理與算法工具箱,并且可以與MATLAB 無縫集成,是控制系統(tǒng)工程師的常用軟件,也是高校工程類專業(yè)師生熟悉的編程系統(tǒng)。本文的電機控制實驗裝置以Simulink 為軟件平臺,構(gòu)建了開放式、圖形化的實驗設計環(huán)境,實現(xiàn)了電機控制系統(tǒng)模型設計、仿真和控制程序的自動化生成。
由于PID 是一種反饋型的控制方法,第一步就是通過編碼器獲得電機的實際轉(zhuǎn)速。如圖9 所示,本文采用Simulink 中的soEncoder 模塊對電機編碼器脈沖進行計數(shù),該模塊采用四倍頻技術(shù)對編碼器脈沖進行絕對計數(shù)。從上電開始該模塊輸出0,即以電機當前位置為初始點,當電機轉(zhuǎn)動時對編碼器的脈沖進行計數(shù),y值為32 位有符號整型,正負代表不同的旋轉(zhuǎn)方向。速度的獲取的方法是采用延時環(huán)節(jié)計算兩個時刻soEncoder模塊輸出的數(shù)據(jù)差值,再用差值除以兩個時刻之間的時間隔。由于受電機編碼器本身存在的干擾以及電機自身運行過程中不穩(wěn)定等因素的影響,獲取的轉(zhuǎn)速數(shù)據(jù)會有很大的噪聲波動,直接使用會導致信息檢測不準,所以還需要進行濾波處理。圖9 中Data type conversion 模塊后面采用一階數(shù)字低通濾波器對速度信號進行濾波。
式中:Xn為當次采樣值;Yn-1為前次濾波輸出值;a為濾波系數(shù),遠小于1;Yn為當前濾波輸出值。
圖9 編碼器讀取子模塊
圖10 所示為直流電機速度控制Simulink 主程序圖,其中電機轉(zhuǎn)速和濾波器模塊即為圖9 所描述的,最終得到一個速度信號。圖中常數(shù)15 為設置的電機主軸(經(jīng)減速器后)轉(zhuǎn)速,下方濾波器輸出為電機的實際轉(zhuǎn)速,由于電機動力輸出經(jīng)過減速器才到達主軸,主軸的轉(zhuǎn)速需要電機編碼器的測量速度除以一個減速比,所以下方編碼器輸出與常數(shù)項K相乘。設定值與實際值相減得到誤差error,即電機轉(zhuǎn)速PID 控制器的輸入,系統(tǒng)輸出為電機驅(qū)動器的PWM控制量,其正負符號與絕對值大小決定電機的方向與速度。
圖10 電機速度控制的Simulink主程序
圖10 中上半部分Switch 模塊的作用是當輸入速度值不等于0 時,直接送入“1”高電平到電機模塊,作為電機驅(qū)動器的使能信號;當輸入速度值為0 時,將送入“0”低電平到電機模塊,電機停止轉(zhuǎn)動。電機模塊詳見圖11,其中In1 是電機驅(qū)動器的使能信號輸入,In2 為PWM 控制量輸入,這個量在程序里面被取絕對值并限幅。本文用到了Simulink 的Arduino 硬件包里的PWM 輸出模塊,即輸入255 到此模塊,則模塊自動輸出占空比100%的PWM 波形;而當輸入127 時則產(chǎn)生50%占空比的PWM 波形。該模塊為圖中的PWMA,對應于Arduino電路板的4號引腳。
圖11 電機模塊程序
圖12所示為電機轉(zhuǎn)速PID 控制器程序圖,是圖10中PID控制器的子程序。根據(jù)經(jīng)驗調(diào)試方法[14],設置PID對應的控制參數(shù)為[5,0.1,2],控制器的輸出是PWM 控制量,其正負號將決定電機的正反轉(zhuǎn),絕對值大小確定電機轉(zhuǎn)速,最后連接到圖10中的In2。
本小節(jié)將對系統(tǒng)進行控制測試。系統(tǒng)控制采樣率為50 ms,程序下載方式為“外部運行模式”[15],即HIL控制模式。
圖12 Simulink中PID控制器程序
如圖13 所示,一共采樣了700 步,可以看出在不到5 步的時間(250 ms),電機輸出達到設定值,系統(tǒng)基本無超調(diào)。在500 步時,電機主軸輸入一個隨機負載,系統(tǒng)在50步內(nèi)恢復到設定值。圖中子圖為局部放大圖。
圖13 有外部干擾下的系統(tǒng)速度控制階躍響應
為了進一步研究系統(tǒng)的內(nèi)部控制原理,本文測試了PID 模塊的輸出。如圖14 所示,可以看出系統(tǒng)開始時的速度差值最大,從而PID 模塊輸出值達到80,不過其仍然沒有達到系統(tǒng)255 的閾值,所以系統(tǒng)的設定速度仍然可以增加。由局部放大圖可看出,系統(tǒng)速度受外部負載干擾時導致速度降低,PID 控制器的輸出會立即增大,從而實現(xiàn)直流電機的速度實時控制。
圖14 PID模塊輸出的PWM控制量
本文構(gòu)建了基于Simulink 與Arduino 等低成本硬件的電機速度控制平臺,詳細分析了編碼器速度采集、PID控制模塊、電機控制模塊等軟件程序的實現(xiàn)過程。經(jīng)過試驗驗證,系統(tǒng)跟蹤能力強、超調(diào)小、抗擾能力好,控制效果達到要求。
本實驗平臺最大特點是低成本、開放性好、控制過程信息可視化。在此平臺基礎上,硬件可以繼續(xù)增加陀螺儀、藍牙、物聯(lián)網(wǎng)通信等模塊;進而驗證多環(huán)PID、自抗擾控制、模糊控制、滑??刂?、深度強化學習等諸多控制算法[16-20]。利用本實驗平臺,有利于將復雜的控制算法快速地向?qū)W生展示,提高了教學效率;另一方面實驗平臺采用MBD設計理念,有助于培養(yǎng)學生的系統(tǒng)設計與研發(fā)能力。