黃 健
(西京學院, 西安 710123)
直流電機能夠將電能轉換為機械能,具有功率大、可靠性高、使用壽命長、噪聲低等優點。因而在家用電器、數控機床、電動車、機器人、計算機外圍設備等方面有廣泛的應用。如何控制和調整電機的轉速是工程和實驗領域要解決的問題之一。通常采用PWM波控制電機的轉速,根據PWM波的占空比調整電機的轉速,當占空比從0%~100%逐漸增大時,電機的轉速逐漸提高。但是在實驗和實際應用中,經常會發現,給一個固定占空比的PWM波,由于受到各種客觀因素的影響,比如空氣阻力、機械摩擦,電機的轉速并不能達到一個穩定的速度[1~3]。
因此,對電機的控制引入自動控制的原理,采用經典的PID控制,PID控制中P是比例系數,使得電機速度盡快到達設定值,但P值過大,將會使得系統發生震蕩。I的值主要是消除靜態誤差,I值越小,積分作用越強。D反應系統偏差信號的變化率,能夠預見偏差的變化趨勢,具有超前的調節功能。D微分控制可有效抑制震蕩,但引入D,系統的響應變慢,增大了系統的阻尼。這三個參數配合使用,能夠解決常用的線性系統的控制問題。但P、I、D的參數變化范圍很大,很難找到合適的參數[4,5]。
本文給出了電機調速的PI控制,不需要參數D,就可較好的控制電機的轉速。并給出了具體的P和I參數選擇的方法,通過大量的實驗,借助串口數據傳送和MATLAB進行數據分析,得到了合適的參數,完成了對電機恒速的控制。該研究為其它PID控制提供了方法和參數選擇的具體實施步驟。
速度PI控制器框圖如圖1所示。在進行速度控制時,首先設定一個速度值,直流電機驅動器給定控制信號和PWM波,控制直流電機旋轉。PI控制器用軟件實現,為了實現速度PI控制,必須測量電機的轉速,可采用霍爾傳感器或自帶編碼器的電機,建議采用編碼器,測量精度高。將測得的速度進行反饋,設定的速度值減去測量的真實值,得到一個誤差e。然后用PI控制器對速度誤差進行修正,重新計算得到一個占空比,控制PWM波的占空比的增大或者減小,重新驅動電機旋轉。當實際速度小于設定速度,PI控制器控制PWM波的占空比增大,提高電機轉速;當實際速度大于設定速度,PI控制器控制PWM波的占空比減小,降低電機轉速;直到誤差e降低到最低為止[6~8]。最終使得電機的實際轉速接近或者等于設定值。
增量式離散PID公式如式(1)所示。
PWM+=KP×[e(k)-e(k-1)]+Ki×e(k)
+Kd×[e(k)-2e(k-1)+e(k-2)]
(1)
式中:e(k)為本次誤差;e(k-1)——上次誤差;e(k-2)——上上次誤差;PWM——PWM波占空比的增加量;Kp——比例系數P;Ki——積分系數I;Kd——積分系數D。若采用PI控制,式(1)演變為式(2),如下所示
PWM+=KP×[e(k)-e(k-1)]+Ki×e(k)
(2)
系統設計如圖2所示。圖中主控采用STM32F103ZET6,基于Cortex-M3技術,是高性能微處理器,適合驅動直流電機,共有8個定時器,可用于PWM波的產生和編碼器的測速。直流電機驅動采用TB6612,采用12V供電,控制信號為5V供電,可方便驅動小型直流電機,最高驅動電流1.2A。所驅動的直流電機為6V直流電機,自帶編碼器,電機每旋轉一圈,產生390個脈沖,將其接入STM32F103ZET6的Timer2定時器,就可測得速度。在進行速度PI控制器設計時,可用按鍵實時修改Kp、Ki、Kd的值。對于每一組固定的Kp、Ki、Kd的值,采集500個數據,將其通過串口送給電腦,保存為TXT文件,導入MATLAB下進行分析。顯示單元為TFT真彩屏,為提高刷屏速度,采用硬件SPI連接。可在顯示屏上顯示當前的設定速度值、測量速度值、Kp、Ki、Kd的值或者其它信息。在調試時,為了找到合適的Kp、Ki值,可用軟件方法,每采集500個值后,讓Kp、Ki自動加1,然后將所有數據通過串口傳送給電腦保存起來,統一用MATLAB進行分析,找到最佳曲線。
TB6612是東芝公式推出的一款直流電機驅動芯片,集成度高,可同時驅動2路直流電機[9]。TB6612的硬件連接圖如圖3所示。
圖3中PA0、PA11、PA12控制1路電機,PA0產生PWM波,控制電機的轉速,PA11、PA12控制電機的方向。PA1、PB10、PB12控制另1路電機,PA1產生PWM波,控制電機的轉速,PB10、PB12控制電機的方向。AO1、AO2連接1路電機,B01、B02連接另外1路電機。
TFT顯示單元采用1.44寸SPI接口真彩屏,顯示電路設計如圖4所示。
為提高1.44 TFT真彩屏的刷屏速度,采用硬件SPI接口與STM32相連,其中SCLK連接到PB13(SPI2_SCLK),DI連接到PB15(SPI2_MOSI),CS連接到PB12(SPI2_NSS).其余RST為復位信號,GND要共地,VCC接3.3V。
軟件流程圖如圖5所示。在圖5中首先對定時器1、定時器2、PWM波、硬件SPI進行初始化。定時器1初始化為10ms中斷一次,在中斷中主要進行電機測速和PI控制。定時器2初始化為計數方式,每隔10ms讀取一次編碼器的輸出值,得到直流電機的實際轉速。用按鍵設置電機的轉速[9]。啟動電機轉動。10ms中斷時間到,進定時器1中斷,編碼器測速,得到實際速度值,用設定值減去測量值,得到速度差e。用式(2)計算,得到PWM的增量,重新修改PWM值,調整電機轉速。若測量值小于設定值,則PWM增大,提高電機轉速;若測量值大于設定值,則PWM減小,降低電機轉速。為了找到合適的P和I的系數Kp和Ki,對于每一個固定的Kp和Ki值,連續測量500次。然后修改Kp或Ki值,自動加1或者減1。在一定的范圍內,連續測量多組Kp和Ki的值所對應的速度值。最后通過串口傳送給計算機,保存為TXT文件,將其導入MATLAB下進行分析。確定最終的Kp和Ki的值。
搭建的實驗平臺如圖6所示。在KEIL下用C語言編寫程序代碼,通過串口將數據傳送給計算機,保存為TXT文件,導入MATLAB下進行分析[10]。
調試步驟如下:
(1)設定合適的目標速度值。首先將PWM值從0%~100%逐漸增大,每隔10ms測得編碼器的輸出范圍從0~70。目標值應該設置為最大值的60%~70%,選取為45。
(2)在進行PID調節時,首先將I和D的系數設置為0,用式(3)對電機進行調節,P的系數從0開始逐漸增大,直到出現震蕩為止,圖7中給出了部分曲線,從圖中可以看出,Kp=80系統震蕩,出現了2個震蕩波形,選取此時的系數為P的系數,得到Kp=80。
PWM+=KP×e(k)
(3)
(3)確定I的系數,I首先選取一個最大值500,然后每次遞減1,直到系統出現2個震蕩波,且振幅比為4∶1時為止,此時的波形就是PI調節中的最佳波形。經過多個圖形對比,得到如圖8所示波形,I的系數Ki=152。
(4)若系統經過PI調節后,還不能得到滿意的曲線,則用式(3)加入微分環節D,D的調節方法和P類似,逐漸增大,并根據波形適當的微調P和I的參數,直到得到滿意的波形為止。
本文從理論上分析了PI調節的控制原理,給出了對應的增量離散式PI公式。搭建了對應的硬件平臺,編制了相應的軟件,對P和I的系數進行了多次實驗,通過串口發送給計算機,借助MATLAB對波形進行了分析,最終得到了理想的曲線,確定了P和I的參數。詳細論述了PID調節的步驟和過程,使得在PID調節過程中無需建模,通過實驗并借助電腦分析就能夠快速確定P、I、D的參數,具有一定的實用價值。
[1] 呂 毅,戚志東.一種基于分數階PID直流電機調速的AGV控制系統[J]. 現代電子技術,2017,40(3):127~130.
[2] 武同昆,周超英,謝 鵬.基 于PWM的 遠 程 控 制 新 型 變 量 噴 霧 系 統 設 計[J].農機化研究,2017(7):76~82.
[3] 陳 強.無刷直流電機系統的仿真研究[J].現代雷達,2011,33(7):56~59.
[4] 趙志濤,賈彥斌,趙志誠,何秋生.永磁無刷直流電機調速系統的改進型 IMC-PI 控制[J].火力與指揮控制,2016,41(9):70~79.
[5] 劉家兵,李志紅,任艷鋒.無刷直流電機模糊PI系統的建模及仿真[J].控制工程,2008,15(s1):125~133.
[6] 王軍,馮能蓮,張春強,張星宇.無刷直流電機模糊與PI雙閉環調速系統的研究[J].安徽農業大學學報,2016,43(4):662~666.
[7] 溫嘉斌, 麻宸偉.無刷直流電機模糊PI控制系統設計[J].電機與控制學報,2016,20(3):102~108.
[8] 郭偉,陳一帆,周麗,倪家健.無刷直流電機分數階PI預測函數控制研究[J].武漢理工大學學報,2013,35(3):130~135.
[9] 姜文彪,吳堅.直流電機雙閉環PI 控制技術研究[J].機床與液壓,2012,40(11):21~24.
[10] 王霞,朱景偉. 基于模糊PI控制的無刷直流電機調速系統[J].電氣傳動,2014,44(1):63~67.