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