朱奧辭, 趙 鋼
(天津理工大學(xué) 天津市復(fù)雜控制理論與應(yīng)用重點(diǎn)實(shí)驗(yàn)室,天津 300384)
隨著計(jì)算機(jī)仿真軟件功能不斷完善,處理速度快速提升,仿真在自動(dòng)控制系統(tǒng)和產(chǎn)品設(shè)計(jì)中的發(fā)揮著舉足輕重的作用,當(dāng)原型硬件電路和嵌入式代碼主要部分實(shí)現(xiàn)后,就可以在仿真軟件中將硬件電路和軟件結(jié)合起來(lái)并開(kāi)始測(cè)試工作,從而可以測(cè)試算法的可靠性,即提出的一種類RCP的實(shí)驗(yàn)設(shè)計(jì)方法。所謂類RCP實(shí)驗(yàn)設(shè)計(jì)方法是我們不需要在系統(tǒng)硬件搭建完成后才能對(duì)算法進(jìn)行驗(yàn)證,而是通過(guò)在Proteus仿真軟件中搭建硬件電路圖,算法通過(guò)keil軟件編譯下載到仿真電路圖中進(jìn)行仿真驗(yàn)證。本文利用Proteus仿真軟件設(shè)計(jì)了以AT89C52單片機(jī)為核心的算法驗(yàn)證直流電動(dòng)機(jī)閉環(huán)調(diào)速系統(tǒng),完成了硬件電路模型的設(shè)計(jì)和PID算法程序的調(diào)試,實(shí)現(xiàn)了閉環(huán)PID控制策略,驗(yàn)證了PID控制算法,為實(shí)際系統(tǒng)的設(shè)計(jì)打下了理論與技術(shù)基礎(chǔ)。
本方案利用Proteus仿真軟件設(shè)計(jì)了以AT89C52單片機(jī)為核心的直流電機(jī)閉環(huán)調(diào)速系統(tǒng),快速的完成了硬件電路模型的設(shè)計(jì)和PID算法程序的調(diào)試,從而實(shí)現(xiàn)閉環(huán)PID控制策略[1]。將單片機(jī)產(chǎn)生的脈寬調(diào)制控制信號(hào)加在電機(jī)驅(qū)動(dòng)模塊L293D芯片上驅(qū)動(dòng)直流電機(jī)實(shí)現(xiàn)正反轉(zhuǎn)和加減速運(yùn)動(dòng)的控制,4個(gè)獨(dú)立按鍵分別控制電機(jī)的速度增加、減小、停止、和正反轉(zhuǎn)等功能,用帶有測(cè)速裝置的電機(jī)模塊獲得實(shí)際轉(zhuǎn)速。通過(guò)控制系統(tǒng)輸出的脈沖寬度實(shí)現(xiàn)電機(jī)速度的精確控制,運(yùn)用偏差糾正偏差的閉環(huán)控制以及軟硬件相結(jié)合的實(shí)時(shí)仿真可以直觀地觀測(cè)到直流電機(jī)的給定速度和實(shí)際轉(zhuǎn)速,實(shí)現(xiàn)單片機(jī)對(duì)直流電動(dòng)機(jī)的閉環(huán)調(diào)速控制,系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
脈沖寬度調(diào)制(PWM),簡(jiǎn)稱脈寬調(diào)制,是通過(guò)調(diào)節(jié)脈沖寬度來(lái)調(diào)節(jié)電壓,最終實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的控制[2]。PWM是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬硬件電路進(jìn)行控制的一種非常有效的技術(shù),簡(jiǎn)單的講就是對(duì)輸出的脈沖寬度進(jìn)行控制[3]。PWM 有 3 個(gè)參數(shù),分別是頻率、占空比、周期。
對(duì)于電動(dòng)機(jī)的轉(zhuǎn)速調(diào)整采用脈寬調(diào)制(PWM)辦法,控制電動(dòng)機(jī)的時(shí)候,電源并非連續(xù)地向電機(jī)供電,而是在一個(gè)特定的頻率下以方波脈沖的形式提供電能。不同占空比的方波信號(hào)能對(duì)電機(jī)起到調(diào)速作用,這是因?yàn)殡姍C(jī)實(shí)際上是一個(gè)大電感,它有抑制輸入電流突變的能力,因此脈沖輸入信號(hào)被平均分配到作用時(shí)間上,通過(guò)改變?cè)谑寄芏薊N1 和EN2 上輸入方波的占空比就能改變加在電機(jī)兩端的電壓大小,從而改變了轉(zhuǎn)速[4-5]。如圖2所示,占空比就是在輸出的PWM中,高電平持續(xù)的時(shí)間和該 PWM 信號(hào)的周期持續(xù)的時(shí)間之比??刂齐姍C(jī)轉(zhuǎn)速時(shí),占空比越大,速度越快,如果全為高電平,占空比為100%時(shí),速度達(dá)到最快。
圖2 PWM信號(hào)的占空比
主控制器采用AT89C52單片機(jī),AT89C52芯片是8位的CPU,片內(nèi)有振蕩器和時(shí)鐘電路,工作頻率為1~12 MHz,片內(nèi)有256 byte RAM,片內(nèi)26個(gè)特殊功能寄存器,4個(gè)8位的并行I/O口,1個(gè)全雙工串行口,2個(gè)16位定時(shí)器,可處理6個(gè)中斷源,兩級(jí)中斷優(yōu)先級(jí)。通常單片機(jī)的引腳分為3類:電源和時(shí)鐘引腳、編程控制引腳、I/O口引腳。單片機(jī)模塊主要由 AT89C52 單片機(jī)及外圍濾波、電源管理、晶振和復(fù)位電路組成,CPU總是按一定的時(shí)鐘節(jié)拍與時(shí)序工作[6]。
控制系統(tǒng)使用基于兩個(gè)I/O口的獨(dú)立按鍵實(shí)現(xiàn)電機(jī)的加速和減速,直接在驅(qū)動(dòng)模塊設(shè)計(jì)兩個(gè)雙向開(kāi)關(guān)按鍵用于電機(jī)的正反轉(zhuǎn)和啟動(dòng)停止。直流電機(jī)運(yùn)行的實(shí)際速度狀態(tài)和給定的速度分別通過(guò)兩塊4位LED組成的顯示模塊顯示。
鍵盤(pán)模塊的特點(diǎn)在于采用獨(dú)立式鍵盤(pán)結(jié)構(gòu),使用AT89C52的P3.6和P3.7兩個(gè)引腳控制兩個(gè)獨(dú)立按鍵。按鍵在閉合和斷開(kāi)會(huì)存在抖動(dòng)現(xiàn)象,通常通過(guò)鍵盤(pán)軟件消抖的方法。單片機(jī)檢測(cè)按鍵是否按下的依據(jù)是檢測(cè)該鍵對(duì)應(yīng)的I/O口是否為低電平。兩塊四位LED通過(guò)鎖存端74LS245接在單片機(jī)P2.0~P2.7口上,分別顯示給定電機(jī)轉(zhuǎn)速和反饋轉(zhuǎn)速。
2.3.1L293D芯片介紹
L293D內(nèi)部等效電路圖如圖3所示,是雙H橋直流電機(jī)驅(qū)動(dòng)芯片,L293D提供雙向驅(qū)動(dòng)電流高達(dá)600 mA,電壓4.5~36 V,可以方便驅(qū)動(dòng)兩個(gè)直流電動(dòng)機(jī),兼容所有的TTL電平輸入。每個(gè)輸出都是推拉式驅(qū)動(dòng)電路,當(dāng)高電平送入使能端,與之對(duì)應(yīng)的驅(qū)動(dòng)電路被啟用,驅(qū)動(dòng)器的輸出為活躍狀態(tài),當(dāng)使能端輸入為低電平,驅(qū)動(dòng)器輸出被禁用關(guān)閉,處于高阻抗?fàn)顟B(tài)。用合適的電平輸入,驅(qū)動(dòng)電路形成一個(gè)完整的H橋可逆驅(qū)動(dòng)器即可用于驅(qū)動(dòng)電機(jī)。
圖3 L293D內(nèi)部等效電路圖
2.3.2驅(qū)動(dòng)電路設(shè)計(jì)
用單片機(jī)控制直流電機(jī)時(shí),需要加驅(qū)動(dòng)電路,為直流電機(jī)提供足夠大的驅(qū)動(dòng)電流,通常有三極管電流放大驅(qū)動(dòng)電路、電機(jī)專用驅(qū)動(dòng)模塊(L293D)和達(dá)林頓驅(qū)動(dòng)器等等。本設(shè)計(jì)采用電機(jī)驅(qū)動(dòng)模塊L293D,AT89C52單片機(jī)通過(guò)P1.0口產(chǎn)生PWM波信號(hào)接在L293D的使能端,通過(guò)IN1和IN2端口控制電機(jī)正反轉(zhuǎn),通過(guò)一個(gè)非門(mén)實(shí)現(xiàn)。對(duì)應(yīng)的OUT1和OUT2輸出接在直流電機(jī)兩端,驅(qū)動(dòng)電路如圖4所示。
圖4 驅(qū)動(dòng)電路設(shè)計(jì)圖
本設(shè)計(jì)選用Proteus元件庫(kù)中的直流電機(jī)位置編碼器裝置(DC POSITION ENCODER MOTOR),MOTOR-encoder中間的是編碼器,電機(jī)每轉(zhuǎn)一周,編碼器檢測(cè)出一次高電平,根據(jù)這個(gè)原理可以測(cè)出轉(zhuǎn)速,檢測(cè)左右兩邊可以看出電機(jī)的正反轉(zhuǎn)。MOTOR-encoder的編碼輸出與本系統(tǒng)所要求的增量式旋轉(zhuǎn)編碼器具有同等功能,可提供兩路具有90°相位差的編碼脈沖,根據(jù)編碼器輸出的兩路具有90°相位差的編碼脈沖,反饋給單片機(jī)計(jì)數(shù)器T0后計(jì)數(shù),既可以測(cè)速又可以判斷方向[7]。利用其中任何一個(gè)可實(shí)現(xiàn)對(duì)轉(zhuǎn)速的檢測(cè)。本系統(tǒng)對(duì)MOTOR-encoder設(shè)置參數(shù)為如下圖5所示。
圖5 MOTOR-encoder參數(shù)設(shè)置
軟件由主程序、中斷子程序、PID子程序組成。
當(dāng)系統(tǒng)啟動(dòng)后,單片機(jī)進(jìn)行初始化設(shè)置,主程序是一個(gè)循環(huán)程序。其主要思路是,先在程序中設(shè)定好速度的給定值,這個(gè)給定值與MOTOR-encoder測(cè)速電機(jī)送來(lái)的速度相比較得到一個(gè)誤差值,然后用PID算法輸出控制參數(shù)給PWM發(fā)生電路,從而改變波形的占空比,進(jìn)而控制電機(jī)的轉(zhuǎn)速[8]。單片機(jī)檢測(cè)是否有按鍵按下,通過(guò)對(duì)按鍵的判斷改變電機(jī)給定速度,從而改變系統(tǒng)輸出占空比。系統(tǒng)的主程序流程圖如圖6所示。
圖6 主程序流程圖
定時(shí)器0中斷程序先初始化清軟件計(jì)數(shù)器,然后判斷T0是否進(jìn)入定時(shí)狀態(tài),如果進(jìn)入定時(shí)狀態(tài)則對(duì)光電編碼盤(pán)發(fā)出有脈沖進(jìn)行計(jì)數(shù),在固定周期內(nèi)計(jì)算轉(zhuǎn)速和PID計(jì)算,同時(shí)定時(shí)器0具有對(duì)數(shù)碼管顯示送入段選和位選。流程圖如圖7所示。
圖7 定時(shí)器流程圖
比例環(huán)節(jié)的作用是對(duì)系統(tǒng)偏差瞬息進(jìn)行判斷,比例系數(shù)越大,控制作用越強(qiáng),但比例系數(shù)如果過(guò)大會(huì)導(dǎo)致系統(tǒng)振蕩不穩(wěn)定;積分環(huán)節(jié)雖然可以消除靜態(tài)誤差,但過(guò)大的積分作用會(huì)增加系統(tǒng)的超調(diào)量,響應(yīng)速度變慢,出現(xiàn)等幅振蕩等;微分環(huán)節(jié)的作用是可以起到超前作用,阻止偏差變化,能夠減小超調(diào)量,使系統(tǒng)更穩(wěn)定,但魯棒性差[9]。該程序主要是把設(shè)定的轉(zhuǎn)速現(xiàn)當(dāng)前測(cè)量得到的轉(zhuǎn)速來(lái)計(jì)算偏差,從而用PWM輸出方式來(lái)確定輸出脈沖的寬度。
常規(guī)的模擬PID控制系統(tǒng)原理框圖如圖8所示。該系統(tǒng)由模擬PID控制器和被控對(duì)象組成。圖中,r(t)是給定值,y(t)是系統(tǒng)的實(shí)際輸出值,給定值與實(shí)際輸出值構(gòu)成控制偏差[10]。
e(t)=r(t)-y(t)
(1)
式中:e(t)為PID控制的輸入;u(t)為PID控制器的輸出和被控對(duì)象的輸入。所以模擬PID控制器的控制規(guī)律為:
(2)
式中:Kp為控制器的比例系數(shù);Ti為控制器的積分時(shí)間,也稱積分系數(shù);Td為控制器的微分時(shí)間,也稱微分系數(shù)[11]。
圖8 模擬PID控制系統(tǒng)原理圖
對(duì)式(2)進(jìn)行適當(dāng)?shù)淖儞Q,即可以進(jìn)行數(shù)字PID控制。數(shù)字PID控制算法可以分為位置式PID和增量式PID控制算法。
位置式PID表達(dá)式為:
(3)
增量式PID控制算法公式:
Δuk=uk-uk-1=
Aek+Bek-1+Cek-2
(4)
由式(4)可以看出,如果單片機(jī)控制系統(tǒng)采用恒定的采樣周期T,一旦確定A、B、C,只要使用前后3次測(cè)量的偏差值,就可以由式(4)求出控制量。增量式PID控制算法與位置式PID控制算法相比,計(jì)算量小得多,因此本次設(shè)計(jì)中采用的PID算法是增量式的[12-13]。圖9所示為軟件實(shí)現(xiàn)PID算法流程圖。
圖9 增量式PID控制程序流程圖
本次設(shè)計(jì)采用Keil軟件和Proteus仿真軟件對(duì)直流電機(jī)閉環(huán)調(diào)速的PID算法進(jìn)行調(diào)試、驗(yàn)證、仿真。首先在Keil中對(duì)電機(jī)調(diào)速程序進(jìn)行編寫(xiě)和調(diào)試,編譯生產(chǎn)“.HEX”的目標(biāo)代碼文件,時(shí)鐘頻率設(shè)置為12MHz。然后下載到Proteus中組建完成的硬件系統(tǒng)中進(jìn)行軟硬件聯(lián)調(diào)仿真。最終仿真效果如圖10所示[14-15]。
圖10 系統(tǒng)仿真效果圖
為了更直觀的觀察仿真結(jié)果,從虛擬儀器模式中選取示波器模塊分別對(duì)電機(jī)驅(qū)動(dòng)模塊的使能端信號(hào)進(jìn)行檢測(cè),利用圖表模式對(duì)編碼器的兩路信號(hào)和單片機(jī)產(chǎn)生的PWM波信號(hào)進(jìn)行電壓信號(hào)分析。
當(dāng)系統(tǒng)仿真開(kāi)始運(yùn)行時(shí),程序設(shè)定初始給定速度為240 r/min,電機(jī)實(shí)際轉(zhuǎn)速開(kāi)始慢慢加速,最終穩(wěn)定在給定轉(zhuǎn)速。當(dāng)點(diǎn)擊加速按鍵或是減速按鍵時(shí),電機(jī)轉(zhuǎn)速會(huì)出現(xiàn)短暫的超調(diào)或滯后,最終會(huì)穩(wěn)定在給定設(shè)置速度。通過(guò)連接示波器可以直觀的觀察到電機(jī)的實(shí)際轉(zhuǎn)速和當(dāng)前速度PWM的波形圖,通過(guò)圖表模式,添加激勵(lì)源探針,可以觀察到編碼器的電壓信號(hào)。示波器測(cè)量不同轉(zhuǎn)速波形如圖11所示。圖表測(cè)得波形如圖12所示。
圖11 電機(jī)加速前后的速度和PWM信號(hào)波形
圖12 編碼器電壓信號(hào)和PWM電壓信號(hào)
從圖11中可以看出,加速后系統(tǒng)的占空比增大,編碼器轉(zhuǎn)速的波形圖抖動(dòng)頻率變大,電機(jī)速度變快,給定速度和電機(jī)實(shí)際速度相吻合,所以符合設(shè)計(jì)要求。采用PID閉環(huán)調(diào)速算法有效地抑制轉(zhuǎn)速的超調(diào),調(diào)速精確,效率高。運(yùn)用Proteus和Keil對(duì)直流電機(jī)閉環(huán)調(diào)速進(jìn)行了軟硬件的設(shè)計(jì),有效地驗(yàn)證了PID算法,起到了本文提出的類快速控制原型的效果。
[1] 宛 錚,王慶泉. 基于Proteus的無(wú)刷直流電機(jī)控制器仿真設(shè)計(jì)[J].科技信息,2012(15):15-16.
[2] 王 玲,王中訓(xùn),王 恒.基于 MSP430 單片機(jī)的多路無(wú)線溫度檢測(cè)系統(tǒng)[J].現(xiàn)代電子技術(shù),2011,34(1):125-127.
[3] 李玲玲.一種智能電風(fēng)扇的設(shè)計(jì)[J].遵義師范學(xué)院學(xué)報(bào),2016.08,18(4):105-106.
[4] 鄧春林.基于PWM調(diào)速技術(shù)的智能溫控風(fēng)扇系統(tǒng)[J].電子制作,2015.07,(108):88-89.
[5] 盧 瑩.基于BCI的假肢控制方法研究[D].秦皇島:燕山大學(xué),2011(3):37-39.
[6] 何 沖,王淑紅,侯勝偉,等.基于AT89C52單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)研究[J].電氣技術(shù),2012(4):5-6.
[7] 童東兵,張莉萍,張 穎,等.基于任務(wù)驅(qū)動(dòng)的《微機(jī)控制系統(tǒng)課程設(shè)計(jì)》教學(xué)與實(shí)踐[J].上海工程技術(shù)大學(xué)教育研究,2016(1):32-35.
[8] 楊 靖.單片機(jī)控制的直流電機(jī)調(diào)速系統(tǒng)[J].機(jī)床電器,2008(1):45-47.
[9] 謝世杰,陳生潭,樓順天.數(shù)字PID算法在無(wú)刷直流電機(jī)控制器中的應(yīng)用[J].現(xiàn)代電子技術(shù),2004(2):59-61.
[10] 張大釗.基于開(kāi)關(guān)變壓器式的電機(jī)軟起動(dòng)器研究[D].西安:西安科技大學(xué),2010:24-25.
[11] 劉佳佳.大型強(qiáng)力數(shù)控旋壓機(jī)液壓伺服系統(tǒng)研究[D].北京:北京工業(yè)大學(xué),2014:20-21.
[12] 周 越.半自主足球機(jī)器人控制系統(tǒng)研究與開(kāi)發(fā)[D].北京:華北電力大學(xué),2003:37-38.
[13] 孟凡兵.基于ARM的智能調(diào)節(jié)器研究與實(shí)現(xiàn)[D].大連:大連工業(yè)大學(xué),2011:48-50.
[14] 張毅剛.基于Proteus的單片機(jī)課程的基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì)[M].北京:人民郵電出版社,2012.
[15] 袁占軍.基于proteus的直流電機(jī)PWM調(diào)速系統(tǒng)研究[J].電子設(shè)計(jì)工程,2013,21(15):115-116.