岑強 王宇欣
摘 要:風力擺是一種通過風機作為唯一動力驅動的裝置。為了更科學合理地運用風力擺,設計并制作了一套基于單擺物理模型的實物系統,為系統預設了定角度直線運動和圓周運動兩種主要形式。由此提出雙向穩定結構的風力擺機械設計模型,由四風機構成穩定驅動裝置,以stm15單片機為控制核心,MPU6050為姿態傳感器,HMI串口屏實時顯示,核心控制模塊的定時器中斷方式,以閉環控制減小系統誤差,從而形成一個完整的控制系統。
關鍵詞:簡諧運動;PID算法;軌跡控制;IAP 15W4K58S4
1 引言
風力擺是一種通過風機作為唯一動力驅動系統,在規定時間內完成規定軌跡的控制系統,且在風力擺啟動后不得以任何人為方式影響其運動。風力擺控制系統作為一個控制裝置,其形象十分直觀,結構較為簡單;而將其作為一個被控對象,它又顯得相當復雜。就本身而言,風力擺是一個穩定性隨著時間與外部環境變化較為復雜的非線性系統,所以在對風力擺的控制中必須采取行之有效的方法,它才能穩定工作。風力擺控制系統的穩定效果十分明顯,對它的度量可以通過直接觀測其響應速度、軌跡重合度以及線性誤差來判斷,一目了然。
2 系統總體設計
風力擺控制系統本質為一套伺服隨動控制系統,以四個對稱布置的風機作為動力源,提供風力擺在四個方向的推力。角度傳感器實時采集風力擺的姿態。MCU主控單元獲取角度并與目標值比較,經運算后得出控制量,送給風機執行,從而完成預設的定角度直線擺動和圓周運動。為調試方便,系統加入PID調節模塊。
3 電路設計
3.1主控單片機的選型
系統選取STC公司出品的增強型51單片機工IAP 15W4K58S4作為主控芯片,可受益于ST C公司提供的STC一ISP上位機輔助軟件,大大提高開發效率。利用其自帶的6路PWM發生器中的4路作為四個電機的PWM控制;串口2負責與MPU6050通信,實時采集角度信息;串口3負責與USART-HMI串口屏通信,刷新關鍵參數的顯示;串口1負責與PC上位機通信,來在線調整PID參數。PID參數整定完成后,即可關閉比功能,以減少對系統的干擾。
3.2姿態傳感器的選型
姿態傳感器MPU6050是InvenSense公司推出的一款6軸傳感器模塊,包括三軸加速度,三軸角速度。其體積小巧,用途廣泛。鑒于IAP 15W4K58S4是8位單片機,運算能力有限,而常用的四元數融合、卡爾曼濾波等姿態解算方法運算量很大,會占用不小的系統時間,導致PID控制算法及其它程序的執行困難。因此,本系統選用自身帶數據融合的姿態傳感器模塊,通過串口與主控單片機通信,輸出角度參數,應用方便,有效減輕了主控單片機的負擔。
3.3風機的選型
風機選取716空心杯電機配55mm槳。空心杯電機具有高轉速,高推重比,較高的頻率響應,高機動性速性能好,體積小,重量輕,裝配簡單,使用方便等優點,可為風力擺控制系統提供快速的響應和靈活的機動性,且無需專門的電子調速器,驅動方便。采用L298N作為電機驅動模塊,配合PWM技術,使電機調速靈敏精確,且具有很好的線性度。通過單片機輸出PWM波很容易實現對電機正轉,反轉和停止等操作。
4 算法設計及軟件編程
4.1物理模型的建立
風力擺的運動是一種單擺運動,可以將其理想化為由擺錘和擺線組成。在其擺動角度比較小的情況下,其運動規律可以看作是簡諧運動。
風力擺的四個空心杯電機控制風力擺在互相垂直的兩個方向做簡諧運動,根據莉薩理論可以方便地控制風力擺的運動曲線,使其畫出圓形、直線和橢圓等各種圖形。當兩簡諧運動的相位差為士90。其他參數相等時軌跡為圓形,當相位差為0。其他參數相等時軌跡為直線。當相位差在00到90。的范圍內時,軌跡為橢圓。
4.2正弦函數的生成
為了使風力擺完成幅度可控且可循環往復的直線或圓周運動,需要使風機在X軸和Y軸方向上完成兩個獨立的幅值可控的正弦運動,如此,便需要由軟件產生一個實時的正弦函數,以此正弦函數來控制風力擺的運動。
首先需對運動的周期進行歸一化,人為的設定一個運動周期T,這個周期可通過單擺運動周期公式粗略計算作參考;另外通過單片機定時器每隔5ms進行自加一次得到一個MTC變量,通過計算MTC/T的值來得到實時變化的、歸一化的周期,然后把得到的歸一化的周期值與2π相乘轉化為對應弧度值?,2π表示一個完整的正弦運動過程。
正弦函數的幅值大小可建立相應模型,設擺動過程中L為擺桿的長度,R為擺動的半徑或擺幅,a為擺桿與鉛錘方向的角度,如此便可得到風力擺的最大角度值a,且通過改變這一角度值即可改變圓周運動的半徑或直線運動的幅值。這樣通過C語言庫中自帶的sin函數便可得到一個與運動周期、運動時間、運動幅值有關的正弦函數,其中Set_ Value即為實時變化的設定值。
4.3PID算法運動控制
本系統中采用了位置式PID算法,來使風力擺準確按預定軌跡動作,并且使系統擁有了良好的穩定性和抗干擾能力。PID算法由比例、積分、微分三個控制環節組成。輸人控制量:(t)與反饋量y(t)做差后得到偏差e(t),偏差值經過比例、積分、微分三個環節后,得到輸出值u(t)。
在本系統中,輸人控制量由正弦函數生成,作為PID算法的目標值。MPU6050姿態傳感器采集的角度值作為反饋量,即當前風力擺的實際角度值。將目標值與實際值比較作差,得到偏差角度,將偏差角度經過比例、積分、微分運算,得到輸出控制量,即電機的PWM值,從而改變電機轉速,調整風力擺在各個方向上的受力情況,使風力擺按照設定軌跡運動。為了防止輸出控制量過大或過小而引起的系統失調或超調現象,程序中需要對輸出控制量進行死區和限幅控制,從而保證系統運行穩定。
4.4程序部分
程序采用c語言編寫,使用Keil uVision C51集成開發環境。程序包括對工IAP 15W4K58S4單片機相關外設的初始化、中斷與串口的配置,同時將控制算法轉化為計算機可識別的機器語言。
5 結束語
本風力擺控制系統建立了單擺運動的物理模型,以運動的合成與分解為主要思想,結合穩定精簡的硬件平臺和優秀的算法,使風力擺實現了定角度直線擺動和圓周運動,且運動過程穩定、快速、準確,抗干擾能力強。
參考文獻
[1]劉翹楚,郭鵬偉,劉學明.基于IAP15W4K58S4的風力擺控制系統設計[J].自動化應用與技術
[2]葉龍.基于MPLJ6050傳感器的方位角傾角算法研究[D].長春:吉林大學
[3}馮大力.空心杯直流電機的特點及其應用[J].電工技術