王 芃,高 震,董景新
(清華大學(xué)精密儀器系,北京 100084)
一種物美價(jià)廉的基于LabVIEW的PID控制實(shí)驗(yàn)裝置設(shè)計(jì)
王 芃,高 震,董景新
(清華大學(xué)精密儀器系,北京 100084)
為了使學(xué)生掌握用LabVIEW實(shí)現(xiàn)計(jì)算機(jī)控制,用STC12單片機(jī)設(shè)計(jì)了一塊接口卡,該卡將電機(jī)的位置數(shù)據(jù)反饋給上位機(jī)的LabVIEW程序,并接收LabVIEW程序發(fā)來的命令以控制電機(jī)轉(zhuǎn)動(dòng),學(xué)生可任意、隨時(shí)改變PID參數(shù)和采樣時(shí)間,觀察對應(yīng)的現(xiàn)象,從而深入理解計(jì)算機(jī)控制原理。
PID控制實(shí)驗(yàn);LabVIEW;物美價(jià)廉
接口卡在位置控制系統(tǒng)中的作用是采集電機(jī)的位置數(shù)據(jù),然后將其發(fā)送給上位計(jì)算機(jī)(以后簡稱上位機(jī)),上位機(jī)通過運(yùn)行LabVIEW,計(jì)算出控制量,然后向接口卡輸出,控制量經(jīng)接口卡轉(zhuǎn)換為PWM信號,再經(jīng)功放控制電機(jī)的轉(zhuǎn)動(dòng)[1]。
接口卡實(shí)物圖見圖1,接口卡的原理框圖見圖2。
1.1 CPLD內(nèi)部的功能模塊的設(shè)計(jì)
CPLD內(nèi)部有3個(gè)功能模塊:碼盤計(jì)數(shù)器、地址鎖存器和地址譯碼器。它們的設(shè)計(jì)全部用VHDL語言實(shí)現(xiàn),以下分別簡要說明。
圖1 接口卡實(shí)物圖
(1)碼盤計(jì)數(shù)器:電機(jī)每轉(zhuǎn)動(dòng)一圈,光電編碼器輸出相位相差90°的兩路脈沖信號A和B,各500個(gè)脈沖,計(jì)數(shù)器先根據(jù)A上跳沿時(shí)的B的電平判斷電機(jī)是正轉(zhuǎn)還是反轉(zhuǎn),然后據(jù)此對脈沖進(jìn)行可逆計(jì)數(shù),并將計(jì)數(shù)結(jié)果放在位置存儲(chǔ)器中。為不出現(xiàn)負(fù)數(shù)(以方便處理)規(guī)定:零點(diǎn)時(shí),位置計(jì)數(shù)器的初值是80000H(20位)[2],并且規(guī)定好位置計(jì)數(shù)器的地址。
(2)地址鎖存器:STC單片機(jī)是一種8051單片機(jī),因此其P0口分時(shí)復(fù)用地址總線的低8位是A0—A7和數(shù)據(jù)總線D0—D7。在其讀寫外部存儲(chǔ)器時(shí)先發(fā)出A0—A7,同時(shí)使ALE跳到低電平以通知外部設(shè)備:現(xiàn)在P0口是A0—A7。據(jù)此可設(shè)計(jì)在ALE下跳觸發(fā)的鎖存器使它鎖存A0—A7[2]。
圖2 接口卡原理框圖
(3)地址譯碼器:單片機(jī)P0口在發(fā)送完A0—A7后,開始收/發(fā)D0—D7,同時(shí)單片機(jī)還發(fā)出存儲(chǔ)器讀寫信號RD/WR和P2口的地址總線的高8位(A8—A15)。因此,設(shè)計(jì)了一個(gè)有如下功能的地址譯碼器:當(dāng)單片機(jī)輸出已規(guī)定好的位置計(jì)數(shù)器的地址(A0—A15),并且RD(讀)信號有效時(shí),就將位置計(jì)數(shù)器的內(nèi)容送到D0—D7總線上,則單片機(jī)將自動(dòng)將此值讀入,并按單片機(jī)中的程序作相應(yīng)的處理[3-4]。
1.2 單片機(jī)的程序設(shè)計(jì)
單片機(jī)有2種工作方式:
第1種是單片機(jī)讀取位置計(jì)數(shù)器中的數(shù)據(jù),并將其發(fā)送給上位機(jī)顯示,同時(shí)接收上位機(jī)發(fā)來的PID參數(shù)和指定位置參數(shù);單片機(jī)求出指定位置與現(xiàn)在位置間的偏差和偏差的積分,以及現(xiàn)在的速度;然后用PID參數(shù)與偏差、偏差的積分、速度相乘,得到控制數(shù)據(jù)后再送到單片機(jī)的PWM的數(shù)據(jù)存儲(chǔ)器中,產(chǎn)生相應(yīng)占空比的PWM波。
第2種也是單片機(jī)將位置數(shù)據(jù)發(fā)送給上位機(jī)顯示,但由上位機(jī)計(jì)算位置的偏差、偏差的積分和速度,并由PID參數(shù)和前述數(shù)據(jù)結(jié)合產(chǎn)生控制數(shù)據(jù);然后將控制數(shù)據(jù)傳給單片機(jī),單片機(jī)再將其送給單片機(jī)的PWM 的數(shù)據(jù)存儲(chǔ)器,并產(chǎn)生相應(yīng)占空比的PWM波[5-6]。
經(jīng)實(shí)踐檢驗(yàn):第1種方式中單片機(jī)計(jì)算浮點(diǎn)數(shù)略慢,不如第2種方式效果好,因此本系統(tǒng)采用第2種方式。
1.3 單片機(jī)與上位機(jī)間的通信
本系統(tǒng)采用USB轉(zhuǎn)串口線實(shí)現(xiàn)單片機(jī)與上位機(jī)間的通信。USB轉(zhuǎn)串口的傳輸速率取決于串口的速率,而近距離內(nèi)串口的傳輸速度波特率可以達(dá)到10 Mbit/s以上(距離15m)[3],若將位置采樣數(shù)據(jù)通過串口傳輸給上位機(jī)處理,每個(gè)位置數(shù)據(jù)是3個(gè)字節(jié),則串口可支持的采樣頻率高達(dá)300kHz,因?yàn)閷W(xué)生實(shí)驗(yàn)用的電機(jī)的機(jī)電時(shí)間常數(shù)都是10ms級的,加了控制機(jī)構(gòu)的整個(gè)系統(tǒng)的機(jī)電時(shí)間常數(shù)也不小于3ms,即其本身的頻率最高為350Hz[7-9]。因此為穩(wěn)定可靠,本系統(tǒng)采用了115.2Kbit/s的串口波特率,則本系統(tǒng)的采樣頻率可達(dá)3.5kHz,足以滿足奈奎斯特采樣定理的采樣頻率應(yīng)大于被采樣信號頻率的2倍的要求。
LabVIEW程序主要包含2部分:第1部分從串口讀取位置數(shù)據(jù)、計(jì)算位置偏差、速度及偏差的積分,程序如圖3所示。
圖3 讀取位置數(shù)據(jù)、計(jì)算位置偏差、速度、偏差的積分
LabVIEW程序依次讀取20位計(jì)數(shù)器的最低8位、中間8位和最高的4位,它們都是U8(無符號8位數(shù)),然后把它們分別轉(zhuǎn)換為U32(無符號32位數(shù)),并分別乘以其對應(yīng)的權(quán)值,最后合成為一個(gè)U32數(shù)字。由于需要把它減去原點(diǎn)(0x80 000)才可得到相對原點(diǎn)的位置,結(jié)果是有符號數(shù),所以應(yīng)把它先轉(zhuǎn)換為I32(有符號32位整數(shù))再減去原點(diǎn),即可得到現(xiàn)在的位置;現(xiàn)在的位置減去上次的位置就可得到速度;指定位置減去現(xiàn)在的位置即得到偏差,對偏差作累加可得到偏差的積分[10-12]。
LabVIEW程序的第2部分是用PID參數(shù)和第1部分得到的偏差等計(jì)算出控制數(shù)據(jù),然后通過串口發(fā)給單片機(jī),以P控制為例(如圖4所示)。
P一般是帶小數(shù)點(diǎn)的單精度浮點(diǎn)數(shù)(SGL),所以應(yīng)將位置誤差e(I32)轉(zhuǎn)換為SGL,然后才可以與P相乘,由于單片機(jī)的PWM數(shù)據(jù)存儲(chǔ)器只能接收16位整數(shù),所以將P×e的值限幅在(-32767,32767)范圍內(nèi),然后將其轉(zhuǎn)換為I16。由于計(jì)算機(jī)中的數(shù)都是用補(bǔ)碼表示的,而PWM存儲(chǔ)器(包括所有16位DA)需要用原碼減去8000H表示的數(shù)據(jù),所以應(yīng)將計(jì)算機(jī)中的數(shù)異或8000H才能得到此數(shù);然后將得到的16位數(shù)據(jù)右移后只取低8位就得到了原數(shù)據(jù)的高8位,將原數(shù)據(jù)直接只取低8位就得到了原數(shù)據(jù)的低8位,再將它們送入數(shù)組,通過數(shù)組轉(zhuǎn)換成字符串才能通過串口發(fā)出[11-12]。本系統(tǒng)運(yùn)行時(shí)電機(jī)的位置、速度的波形如圖5所示。
圖4 計(jì)算控制數(shù)據(jù)并從串口輸出
圖5 電機(jī)的位置、速度波形界面圖
本卡的單片機(jī)僅4元,CPLD僅40元,USB轉(zhuǎn)串口電纜僅10元,總成本不超過100元,所以便于在實(shí)驗(yàn)室中大量使用。本實(shí)驗(yàn)室就用它教授計(jì)算機(jī)控制課程,學(xué)生一致反映通過設(shè)置不同的PID參數(shù)和采樣時(shí)間觀察相應(yīng)的實(shí)驗(yàn)現(xiàn)象,加深了對原理的理解。
綜上所述,本卡在本計(jì)算機(jī)控制實(shí)驗(yàn)系統(tǒng)中的應(yīng)用是成功的。
(References)
[1]董景新,趙長德,熊沈蜀,等.控制工程基礎(chǔ)[M].北京:清華大學(xué)出版社,2003.
[2]趙長德,董景新,王芃.控制工程基礎(chǔ)實(shí)驗(yàn)教材[M].北京:清華大學(xué)出版社,2007.
[3]李江全,劉恩博.LabVIEW與串口通信測控應(yīng)用[M].北京:人民郵電出版社,2010.
[4]劉剛.LabVIEW 8.20編程及應(yīng)用[M].北京:電子工業(yè)出版社,2008.
[5]劉書智.VC串口通信與工程應(yīng)用實(shí)踐[M].北京:中國鐵道出版社,2011.
[6]楊恒.CPLD/FPGA快速入門[M].北京:北京航空航天大學(xué)出版社,2002.
[7]陳桂友.增強(qiáng)型8051單片機(jī)實(shí)用開發(fā)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2009.
[8]周功業(yè).現(xiàn)代微機(jī)系統(tǒng)與接口技術(shù) [M].北京:高等教育出版社,2004.
[9]裘雪紅.微型計(jì)算機(jī)原理與接口技術(shù)[M].西安:西安電子科技大學(xué)出版社,2007.
[10]洪志全.現(xiàn)代微機(jī)原理與接口技術(shù) [M].北京:機(jī)械工業(yè)出版社,2008.
[11]徐曉東.LabVIEW 8.5常用功能與編程[M].北京:電子工業(yè)出版社,2009.
[12]林靜.LabVIEW虛擬儀器程序設(shè)計(jì)從入門到精通[M].北京:人民郵電出版社,2010.
Design of a cheaper and price low experimental device for PID contol experiment based on LabVIEW
Wang Peng,Gao Zhen,Dong Jingxin
(Department of Precision Instrument,Tsinghua University,Beijing100084,China)
For the purpose of making students handle the technology of computer controlling with LabVIEW,an interface card is designed with STC12.The card can feed the motor’s position back to a computer which is running LabVIEW,and the card can also receive the order from LabVIEW to control the motor.Students can change the parameters and observe the phenomena so as to understand the theory deeply.
PID control experiment;LabVIEW;nice matter and low price
TP391;G434
A
1002-4956(2014)1-0107-03
2013-05-09
王芃(1970—),男,北京,碩士,工程師,研究方向?yàn)闄C(jī)電控制系統(tǒng)設(shè)計(jì).