余善恩, 李 真
(杭州電子科技大學(xué) 自動(dòng)化學(xué)院,杭州 310018)
氣浮球控制實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與應(yīng)用
余善恩, 李 真
(杭州電子科技大學(xué) 自動(dòng)化學(xué)院,杭州 310018)
設(shè)計(jì)了一個(gè)符合教學(xué)需要的實(shí)驗(yàn)系統(tǒng),該系統(tǒng)設(shè)計(jì)主要包括超聲測(cè)距模塊設(shè)計(jì)與實(shí)現(xiàn)、控制驅(qū)動(dòng)模塊設(shè)計(jì)與實(shí)現(xiàn)、上位機(jī)軟件設(shè)計(jì)開發(fā)三部分。超聲測(cè)距模塊的功能是確定當(dāng)前浮球的位置,并將此位置信息反饋給控制驅(qū)動(dòng)模塊。控制驅(qū)動(dòng)模塊接收來(lái)自超聲測(cè)距模塊的浮球位置信息,與來(lái)自上位機(jī)或就地設(shè)定的目標(biāo)位置進(jìn)行比較,采用PID控制算法調(diào)節(jié)風(fēng)機(jī)風(fēng)力,最終實(shí)現(xiàn)將浮球控制到目標(biāo)位置,同時(shí)將浮球的運(yùn)動(dòng)軌跡信息傳送到上位機(jī)。上位機(jī)軟件可以設(shè)定浮球的目標(biāo)位置或運(yùn)動(dòng)軌跡,并發(fā)送給控制驅(qū)動(dòng)模塊,同時(shí)接收浮球位置信息,進(jìn)行其運(yùn)行軌跡的顯示、分析、處理。實(shí)踐結(jié)果表明,該系統(tǒng)為學(xué)生學(xué)習(xí)自動(dòng)控制原理、單片機(jī)、嵌入式系統(tǒng)等課程提供了一個(gè)創(chuàng)新的實(shí)驗(yàn)平臺(tái),取得了良好的教學(xué)效果。
超聲測(cè)距; 氣浮球; PID控制算法; 實(shí)驗(yàn)系統(tǒng)
當(dāng)前自動(dòng)化類專業(yè)的自動(dòng)控制原理實(shí)驗(yàn)一般基于Matlab仿真平臺(tái)實(shí)現(xiàn),未能很好地和控制對(duì)象結(jié)合起來(lái),學(xué)生很難從頭到尾參與到整個(gè)實(shí)驗(yàn)環(huán)節(jié)中來(lái),不利于對(duì)控制原理的理解與掌握,實(shí)驗(yàn)效果并不理想。
本文設(shè)計(jì)了一個(gè)符合教學(xué)需求的創(chuàng)新型實(shí)驗(yàn)系統(tǒng)。該系統(tǒng)綜合多門專業(yè)課程知識(shí),為學(xué)生學(xué)習(xí)自動(dòng)控制原理、單片機(jī)、嵌入式系統(tǒng)等課程提供了一個(gè)綜合性實(shí)驗(yàn)平臺(tái)。同時(shí),該系統(tǒng)不太復(fù)雜,在學(xué)生應(yīng)用所學(xué)知識(shí)可以駕馭的范圍內(nèi),具有一定的趣味性,簡(jiǎn)單直觀,有利于提高學(xué)生參與其中的積極性。
本文設(shè)計(jì)的實(shí)驗(yàn)系統(tǒng)如圖1所示,研究?jī)?nèi)容可以劃分為超聲測(cè)距模塊設(shè)計(jì)與實(shí)現(xiàn),控制驅(qū)動(dòng)模塊設(shè)計(jì)與實(shí)現(xiàn)和上位機(jī)軟件設(shè)計(jì)開發(fā)三個(gè)部分[1-2]。
圖1 氣浮球控制實(shí)驗(yàn)系統(tǒng)示意圖
超聲測(cè)距模塊實(shí)現(xiàn)的功能是通過(guò)發(fā)射超聲波,計(jì)算從發(fā)射時(shí)間到接收到反射波時(shí)間來(lái)確定當(dāng)前小球的位置,將此位置信息反饋給控制驅(qū)動(dòng)模塊用于其控制??刂乞?qū)動(dòng)模塊接收來(lái)自超聲測(cè)距模塊的浮球位置信息,與來(lái)自上位機(jī)或本地設(shè)定的目標(biāo)位置進(jìn)行比較,采用一定的控制算法,計(jì)算出當(dāng)前的風(fēng)機(jī)驅(qū)動(dòng)量,去調(diào)節(jié)風(fēng)機(jī)風(fēng)力,最終實(shí)現(xiàn)將浮球控制到目標(biāo)位置,同時(shí)將浮球的運(yùn)動(dòng)軌跡等信息傳送到上位機(jī)用于顯示、分析、處理。上位機(jī)軟件可以設(shè)定浮球的目標(biāo)位置或運(yùn)動(dòng)軌跡發(fā)送給控制驅(qū)動(dòng)模塊,同時(shí)接收浮球軌跡信息,可以進(jìn)行其運(yùn)行軌跡的顯示、分析、處理[3]。
系統(tǒng)總體硬件電路框圖如圖2所示,主要包括系統(tǒng)控制、按鍵控制、串口通信、風(fēng)扇驅(qū)動(dòng)、超聲測(cè)距等電路。
圖2 硬件電路框圖
(1) 系統(tǒng)控制電路。該系統(tǒng)采用基于32位的ARM Cortex-M3處理器STM32F103VBT6作為主控芯片,它具有非常豐富的片內(nèi)資源,例如實(shí)時(shí)時(shí)鐘(RTC)、定時(shí)器(TIM)、通用I/O接口(GPIO)、DMA控制器、A/D轉(zhuǎn)換器、USART接口、I2C接口、SPI接口和CAN總線接口還包括20 KB的片內(nèi)SRAM,128 KB的片內(nèi)Flash以及一個(gè)支持USB 2.O規(guī)范的全速USB外圍設(shè)備等,它是整個(gè)系統(tǒng)的主控單元,協(xié)調(diào)其他模塊完成數(shù)據(jù)采集、存儲(chǔ)、處理、控制、傳輸?shù)榷囗?xiàng)功能[4]。
(2) 按鍵控制電路。按鍵控制電路如圖3所示,單片機(jī)通過(guò)檢測(cè)4個(gè)GPIO口(PC0、PC2、PA0、PC1)的高低電平變化來(lái)判斷哪個(gè)按鍵按下。當(dāng)按鍵按下后,GPIO口會(huì)從低電平變?yōu)楦唠娖?,依此可以判定按鍵是否按下。電路中每個(gè)電容起到硬件消抖動(dòng)的作用,電阻則是防止過(guò)流。
圖3 按鍵控制電路
按鍵是用于初期程序的調(diào)試,最終歸結(jié)到上位機(jī)控制,用上位機(jī)直接傳輸高度、PID系數(shù)等數(shù)據(jù),也包括開始和結(jié)束系統(tǒng)的控制。所以按鍵只是作為輔助調(diào)試電路方便進(jìn)行初期調(diào)試[5]。
(3) 串口通信電路。單片機(jī)和上位機(jī)的通信是使用串口通信方式,電路圖如圖4所示。串口通信是一種可以將接受來(lái)自CPU的并行數(shù)據(jù)字符轉(zhuǎn)換為連續(xù)的串行數(shù)據(jù)流發(fā)送出去,同時(shí)可將接受的串行數(shù)據(jù)流轉(zhuǎn)換為并行的數(shù)據(jù)字符供給CPU的通信協(xié)議。在本實(shí)驗(yàn)系統(tǒng)中利用了USB轉(zhuǎn)串口模塊,即實(shí)現(xiàn)計(jì)算機(jī)USB接口到通用串口之間的轉(zhuǎn)換。
圖4 串口通信電路
CH341是一個(gè)USB總線的轉(zhuǎn)接芯片,通過(guò)USB總線提供異步串口、打印口、并口以及常用的2線和4線等同步串行接口。在異步串口方式下,CH341提供串口發(fā)送使能、串口接收就緒等交互式的速率控制信號(hào)以及常用的MODEM聯(lián)絡(luò)信號(hào),用于為計(jì)算機(jī)擴(kuò)展異步串口,或者將普通的串口設(shè)備直接升級(jí)到USB總線[6]。
(4) 風(fēng)扇驅(qū)動(dòng)電路。控制氣浮球運(yùn)動(dòng)的風(fēng)扇的驅(qū)動(dòng)電路如圖5所示。風(fēng)扇采用PWM波控制,通過(guò)控制PWM波的占空比來(lái)控制風(fēng)速。此系統(tǒng)使用單片機(jī)的PA6口發(fā)送PWM波,PWM使用單片機(jī)的TIM1定時(shí)器實(shí)現(xiàn)輸出。TIM1高級(jí)控制定時(shí)器可以實(shí)現(xiàn)輸入捕捉、輸出比較、產(chǎn)生PWM和反相PWM。系統(tǒng)就是使用定時(shí)器的PWM產(chǎn)生功能,通過(guò)設(shè)置輸出頻率、占空比、輸出模式等輸出可控的PWM,然后通過(guò)隔離,放大后驅(qū)動(dòng)MOS管的開關(guān),進(jìn)而控制風(fēng)扇電機(jī)的轉(zhuǎn)速,最終達(dá)到控制小球運(yùn)動(dòng)的目的[7]。
圖5 風(fēng)扇驅(qū)動(dòng)電路
(5) 超聲波測(cè)距模塊。測(cè)量小球運(yùn)動(dòng)軌跡使用HC-SR04超聲波測(cè)距模塊,該模塊測(cè)量精度高,可以達(dá)到0.4 mm;測(cè)量距離遠(yuǎn),可以達(dá)到30 cm左右。硬件電路簡(jiǎn)單,只需要占用4個(gè)GPIO口,包括超聲波輸出控制、信號(hào)接收反應(yīng)管腳、VCC和接地管腳。程序控制也很簡(jiǎn)單,占用一個(gè)定時(shí)器計(jì)(TIM2),程序開始給定時(shí)器賦予初值,然后控制模塊發(fā)出超聲波,超聲波碰到障礙物后會(huì)反射回來(lái),模塊接受到反射回來(lái)的超聲波會(huì)給一個(gè)管腳脈沖,這樣就可以判定收到,關(guān)閉定時(shí)器,此時(shí)讀出TIM2的值,這樣經(jīng)過(guò)計(jì)算后便可以得到模塊與障礙物之間的距離[8]。
系統(tǒng)軟件設(shè)計(jì)總體流程如圖6所示,主要包括系統(tǒng)初始化、風(fēng)扇驅(qū)動(dòng)、超聲測(cè)距、串口通信等子程序,同時(shí)還包括了上位機(jī)軟件設(shè)計(jì)。
圖6 軟件流程圖
(1) 系統(tǒng)初始化。程序的初始化,包括系統(tǒng)時(shí)鐘的初始化,GPIO口的初始化,串口通信初始化,定時(shí)器初始化等。對(duì)芯片進(jìn)行初始化后,才可以使芯片正常工作[9]。
系統(tǒng)時(shí)鐘初始化主要是設(shè)置系統(tǒng)的時(shí)鐘頻率,包括設(shè)置時(shí)鐘的預(yù)分頻和使用的芯片功能的時(shí)鐘使能;GPIO口初始化包括使用的GPIO口打開使能、輸出頻率、模式選擇和管腳復(fù)用使能;串口通信初始化包括串口的波特率、字長(zhǎng)、停止位、奇偶校驗(yàn)位等設(shè)置;定時(shí)器設(shè)置包括定時(shí)器的分頻、計(jì)數(shù)方式、打開允許計(jì)數(shù)等設(shè)置。
(2) 風(fēng)扇驅(qū)動(dòng)程序。風(fēng)扇使用PWM波驅(qū)動(dòng),STM32單片機(jī)有專門的PWM輸出功能,可以設(shè)置其輸出的頻率、占空比等。
程序的PWM輸出使用單片機(jī)高級(jí)控制定時(shí)器TIM1輸出,設(shè)置定時(shí)器可以實(shí)現(xiàn)輸入捕獲、輸出比較、產(chǎn)生PWM等功能。只需要通過(guò)改變PWM波的占空比,就可以控制氣浮球的位置。程序中設(shè)置一個(gè)全局變量,通過(guò)不斷重新設(shè)置PWM輸出的占空比寄存器來(lái)改變風(fēng)速大小,而該設(shè)定值便是由上位機(jī)發(fā)送的數(shù)據(jù)和PID不斷調(diào)節(jié)的數(shù)據(jù)決定[10]。
(3) 超聲波測(cè)距程序。超聲波測(cè)距使用芯片的定時(shí)器TIM2實(shí)現(xiàn)。功能實(shí)現(xiàn)過(guò)程:首先單片機(jī)控制超聲波模塊發(fā)送超聲波,同時(shí)單片機(jī)定時(shí)器打開,開始計(jì)數(shù),在超聲波碰到障礙物后返回給模塊,單片機(jī)檢測(cè)到電平變化后,關(guān)閉定時(shí)器,讀取此時(shí)定時(shí)器寄存器的值,設(shè)定好TIM2的計(jì)數(shù)時(shí)間和計(jì)數(shù)方式,通過(guò)固定算法便可以計(jì)算出模塊距離氣浮球的長(zhǎng)度[11]。
(4) 串口通信程序。串口通信使用STM32單片機(jī)內(nèi)部的USART功能。該程序包括串口通信的波特率、字長(zhǎng)、停止位、奇偶校驗(yàn)等的初始化。程序設(shè)定的波特率為9.600 KB/s,一次發(fā)送8位數(shù)據(jù),有奇偶校驗(yàn)位,1位的停止位。上位機(jī)采用特定的通信方式將管理者的命令發(fā)送給單片機(jī),實(shí)現(xiàn)PC機(jī)遠(yuǎn)程控制的目的,同時(shí)也是將數(shù)據(jù)返回給單片機(jī)處理和顯示。
(5) 上位機(jī)程序。上位機(jī)使用C#語(yǔ)言編寫,包括基本的操作界面,按鈕處理,輸入輸出,圖形界面顯示等功能。此程序?qū)⒉僮髡咻斎氲母叨刃畔⑼ㄟ^(guò)處理發(fā)送給單片機(jī),并將單片機(jī)發(fā)送回的數(shù)據(jù)和氣浮球運(yùn)動(dòng)軌跡在圖形界面顯示出來(lái),便于使用者操作和處理[12]。
由于發(fā)送數(shù)據(jù)時(shí),需要發(fā)送的數(shù)據(jù)范圍是0~5 000,而發(fā)送數(shù)據(jù)函數(shù)在發(fā)送時(shí)一次只能發(fā)送8位數(shù)據(jù),即允許發(fā)送范圍為0~0xFF(0~255),所以需要對(duì)發(fā)送數(shù)據(jù)進(jìn)行處理,然后再發(fā)送。處理方式是,發(fā)送數(shù)據(jù)除以256,得到的商和余數(shù)(符合發(fā)送范圍)通過(guò)串口相互發(fā)送,接收端將收到的數(shù)據(jù)按對(duì)應(yīng)關(guān)系乘以256再加余數(shù),便可以得到想要的值。這種發(fā)送方式簡(jiǎn)單易懂,而且數(shù)據(jù)量處理也不是很大,很適合系統(tǒng)使用[13-14]。
(1) 上位機(jī)對(duì)單片機(jī)的通信協(xié)議。上位機(jī)發(fā)送系統(tǒng)啟動(dòng)和關(guān)閉命令時(shí),發(fā)送4個(gè)8位的數(shù)據(jù),其中前3個(gè)是命令,后1個(gè)是判斷位,判斷是否為開關(guān)機(jī)命令。單片機(jī)通過(guò)最后一位的命令判斷位判斷接受的是數(shù)據(jù)還是命令,然后通過(guò)前三位判定是打開還是關(guān)閉系統(tǒng)。
上位機(jī)給單片機(jī)發(fā)送數(shù)據(jù)命令,包括設(shè)定高度、比例、積分、微分值。發(fā)送11個(gè)8位的數(shù)據(jù),其中第1個(gè)始終發(fā)送0,表示發(fā)送開始;2~9個(gè)分別是PID參數(shù)和高度經(jīng)過(guò)計(jì)算處理后的數(shù)據(jù),最后2個(gè)8位數(shù)據(jù)是停止位標(biāo)志。接收端也是按照這種方式進(jìn)行接收處理,然后在控制中體現(xiàn)出來(lái)。
(2) 單片機(jī)對(duì)上位機(jī)的通信協(xié)議。單片機(jī)對(duì)上位機(jī)發(fā)送的數(shù)據(jù)包括實(shí)時(shí)的高度測(cè)量值,接收到的設(shè)定高度值和PID參數(shù)會(huì)重新發(fā)送給上位機(jī)以便實(shí)時(shí)監(jiān)控。發(fā)送時(shí),發(fā)送12個(gè)8位數(shù)據(jù),其中前2個(gè)為0,代表數(shù)據(jù)發(fā)送開始,第3~12個(gè)分別是測(cè)量高度值、設(shè)定高度值和PID值,其中數(shù)據(jù)也是經(jīng)過(guò)處理,符合發(fā)送的數(shù)據(jù)大小,發(fā)送給上位機(jī)。上位機(jī)將接受的數(shù)據(jù)經(jīng)過(guò)處理后顯示出來(lái)[15]。
針對(duì)當(dāng)前自動(dòng)化專業(yè)的相關(guān)實(shí)驗(yàn)未能很好地和控制對(duì)象結(jié)合起來(lái)的現(xiàn)狀,設(shè)計(jì)了一套氣浮球控制實(shí)驗(yàn)系統(tǒng),完成了超聲測(cè)距模塊設(shè)計(jì)與實(shí)現(xiàn)、控制驅(qū)動(dòng)模塊設(shè)計(jì)與實(shí)現(xiàn)、上位機(jī)軟件設(shè)計(jì)開發(fā)。整體系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,可擴(kuò)展性強(qiáng),該實(shí)驗(yàn)系統(tǒng)已成功應(yīng)用于實(shí)際教學(xué),幫助學(xué)生完成了自動(dòng)控制原理、單片機(jī)、軟件設(shè)計(jì)等課程的相關(guān)實(shí)驗(yàn),且實(shí)驗(yàn)結(jié)果具有直觀、實(shí)時(shí)等優(yōu)點(diǎn),教學(xué)效果反應(yīng)良好。
[1] 楊亞非,王佳偉,錢玉恒. 磁懸浮系統(tǒng)的實(shí)驗(yàn)設(shè)計(jì)[J] . 實(shí)驗(yàn)室研究與探索,2014,33(1):63-68.
[2] 朱 嘯. 新型磁懸浮系統(tǒng)控制方法研究[D]. 杭州:杭州電子科技大學(xué),2009.
[3] 李松恩. 磁懸浮系統(tǒng)的設(shè)計(jì)及實(shí)驗(yàn)研究[D]. 合肥:合肥工業(yè)大學(xué),2010.
[4] 朱思佳. 磁懸浮混沌系統(tǒng)的分?jǐn)?shù)階滑模控制研究[D]. 沈陽(yáng):沈陽(yáng)工業(yè)大學(xué),2015.
[5] 彭 輝,徐錦華,侯海良. 模糊控制在磁懸浮球系統(tǒng)實(shí)時(shí)控制中的應(yīng)用[J] . 控制工程,2009,16(3):278-281.
[6] 李 曉. 磁懸浮球系統(tǒng)的數(shù)據(jù)驅(qū)動(dòng)控制算法研究[D]. 北京:北京交通大學(xué),2013.
[7] 李明然. 基于GA的自調(diào)整模糊PID控制器在磁懸浮球系統(tǒng)中的應(yīng)用研究[D]. 長(zhǎng)沙:中南大學(xué),2012.
[8] 黎 恒,肖伸平. 磁懸浮球系統(tǒng)的滑模變結(jié)構(gòu)魯棒控制器設(shè)計(jì)[J] . 湖南工業(yè)大學(xué)學(xué)報(bào), 2014,28(1):58-61.
[9] 李群明,朱 伶,徐 霞. 磁懸浮球的魯棒控制器設(shè)計(jì)[J] . 中南大學(xué)機(jī)電工程,2007,38(5):922-927.
[10] Khac Duc Do, Dang Hoe Nguyen, Thanh Binh Nguyen. Nonlinear control of magnetic bearings[J]. Journal of Measurement Science and Instrumentation, 2010(1):10-16.
[11] 翁和章. 磁懸浮直線運(yùn)動(dòng)平臺(tái)控制系統(tǒng)研究[D]. 濟(jì)南:山東大學(xué),2013.
[12] 陳喜迎. 柔性磁懸浮轉(zhuǎn)子的控制算法研究[D]. 武漢:武漢理工大學(xué),2014.
[13] 李德強(qiáng). 磁懸浮慣性測(cè)量系統(tǒng)控制技術(shù)研究[D]. 北京:北京郵電大學(xué),2015.
[14] 鄭建英,于占東. 磁懸浮球系統(tǒng)的自適應(yīng)反演滑??刂芠J]. 電子設(shè)計(jì)工程,2016,24(2):76-78.
[15] 黎 恒,肖伸平. 磁懸浮球系統(tǒng)的滑模變結(jié)構(gòu)魯棒控制器設(shè)計(jì)[J] . 湖南工業(yè)大學(xué)學(xué)報(bào),2014,28(1):58-61.
Design of Experiment System Based on Gas-floating Ball
YUShanen,LIZhen
(College of Automation, Hangzhou Dianzi University, Hangzhou 310018, China)
In order to solve the problem of control experiment in the automation specialty, which is based on the MATLAB simulation platform, cannot be combined with the actual control object, an experiment system is designed. The system can be divided into three parts: design and implementation of the ultrasonic ranging module, design and implementation of the control drive module, design and development of the host computer software. The function of the ultrasonic ranging module is to detect the position of the floating ball, and send the position information to the control drive module. The control drive module receives the ball position from the ultrasonic ranging module, compared with the set position from the host computer or local target location, uses PID algorithm to adjust the wind, and control ultimately the ball moving to the target position, and transmits position of the ball to the host computer. The computer software can be used to set the target position or trajectory of the floating ball to the control drive module, and receive position of the floating ball. The system provides an innovative experimental platform for students to learn the principles of automatic control, embedded systems and other courses.
ultrasonic ranging; gas-floating ball; PID control algorithm; experiment system
2016-11-17
杭州電子科技大學(xué)2015年高等教育研究資助項(xiàng)目(SYZX201506)
余善恩(1982-),男,浙江天臺(tái)人,碩士,實(shí)驗(yàn)師,現(xiàn)主要從事嵌入式開發(fā)及實(shí)驗(yàn)教學(xué)工作。
Tel.:13588894333; E-mail: shanen_yu@hdu.edu.cn
TP 399
A
1006-7167(2017)06-0084-04