西華師范大學電子信息工程學院 彭子洳
基于RL78/G13MCU板(R5F100LEA)的風力擺控制系統
西華師范大學電子信息工程學院彭子洳
本風力擺控制系統由RL78/G13MCU板(R5F100LEA)單片機主控模塊、風力擺模塊、角度傳感器模塊、液晶顯示模塊、按鍵模塊等組成。系統通過角度傳感器采集角度信息,用RL78/G13MCU板(R5F100LEA)處理姿態角數據后通過PID精確算法調節直流風機,并通過按鍵實現風力擺工作模式的切換,LCD1602實時顯示當前風力擺的角度和距離,當風力擺運動達到要求時,LED燈點亮,用于提示功能完成。本系統實現了風力擺在僅受直流風機為動力控制下快速起擺、恢復靜止、距離和幅度可控等功能,達到了題目要求。
RL78/G13MCU板(R5F100LEA);角度傳感器;直流風機;PID算法
測量控制系統是當今社會的一個主流,具有相當大的優勢。在如今社會信息化和移動計算機應用的飛速發展的道路上,測量控制系統廣泛應用于電子、電力、機械、冶金、化工、航海航天等各個學科領域。風力擺控制系統就是基于風力來控制物體運動的自動控制系統。
1.1任務
一長約 60cm~70cm 的細管上端用萬向節固定在支架上,下方懸掛一組(2~4 只)直流風機,構成一風力擺,如圖1所示。風力擺上安裝一向下的激光筆,靜止時,激光筆的下端距地面不超過20cm。設計一測控系統,控制驅動各風機使風力擺按照一定規律運動,激光筆在地面畫出要求的軌跡。
1.2要求
(1)從靜止開始,15s 內控制風力擺做類似自由擺運動,使激光筆穩定地在地面畫出一條長度不短于 50cm 的直線段,其線性度偏差不大于±2.5cm,并且具有較好的重復性;
(2)從靜止開始,15s 內完成幅度可控的擺動,畫出長度在30—60cm 間可設置,長度偏差不大于±2.5cm 的直線段,并且具有較好的重復性;
(3)可設定擺動方向,風力擺從靜止開始,15s 內按照設置的方向(角度)擺動,畫出不短于 20cm 的直線段;
(4)將風力擺拉起一定角度(30°—45°)放開,5s 內使風力擺制動達到靜止狀態。
2.1系統結構
根據題目要求設計的系統總體框圖如圖1所示,本系統有主控制器(RL78/G13MCU板(R5F100LEA))、軸流風機、角度傳感器、液晶顯示LCD1602、按鍵、激光頭、蜂鳴器等模塊構成。

圖1 系統總體結構框圖
2.2風力擺運動控制方案論證
2.2.1主控模塊的選擇
方案一:STC89C51單片機作主控芯片,該芯片價格低廉,結構簡單,但其運算能力有限,無法達到較高的精度,需要外接大量外圍電路。
方案二:采用STM32單片機作主控芯片,該單片機可以采用模塊化程序設計,編程相對較簡單,系統資源豐富,但是價格相對較高。
方案三:采用RL78/G13 MCU板(R5F100LEA)單片機作主控芯片,該單片機系統配置高,程序運行快,使用方便,且模塊比STM32小,方便作品封裝。
通過比較,本系統要求及時迅速對運動過程中風力擺的姿態進行獲取和運算,所以采用方案三。
2.2.2風力擺的選擇
方案一:采用2只直流風機作為動力系統。采用2只直流風機并排反向而立,分別位于擺桿兩側,此方案難實現角度控制和畫圓功能。
方案二:采用3只直流風機作為動力系統。三只風機為等邊三角形。對于控制風力擺轉動過程中狀態微調方面有提升,但由于相鄰風機夾角為120度,比較大,不利于精確控制風力擺的狀態。
方案三:采用4只直流風機作為動力系統。用木板構成十字架,從中間插入碳素纖維管,此方案風力擺負載最重,但結構穩定,對于控制風力擺狀態最為準確,且動力十足。
綜合上述比較,考慮到風力擺在做往返運動中的實時性和精確性,本系統采用方案三。
2.2.3控制算法的選擇
方案一:采用模糊控制算法,模糊控制有許多良好的特性,它不需要事先知道對象的數學模型,系統響應快、超調小、過渡過程短等優點,但編程復雜,數據處理量大,且難以用已有規律描述復雜系統。
方案二:采用PID算法,按照比例、積分、微分的函數關系,進行運算。控制精度高,且是應用最為廣泛的一種自動控制器。它具有原理簡單,易于實現,適用面廣,控制參數相互獨立,參數的選定比較簡單等優點。
通過比較,PID算法能夠對運動過程中風力擺的姿態進行調整,所以本系統采用方案二。
2.2.4顯示模塊選擇
方案一:使用LED數碼管顯示,顯示亮度高,但顯示內容較單一,一般只能顯示數字和簡單的字符。
方案二:LCD1602液晶顯示,可以顯示豐富的符號指示信息以及文字指示信息。
通過比較,設計選用方案二LCD1602液晶顯示模塊。
2.2.5角度傳感器的選擇
方案一:SCA60C單獨傾角傳感器,測量范圍+90度到-90度,單片機5V供電,比例電壓輸出,模擬0.5V到4.5V輸出,耗能低。
方案二:采用三維角速度傳感器MPU6050,MPU6050為整合性6軸運動處理組件(三軸陀螺儀 + 三軸加速度),該傳感器可準確追蹤快速與慢速動作,數據讀取快,通過計算得到三維角度值,方便對風力擺進行控制。
根據題目要求,鑒于三維角度和穩定性的要求,選擇方案二來采集角度信息。
2.2.6電源模塊的論證與選擇
方案一:使用單電源接自制線性直流穩壓源模塊。單電源同時給控制系統和風機供電,方案簡單易操作。但風機轉動過程中不僅會給電源帶來紋波,產生的反電壓容易燒毀單片機,而且單電源工作負載大,耗電快。
方案二:采用雙電源供電。風機驅動電源和控制電源分開,控制電機部分通過光耦隔離。電機使用12V鋰電池供電,單片機控制系統用另一塊電池接線性直流穩壓源模塊供電。此方案可確保系統的穩定性,且滿足了系統對供電的需求。
綜合上述比較,考慮系統的安全性、穩定性以及可靠性,本系統采用方案二。
3.1風力擺的狀態測量
采用高精度的陀螺加速度計MPU6050采集三維角度信息,MPU6050實時檢測風擺姿態,獲得其最大推力,幅度可控部分通過構建數學模型,方程式為F=a(pith-mpith)2+mF,其中F為電機推力,pith為風擺俯仰,mpith為目標俯仰,mF為最大電機推力,通過函數模型,獲得到達指定目標時的電機推力實現。在本系統單片機中通過一定的算法,計算出風力擺的角度,然后根據動作要求控制風機的轉速,控制四個風機轉動完成相應的功能。
3.2風力擺的運動控制
本系統采用PID算法來控制風機轉動的速度。風機開始工作后,姿態采集模塊不斷采集當前風力擺姿態角狀態,并與之前的狀態比較,使得風力擺的運動狀態逐漸趨向平穩。通過PID算法去控制各個風機是否轉動以及轉動速度的大小。
3.2.1風力擺的幅度控制

圖2 風力擺結構
當風力擺靜止時,擺桿豎直向下,通過單片機程序控制風機的轉動,使風力擺起擺。由圖2可知,風力擺通過激光筆在地面畫的直線段與擺桿頂端到地面的豎直距離始終成一個直角。設激光筆在地面畫的直線段為x ,擺桿的轉動頂端到地面的豎直距離為y, 擺桿擺動的角度為θ。x是我們需要在地面上畫的線性長度,y值可以通過直尺量出。則擺桿擺動的角度θ=arctan(x/y),通過程序設定角度,從而達到幅度擺動的控制。

圖3 畫圓示意圖

圖4 圓底示意圖
3.2.2風力擺的圓周運動控制
如圖3、圖4,四個軸流風機A、B、C、D,A和C用來使風力擺的擺桿與重力方向呈現設置夾角,B和D用來推動擺桿沿切線方向運動,由于擺桿為剛體,同時擺桿頂部為萬向節,事實上,只要我們調節好控制A和C電機的PID參數使擺桿穩定到設定的角度,然后通過B和D推動擺桿,擺桿就會沿切線運動,繪制出圓形軌跡。
3.2.3控制算法的理論分析
本系統幅度可控部分采用構建函數模型實現,角度可控、畫圓及快速恢復原狀態部分采用PID算法來控制各個風機轉速。風機開始工作后,姿態采集模塊不斷采集當前風力擺姿態角狀態,并與之前的狀態比較,使得風力擺的運動狀態逐漸趨向于平穩。PID算法控制器由風力擺轉動角度比例P、角度誤差積分I和角度微分D組成。 其輸入e(t)與輸出U(t)的關系為:

風力擺轉動角度比例P:對風力擺角速度進行比例調整,即對風力擺轉動速度調整。比例越大,調節速度越快。但不能過大,過大可能造成四風機因工作狀態突變使擺桿不穩定。 角度誤差積分I:使系統消除穩態誤差,提高無差度。加入積分調節可使系統穩定性下降,動態響應變慢。本系統追求更快更穩完成對風力擺的控制,因此,本系統對積分調節的需要就非常弱。即保證在不需要時系統不會受到影響。 角度微分D:微分作用反映風力擺角度的變化率,即角速度。具有預見性,能預見偏差變化的趨勢因此能產生超前的控制作用,在偏差還沒有形成之前,已被微分調節作用消除。因此,可以改善系統的動態性能。在微分時間選擇合適情況下,減少調節時間。
4.1硬件設計
4.1.1主控制模塊
本設計的主控芯片選擇RL78/G13MCU板(R5F100LEA),通過RL78/G13MCU板(R5F100LEA)控制驅動部分,進而控制軸流風機的擺動,結構圖如圖5所示。

圖5 主控制模塊

圖6 按鍵控制
4.1.2 按鍵模塊
本系統通過按鍵按下選擇風力擺的工作模式,以實現設計的基本要求,當風力擺到達基本要求,蜂鳴器發出刺耳的聲音,LED燈亮給予提示。原理圖如圖6所示。
按鍵1到5控制模式1到模式5,即基本要求中的四項要求和發揮部分的第一的要求。按鍵6為確認鍵,按鍵7加角度,按鍵8減角度。
4.2軟件設計
4.2.1編程控制
基本要求一:要實現風力擺做自由擺運動,通過單片機一個直流風機的延時,運用蕩秋千的原理,實現擺動。
基本要求二:擺幅可控,可設計。每次在基本要求一的基礎上,在風機換向的時候進行PWM脈寬調節控制,進行風力的調節。
基本要求三:這一步主要是開始使用兩個方向的風機進行動力合成,從而實現擺動方向的改變,換向的時候兩組電機同時換向。方向可以通過矢量合成,通過查詢sin表格,進行每個風力計算。(在路勁規劃好的基礎上可以用陀螺儀進行路徑修正)。
基本要求四:該要求的思路和基本要求一的思路正好反過來,需要有陀螺儀的輔助,給定陀螺儀反饋回來的角加速度,實現制動,在擺動角度比較小的時候再關閉電機即可。
4.2.2程序設計流程圖

圖7 主流程圖
5.1硬件測試
5.1.1測試儀器
測試使用的儀器設備如表1所示。

表1 測試使用儀器與設備
5.1.2測試方法
數值萬用表主要用來測試分立元件的電阻、壓降、漏電流、截止、導通等參數。
可編程線性直流電源用于檢測穩壓電源模塊的輸出電壓和為其他模塊提供電源。
函數發生器在測試時提供PWM波,通過改變頻率和占空比,來調控電機的轉速。
直尺用來測量擺桿的長度,即擺動的距離,秒表用于驗證擺動的時間。
5.1.3測試數據
(1)驅動風力擺工作,使激光筆穩定地在地面畫出一條長度不短于 50cm的直線段,來回五次,記錄其由靜止至開始自由擺時間及最大偏差距離。測試數據如表2所示。

表2 要求1測量數據
(2)從靜止開始,15s 內完成幅度可控的擺動,畫出長度在30-60cm 間可設置,長度偏差不大于±2.5cm 的直線段,并且具有較好的重復性。測試數據如圖表3所示。

表3 要求2測量數據
(3)可設定擺動方向,風力擺從靜止開始,15s 內按照設置的方向(角度)擺動,畫出不短于 20cm 的直線段。測試數據如圖表4所示。

表4 要求3測量數據
(4) 將風力擺拉起一定角度(30°—45°)放開,5s 內使風力擺制動達到靜
止狀態。測試數據如圖表5所示。

表5 要求4測量數據
5.2誤差分析
本系統通過程序控制擺動角度,再通過反饋控制PWM波進而控制風機的轉速,實現在限定時間里擺動一定長度。角度的偏差,是由于空氣阻力和角度測量誤差的影響.題目限定的線性誤差不大于±2.5cm ,通過計算可知角度的偏差在1°左右。
本風力擺控制系統由RL78/G13MCU板(R5F100LEA)單片機為控制核心,利用4個直流風機組成風力擺,用RL78/G13MCU板(R5F100LEA)處理姿態角數據后通過PID精確算法和PWM調速功能來調節直流風機,并通過按鍵實現風力擺工作模式的切換,LCD1602實時顯示當前風力擺的角度和距離,當風力擺運動達到要求時,LED燈點亮,用于提示功能完成。本系統實現了風力擺在僅受直流風機為動力控制下快速起擺、恢復靜止、距離和幅度可控等功能,達到了題目要求。在測試時存在一定偏差,是由于手動制作外部結構,風擺外形不夠規則、外力因素,程序等成為誤差的主要來源。所以風力擺擺動角度控制不好,具體的控制算法有待進一步優化。
[1]張有志.全國大學生電子設計競賽培訓教程[M].北京:清華大學出版社,2013.
[2]陳永真,陳之勃.全國大學生電子設計競賽硬件電路設計精解[M].北京:電子工業出版社,2011.
[3]楊莘,劉海濤.基于STM32的兩輪自平衡遙控小車[J].數字技術與應用,天津:2014.
[4]常國權,戴國強.基于STM32的四軸飛行器飛控系統設計[J].單片機與嵌入式系統應用,北京:2015.
[5]汪玉成.流電機PWM調速系統設計[J].場現代化,2007.
[6]陳伯時.電力拖動自動控制系統[M].北京:機械工業出版社,1996.