摘 要:基于PID控制算法和MPU-6050傳感器技術,采用MK60DN512單片機控制完成風力擺控制系統。實現的功能有通過激光筆定時畫直線,定時畫圓周以及定時恢復靜止。軟件部分采用了姿態解算算法,實時進行角度監控,對于控制系統中的相關問題提出了具體的解決辦法,并在實驗室進行測試,能給控制系統的研究工作帶來幫助。
關鍵詞:PID控制;MPU-6050;MK60DN512;風力擺
DOI:10.16640/j.cnki.37-1222/t.2016.08.069
1 系統設計方案論證與分析
風力擺控制系統是一個綜合了控制與機械的系統,在機械方面與控制上要進行論證與選擇,在機械方面的選擇是實現功能的基礎,也間接決定了控制策略,設計系統的時在實驗室進行了很長時間的驗證以及方案設計與選擇。
1.1 風力擺機械模塊方案的論證與選擇
方案一:采用二個12V 3.3A的直流風機,對立擺放。
方案二:采用三個12V 3.3A的直流風機,按三角形擺放。
方案三:采用四個12V 3.3A的直流風機,按四方體擺放。
在實驗中發現兩個直流風機質量輕,易起擺,但是畫線不穩定;三個直流風機質量中等,比較容易起擺,較穩定,但是好控制;四個直流風機質量重,不易起擺,但是一旦起擺,最穩定,四個的重量可滿足起擺的條件,且畫圓穩定,所以選擇方案三。
1.2 傳感器模塊方案的選擇與論證
方案一:采用角度傳感器和加速度傳感器,算出傳入比后,角度傳感器可直接測量角度;加速度傳感器可以測量牽引力產生的加速度。
方案二:采用MPU-6050陀螺儀,6軸運動處理傳感器,集成了3軸MEMS陀螺儀,3軸MEMS加速計,以及一個可擴展的數字運動處理器(DMP)可測量風力擺的角速度以及角加速度,與方案一相比,MPU-6050的優點是內置數字運動處理(DMP)引擎可減少復雜的融合演算數據、感測器同步化、姿勢感應等的負荷,得到的數據更準確。所以選擇方案二。
1.3 算法控制方案的論證與選擇
方案一:采用基于增量式PID的角度控制算法。通過對模擬控制系統PID控制規律表達式的離散化,可得數字式PID表達式為:。
方案二:采用模糊自調整參數PID控制,此控制既有模糊控制不依賴于被控對象,對被控對象的非線性和時變性具有一定的適應能力等優點,又引入了PID控制系統同時獲得良好的動態性能和穩態性能。因為基于增量式PID的角度控制算法簡單穩定,可靠性高,模糊自調整參數PID控制雖然非常精確,但是較難掌握,所以選擇方案一。
1.4 電源模塊方案的選擇與論證
方案一:采用298直流電機驅動電路,所用芯片l298屬于H橋集成電路,其輸出電流為2000mA,最高電流4A,最高工作電壓36V。
方案二:采用開關電源,標準輸出為12V 3A。雖然298直流電機驅動電路體積小,控制方便,但是承受電流較小,電壓不穩定;開關電源優點是小型、輕量和高效率且輸出穩定,因此選擇方案二。
2 系統設計
2.1 K60最小系統與控制板
K60最小系統板,風力擺系統的控制核心,由于系統設計的要求,在單片機設計中進行裁剪,以較好的控制MPU-6050進行姿態解算,通過串口傳遞數據到單片機,由單片機控制到OLED顯示,根據角度數據以及目標角度對風力擺的擺動角度進行PID控制,完成目標擺動軌跡。.
2.2 MPU-6050模塊
MPU-6050對陀螺儀和加速計分別采用了三個16位的ADC,將其測量的模擬量轉化為可輸出的數字量。和其他設備通信采用400KHz的12C接口,可由電源模塊的5V電路供電,核心板接MPU-6050的SDA和SCL引腳讀取數據。
2.3 人機交互模塊
OLED顯示模塊顯示風力擺擺臂擺動的角度,角速度以及角加速度,控制單元完成數據處理后驅動顯示屏。由于該系統是一個實現多種功能的系統,需要在多種功能之間切換,設計OLED顯示與按鍵切換,可以很好滿足這一要求。
3 軟件設計
3.1 姿態解算
數據處理主要是姿態解算,姿態解算算法的核心在于旋轉,因為姿態解算需要頻繁組合旋轉和用旋轉變換向量,所以采用四元數保存組合姿態、輔以矩陣來變換向量的方案。姿態解算程序過程是:用一個計時器定時觸發測量,接著所有測量過程都靠中斷推進,然后判斷在main函數里不斷檢查測量是否完成,完成就進行解算。
3.2 PID算法
對于本風力擺控制系統,U(k)即為輸給電機的PWM占空比,e(k)即為目標角度實際速度角度。由于微分項會致直流風機振蕩,故只是用PI算法基于增量式PID的角度控制算法。
3.3 功能實現
在實現畫任意長度的線段時,需要將角度與線段長度進行轉換,從而通過控制系統的pid算法,讓系統實現該功能。在畫圓時,在受力分析時,發現需要螺旋式達到畫圓的介穩定狀態,否則無法實現穩定畫圓,在代碼實現時曾設計了先畫線段再左右擺動畫圓,結果不能實現功能。
4 總結
設計該系統時,到的最大的困難是機械問題,包括合適的直流風機的選型,擺放位置,發現四只直流風機放置時沒有相互隔離,導致氣體對流,在控制時無法實現要求的功能,于是在實驗室中設計了隔離輕質固定殼,有效的隔離了對流,從而解決了在機械上出現的嚴重問題。該系統較好的實現了系統要求,但是還存在問題,經過分析,誤差存在的主要原因有風力擺機械結構有摩擦,MPU-6050采集到的數據誤差,直流風機的反應滯后,姿態解算算法造成的誤差等。因此,可以優化機械結構,減少摩擦力,采用反應更靈敏的直流風機,修改姿態解算算法或者選擇更合適的算法。
參考文獻:
[1]卓勤,黃開勝,邵貝貝等編.學做智能車-挑戰“飛思卡爾”杯[M].北京:北京航空航天大學出版社,2007:266-369.
[2]付少波主編.傳感器及其應用電路[M].化學工業出版社,2011.
作者簡介:汪世鵬(1994-),男,安徽安慶人,本科在讀,研究方向:電子信息工程。