余善恩, 李 真
(杭州電子科技大學 自動化學院, 浙江 杭州 310018)
風擺控制實驗系統(tǒng)設計
余善恩, 李 真
(杭州電子科技大學 自動化學院, 浙江 杭州 310018)
為滿足“自動控制原理”實驗教學的需要,研發(fā)了一套風擺控制實驗系統(tǒng)。該系統(tǒng)分為角度檢測模塊、控制驅(qū)動模塊、上位機軟件3部分。控制驅(qū)動模塊接收來自角度檢測模塊的風擺角度信息,與上位機設定的目標角度進行比較,計算出當前的風機驅(qū)動量并調(diào)節(jié)風機風力,將風擺控制到目標位置。該系統(tǒng)提供了一個綜合性實驗平臺,能夠靈活地應用于單片機、嵌入式系統(tǒng)、電機控制等課程。
風擺; 自動控制; PID控制; 實驗系統(tǒng)
“自動控制原理”是自動化類專業(yè)本科生的重要專業(yè)課,也是其他院系本科生的專業(yè)基礎課或選修課。實踐性教學內(nèi)容是該課程教學中的一個重要環(huán)節(jié)。當前自動控制原理實驗一般基于Matlab仿真平臺實現(xiàn),未能很好地與控制對象結(jié)合起來,學生很難理解完整的實驗過程,不利于對控制原理的理解與掌握,實驗效果并不理想。
為此,筆者研制了一種風擺控制實驗系統(tǒng)。該系統(tǒng)以自動控制原理為基礎,綜合多門專業(yè)課程知識,為學生學習自動控制原理、單片機、嵌入式系統(tǒng)等課程提供了實驗平臺[1]。該風擺控制實驗系統(tǒng)不僅保留了自動控制實驗的模擬功能[2],還改進和豐富了自主性仿真實驗,增加了現(xiàn)代控制理論的實驗內(nèi)容,使得實驗系統(tǒng)更加完善[3]。該系統(tǒng)簡單、直觀且具有一定的趣味性,目前已成功用于實際教學中,在學生中獲得良好反應,有效地提高了學生參與實驗的積極性。
風擺實驗控制系統(tǒng)分為角度檢測模塊、控制驅(qū)動模塊、上位機軟件3部分(見圖1)。
角度檢測模塊的功能是通過三軸加速度計和三軸陀螺儀[4]計算出當前的風擺角度,并將此角度信息反饋給控制驅(qū)動模塊。
控制驅(qū)動模塊接收來自角度檢測模塊的風擺角度信息,與來自上位機或就地設定的目標角度進行比較,計算出當前的風機驅(qū)動量,依此調(diào)節(jié)風機風力,將風擺控制到目標位置,同時將風擺的運動過程傳送到上位機。
上位機軟件將設定的風擺目標位置或運動過程發(fā)送給控制驅(qū)動模塊,同時接收風擺運動過程信息,可以進行風擺動作曲線的顯示、分析和處理。

圖1 風擺控制實驗系統(tǒng)結(jié)構
2.1 總體硬件設計
首先,根據(jù)系統(tǒng)控制電路的功能需求選擇合適的主控芯片,主要是協(xié)調(diào)其他模塊共同完成數(shù)據(jù)采集、存儲、處理、控制、傳輸?shù)榷囗椆δ堋?/p>
其次,設計按鍵控制電路和通信控制電路,通過單片機檢測GPIO口高低電平來檢測按鍵,通過串口通信電路實現(xiàn)單片機和上位機的通信。
最后,角度檢測模塊通過三軸加速度計及三軸陀螺儀,采集信息后計算出當前的風擺角度,并將此角度信息反饋給控制驅(qū)動模塊用于其控制。
2.2 硬件電路設計
系統(tǒng)選擇基于32位ARM Cortex-M3核的處理器STM32F103VBT6作為主控芯片。該芯片具有非常豐富的片內(nèi)資源,包括時鐘(RTC)、定時器(TIM)、通用I/O接口(GPIO)、DMA控制器、A/D轉(zhuǎn)換器、USART接口、I2C接口、SPI接口和CAN總線接口,以及20 KB的片內(nèi)SRAM、128 KB的片內(nèi)FLASH和一個支持USB 2.0規(guī)范的全速USB外圍設備,它是整個系統(tǒng)的主控單元,協(xié)調(diào)其他模塊完成數(shù)據(jù)采集、存儲、處理、控制、傳輸?shù)榷囗椆δ堋?/p>
系統(tǒng)設計有4個按鍵,實現(xiàn)選擇、向上、向下、確認4種功能,通過不同的操作組合,可以實現(xiàn)角度設定、PID參數(shù)調(diào)整及其他操作。單片機通過檢測4個GPIO口的高低電平變化來判斷哪個按鍵按下。當按鍵按下后,GPIO口會從低電平變?yōu)楦唠娖剑来丝梢耘卸ò存I是否按下。
單片機和上位機的通信采用串口通信方式,電路如圖2所示。串口通信可以將接收到的來自CPU的并行數(shù)據(jù)字符轉(zhuǎn)換為連續(xù)的串行數(shù)據(jù)流發(fā)送出去,也可將接收的串行數(shù)據(jù)流轉(zhuǎn)換為并行的數(shù)據(jù)字符供給CPU[5]。在本實驗系統(tǒng)中采用了USB轉(zhuǎn)串口轉(zhuǎn)接芯片CH341A,實現(xiàn)了計算機USB接口到通用串口之間的轉(zhuǎn)換,解決了目前常用筆記本電腦無串口這一問題,增加了實驗系統(tǒng)的使用范圍及便利性。

圖2 串口通信電路
風擺角度的檢測使用精密導電塑料電位器,其中間抽頭的電壓隨風擺角度變化而變化,該電壓信號經(jīng)過運放電路處理后,再經(jīng)過模數(shù)轉(zhuǎn)換器AD7717轉(zhuǎn)化為數(shù)字量,由單片機計算出實時角度值。
控制擺葉運動的風機采用PWM波控制,通過控制PWM波的占空比來調(diào)節(jié)風速[6]。單片機的PWM波輸出信號經(jīng)過隔離后,控制功率MOS管開關動作,進而控制風機電機的轉(zhuǎn)速,最終達到控制擺葉運動到目標角度的目的[7]。
實驗系統(tǒng)軟件包括下位機軟件、上位機軟件,分別對應單片機程序及計算機監(jiān)控軟件。
3.1 下位機軟件設計
下位機軟件主要工作流程如圖3所示。實驗系統(tǒng)上電后,首先對系統(tǒng)進行初始化,然后周期性地執(zhí)行按鍵檢測、角度檢測、控制運算、數(shù)據(jù)收發(fā)等子程序。

圖3 軟件流程圖
系統(tǒng)初始化主要包括對時鐘、GPIO、串口、定時器等初始化;按鍵檢測及處理實現(xiàn)了對4個按鍵的檢測及進行相應的處理,其中包括了消抖動、短按、長按等子程序;角度檢測子程序?qū)⒛?shù)轉(zhuǎn)換結(jié)果換算成角度信息,然后不停地檢測當前的風擺角度值,并與設定的角度值進行比較,運行控制算法(例如PID算法),計算出一個控制量(PWM占空比),通過驅(qū)動電路調(diào)節(jié)風扇的風量,繼而實現(xiàn)對角度的控制[7]。實驗系統(tǒng)采用中斷的方式處理串口通信,將測得的角度等信息傳輸給上位機,也隨時接收上位機發(fā)送的角度設定值、控制參數(shù)值等,進行相應的數(shù)據(jù)更新。
程序的初始化包括系統(tǒng)時鐘的初始化、GPIO口的初始化、串口通信初始化、定時器初始化等。對芯片進行初始化后,才可以使芯片正常工作。
系統(tǒng)時鐘初始化主要是設置系統(tǒng)的時鐘頻率,包括設置時鐘的預分頻和所用芯片功能的時鐘使能;GPIO口初始化包括GPIO口打開使能、輸出頻率、模式選擇和管腳復用使能;串口通信初始化包括串口的波特率、字長、停止位、奇偶校驗位等設置;定時器設置包括定時器的分頻、計數(shù)方式、打開允許計數(shù)等設置。
風扇使用PWM波驅(qū)動,STM32單片機有專門的PWM輸出功能,可以設置其輸出的頻率、占空比等。
程序的PWM輸出使用單片機高級控制定時器TIM1輸出,該定時器可以實現(xiàn)輸入捕獲、輸出比較、產(chǎn)生PWM等功能。只需要通過改變PWM波的占空比,就可以控制風速,進而控制風擺角度。程序中設置一個全局變量,通過不斷重新設置PWM輸出的占空比寄存器來改變風速大小,而這個設定值便是由上位機發(fā)送的數(shù)據(jù)和PID不斷調(diào)節(jié)的數(shù)據(jù)決定。
角度的計算采用了官方提供的DMP算法解算,可靠度高,漂移較小。本設計中使用了一個長度為3 000字節(jié)的數(shù)組,用于角度的解算及實現(xiàn)相應的濾波算法。解算的核心原理為:根據(jù)重力加速度在x,y,z3個軸向的分量,計算出擺葉的角度,繼而用三軸陀螺儀對計算出的角度進行修正。
串口通信使用STM32單片機內(nèi)部的USART功能。該程序包括串口通信的波特率、字長、停止位、奇偶校驗、初始化等。程序設定的波特率為9 600,一次發(fā)送8位數(shù)據(jù),有奇偶校驗位,1位停止位。上位機采用特定的通信方式將管理者的命令發(fā)送給單片機,實現(xiàn)PC機遠程操縱的目的;同時,單片機將數(shù)據(jù)返回給上位機,實現(xiàn)后續(xù)的處理和顯示[8]。
3.2 上位機程序
風擺控制實驗系統(tǒng)上位機軟件采用C#語言編寫,具有基本的操作界面、按鈕處理、輸入輸出、圖形界面顯示等功能[9]。此程序?qū)⑹褂谜咻斎氲脑O定角度信息經(jīng)過處理發(fā)送給單片機,并將單片機發(fā)送回來的數(shù)據(jù)和擺葉的運動軌跡在圖形界面顯示出來,便于使用者操作和處理[10]。
由于需要發(fā)送的數(shù)據(jù)范圍是0~5 000,而發(fā)送數(shù)據(jù)函數(shù)在發(fā)送時一次只能發(fā)送8位數(shù)據(jù),即允許發(fā)送范圍為0~0xFF(0~255),所以需要對要發(fā)送的數(shù)據(jù)進行處理,然后再發(fā)送[11]。處理方式是:發(fā)送數(shù)據(jù)除以256,得到的商和余數(shù)(符合發(fā)送范圍)通過串口相互發(fā)送,接收端將接收到的數(shù)據(jù)按對應關系乘以256再加余數(shù),便可以得到想要的值。這種發(fā)送方式簡單,而且數(shù)據(jù)處理量也不是很大,很適合系統(tǒng)使用[12]。
4.1 上位機對單片機的通信協(xié)議
上位機發(fā)送系統(tǒng)啟動和關閉命令時,發(fā)送4位的數(shù)據(jù),其中前3個是命令,后一個是判斷標志,判斷是否為開關機命令。單片機通過判斷標志判斷接收的是數(shù)據(jù)還是命令,然后通過前三位判定是打開還是關閉系統(tǒng)。
上位機給單片機發(fā)送數(shù)據(jù)命令時,包括設定風擺角度、比例、積分、微分值,其格式如圖4所示。發(fā)送11個8位的數(shù)據(jù),其中第一個始終發(fā)送0xA5,表示發(fā)送開始;2—9個分別是PID參數(shù)和設定角度經(jīng)過計算處理后的數(shù)據(jù),最后2個8位數(shù)據(jù)是命令碼及檢驗標志。接收端也是按照這種方式進行接收處理,然后在控制中體現(xiàn)出來。

圖4 通信協(xié)議(上位機→單片機)
4.2 單片機對上位機的通信協(xié)議
單片機對上位機發(fā)送的數(shù)據(jù)包括實時角度測量值、當前控制量以及狀態(tài)等,以便上位機實時監(jiān)控,數(shù)據(jù)格式如圖5所示。發(fā)送時,發(fā)送7個8位數(shù)據(jù),其中第一個始終發(fā)送0xB5,代表數(shù)據(jù)發(fā)送開始,第2—6個分別是測量角度值、當前控制量以及狀態(tài)等,其中數(shù)據(jù)也是經(jīng)過處理的,符合發(fā)送的數(shù)據(jù)大小。上位機將接收的數(shù)據(jù)處理后顯示出來。

圖5 通信協(xié)議(單片機→上位機)
風擺控制實驗系統(tǒng)實現(xiàn)了風擺角度的實時檢測和進行實時數(shù)據(jù)、曲線的顯示;通過調(diào)整、發(fā)送控制參數(shù)到單片機可以得到不同的控制品質(zhì)。該系統(tǒng)結(jié)構簡單、可擴展性強,已成功應用于實際教學,幫助學生完成了自動控制原理、單片機、軟件設計等課程的相關實驗,且實驗結(jié)果具有直觀、實時等優(yōu)點,教學效果良好。
References)
[1] 趙林.基于STC12C5A60S2的帆板控制系統(tǒng)設計[J].電子設計工程,2012(4):149-154.
[2] 劉青,任曉芳.帆板控制系統(tǒng)設計[J].自動化應用,2015(7):86-94.
[3] 張存吉,寧愛民,倪杰,等.基于增量式PID算法的帆板控制系統(tǒng)的設計[J].嵌入式與SOC,2012(7):67-68.
[4] 樂麗琴,李姿景.基于單片機SPCE061A的帆板控制系統(tǒng)設計[J].電子測量技術,2014(9):56-59.
[5] 李智敏.USB虛擬串口通信實現(xiàn)[J].電子科技,2014,27(3):120-122.
[6] 龐前娟,李精華,魏麗娜.PC風扇自啟動恒流驅(qū)動電路的設計[J].自動化技術與應用,2009(11):113-115.
[7] 李紅萍,李泉,李金明,等.基于PID算法的帆板角度控制系統(tǒng)設計[J].電氣自動化,2013,35(1):71-73.
[8] 李紅萍,李金明,李泉,等.帆板角度PID控制系統(tǒng)設計[J].自動化與儀器儀表,2012,34(6):51-53.
[9] 韓澄宗,朱善安.基于自定義算法的遠程控制實驗系統(tǒng)設計[J].實驗室研究與探索,2006,25(12):1526-1529.
[10] 姚迪,李正軍,周敬,等.基于VC++的串口通信實時繪圖系統(tǒng)的軟件設計[J].工業(yè)控制計算機,2016(6):99-100.
[11] 彭敏.基于ARM7的工業(yè)控制數(shù)據(jù)采集系統(tǒng)的研究[J].現(xiàn)代電子技術,2011(2):12-14.
[12] 周靜,張蕾,南洋.基于RS232-USB轉(zhuǎn)換器及LabVIEW平臺下溫濕度采集系統(tǒng)的設計[J].電子測試,2012(5):50-54.
Design of experimental system with windy flap
Yu Shanen, Li Zhen
(College of Automation, Hangzhou Electronic Science and Technology University, Hangzhou 310018, China)
The experimental system aims to meet the teaching and studying requirements, which provides the experimental platform for learning the principle of automatic control, MCU, embedded system, etc. The main research contents include design of angular surveying, control & drive module, and PC software. MPU6050 was used for angular surveying, PID control algorithm was used to control the flap to go to the target angular, and PC software was used for display, analysis, and processing.
windy flap; automatic control; PID control; experimental system
10.16791/j.cnki.sjg.2017.06.033
2017-01-10
2012年度浙江省教育技術研究規(guī)劃課題(JB040);杭州電子科技大學2015年高等教育研究資助項目(SYZX201506)
余善恩(1982—),男,浙江天臺,碩士,實驗師,主要從事實驗室管理與實驗教學.
E-mail:shanen_yu@hdu.edu.cn
G642.423
A
1002-4956(2017)06-0135-04
計算機技術應用