覃仕明 玉 函
(1、廣西壯族自治區特種設備檢驗研究院,廣西 南寧530200 2、通力電梯有限公司南寧分公司,廣西 南寧530200)
風力擺控制系統用來控制電機做單擺形式的運動,其簡諧運動規律可涉及到物理領域的各個方面,如分子運動、電磁振蕩等[1]。風力擺控制系統是物理研究理論與現代控制理論的結合,如何通過現代控制理論實現物理運動規律,對目前解決實際工業上遇到的問題有很大的研究意義,在經典控制理論和現代控制理論上非常值得探究。
風力擺控制系統是一個伺服隨動控制系統[2],伺服隨動控制系統實現的要求是具備快速跟蹤和精確定位,快速跟蹤與伺服帶寬有關系,帶寬越大,快速性就會越好,而帶寬主要會受到硬件的慣性限制,慣性越來越大,帶寬越來越窄,所以風力擺控制系統的擺桿質量大小可影響其快速跟蹤的性能。系統精確定位的實現則需要機械結構與硬件搭建合理,同時在軟件上使用控制算法提高系統的整體抗干擾性。
風力擺控制系統是單擺運動的衍生,單擺運動屬于簡諧運動[3],所以本系統的運動本質為簡諧運動,其數學方程為:

風力擺控制系統的所有運動軌跡都將以簡諧運動作為實現依據。除此之外,單擺運動周期方程為:

式中的g 為重力加速度,L 為風力擺的擺桿長度。假設取L=0.3m,g 取10m/s2。
因此有:

式中的擺桿長度的選取是相對較短的,假設最長的情況下,當選取擺桿長度為2m,此時有

所以由式(3)和式(4)得出結論,單擺周期的范圍大概在1.09s~2.81s 之間,其主要還是取決于擺桿的長度。
角度傳感器MPU6050 中的三軸陀螺儀與三軸加速計測量出風力擺控制系統當前位置信息的原始數據,再通過自帶的DMP 進行數據融合與轉換,得出X 軸方向角為roll,Y 軸方向角為pitch,Z 軸方向角為yaw,在風力擺控制系統中,只利用到了X 軸與Y 軸方向角度進行分析計算,所以只對這兩個方向角度分析。
角度roll(pitch)是風力擺發生在X 軸(Y 軸)上的偏轉角度,風力擺離地面的高度為H,激光點與零點的距離為X(Y),目前已經知道角度roll(pitch)和離地面的高度H,得出:

根據公式得出的X(Y)就是激光點與零點的距離,也可以說是風力擺控制系統當前狀態的測量值,但我們要控制激光點的位置滿足單擺運動因此要有目標值,結合公式(6)可得出:

在得到目標值與測量值后,導入PID 控制算法,輸出PWM控制電機轉動就可以使風力擺控制系統每個方向完成系統要求的簡諧運動了。如圖1 中,為風力擺擺角圖。

圖1 風力擺擺角圖
風力擺控制系統需要考慮抗擾動能力,如果不做抗干擾算法,風力擺的運動方程將不會是簡諧運動方程,本系統設計的最大調節時間是4 秒,也就是風力擺控制系統能在4 秒內恢復簡諧運動就可。選用經典的PID 算法能達到簡單且快速的效果,能解決機械結構搭建不合理或硬件放置不合理產生的誤差。
位置閉環控制是根據傳感器反饋回來的電機位置信息,然后與目標值進行比較,得到偏差量,再經過對偏差的比例、積分、微分進行控制,使偏差量趨向于零的過程。
位置式PID 公式為:

e(k):代表本次偏差。
e(k-1):代表上一次偏差。
∑e(k):代表偏差的累計和。
PWM則代表輸出。
速度閉環控制是在單位時間內獲取的脈沖數所測量電機速度信息,再與目標值進行比較,得出控制偏差量,然后對偏差的PID 進行控制,讓偏差趨向于零的過程。
增量式PID 公式為:

e(k):代表本次偏差。
e(k-1):代表上一次偏差。
e(k-2):代表上上次偏差。
PWM則代表輸出。
根據對兩種PID 閉環控制的對比分析,由于MPU6050 角度傳感器已經能采集到風力擺的位置信息,則采用位置式閉環控制是風力擺控制系統最適合的方法。
風力擺控制系統上電后開始執行系統初始化,之后進行按鍵判斷,選擇風力擺控制系統所要執行的功能,如擺動距離、擺動角度、風力擺制動、擺動畫圓等功能,選擇功能后風力擺控制系統開始執行動作,通過對功能設定的目標值與當前角度傳感器檢測到的測量值進行比較,得出偏差,之后輸出PWM控制電機轉動執行動作,同時上位機端實時顯示測量值與目標值的運動波形軌跡,判斷當前測量時是否達到目標值,如果未達到目標值則繼續執行動作,達到目標值則結束。
風力擺控制系統使用的是MPU6050 作為姿態檢測的傳感器,首先,它是以IIC 的通信方式與單片機進行數據的傳輸,IIC通信是同步通信,收發雙方需要一條時鐘線(SCL)來控制收發雙方的通信節奏。數據線(SDL)則在始終線的節奏基礎上進行數據傳輸。MPU6050 通過加速度計和陀螺儀檢測系統當前姿態得到的原始數據,然后使用其內部的數字運動處理器(DMP),將原始數據進行姿態融合解算轉換成四元數,此時再將四元數數據傳遞給單片機,通過程序計算得出歐拉角,從而確定風力擺的當前姿態。圖2 為IIC 通信時序圖。

圖2 IIC 通信時序圖
如圖中Start 部分,當SCL 為高電平,SDA 產生一個下降沿則代表通信開始,數據傳輸過程是當SCL 低電平時,SDA 才能變化,表示說發送方一定要先保持SCL 為低電平,SDA 才能變化,SDA 高電平時表明正在發送一位數據。當SCL 高電平時,SDA 絕對不能夠出現變化,因為在這時,接收方要讀取當前SDA 的信號為高電平還是低電平,所以要確保SDA 的穩定,從圖3 中可知道每位數據的改變都處于SCL 的低電平處。當SCL為高電平時且SDA 產生一個上升沿時,說明一次通信過程的結束,也就是停止位如圖3 中的Stop 部分所示。
MPU6050 是通過加速度計和陀螺儀檢測系統當前姿態得到的原始數據,然后使用其內部的數字運動處理器(DMP),將原始數據進行姿態融合解算轉換成四元數,此時再將四元數數據傳遞給單片機,通過程序計算得出歐拉角,從而確定風力擺的當前姿態。
如圖3 所示,是四元數轉換成歐拉角的轉換代碼。

圖3 四元數轉換歐拉角
DMP 解算得出的四元數原始數據存儲在數組quat[0]~quat[3] 中,q30 是大小為1073741824(2 的30 次方)的一個常量,q0~q3 是四元數轉換為浮點數的結果,將q0~q3 代入轉換公式中,計算出歐拉角,通過得出的姿態角,既能夠檢測出風力擺控制系統當前的姿態。
通過對PID 控制算法的理論分析,風力擺控制系統采用的是位置PID 閉環控制,根據公式,分別對X 軸,Y 軸設計位置PID 閉環控制,通過對value 和Target 兩個值的差值進行PID 算法處理,輸出X 軸與Y 軸的PWM,實現對電機的控制。
通過對風力擺控制系統簡諧運動分析,同時對風力擺在擺動時的擺角計算進行分析,以及PID 控制算法控制位置和速度的過程,論文對風力擺控制系統的理論計算進行了詳細說明,為風力擺控制系統的實際實現奠定了理論基礎。