電賽提升----風力擺控制系統

1. 風力擺控制系統簡介

      雖然說風力擺已經是2015年的國賽題了,既沒有用到攝像頭,也無需搭建很大的系統,似乎覺得它不值得一練,但是當你去玩風力擺之後你就會發現,風力擺十分有趣,當你沒掌握關鍵點的時候,你要麼就是蕩不起來,要麼就是蕩得天高。

     首先看一下風力擺的要求吧。

                                                                      圖1-1 風力擺控制系統題目要求 

      注意題目是要求風力擺做類似自由擺運動,有些同學直接上手無刷電機,強行吹到最高點又吹到另一個目標點,雖然說博主沒有試過,但是顯然這樣是不符合題目要求的,這個不屬於題目要求。其實,我們控制要做是維持自由擺狀態,因爲理想情況下懸掛的小球就是自由擺。其他的詳細點也不再獒述,相信全網網友都參照這位大神的,主要講一些踩坑點。

風力擺控制系統賽題解析+源代碼開源

2.軟件設計(踩坑點)

2.1 MPU6050初始化失敗

       MPU6050採用的是IIC通訊協議,通常來說我們都是使用IO口模擬的IIC,性能比較差,同時通訊線長度受限,博主在做這個項目的時候線長超過20cm就會數據錯誤,留下眼淚,別人一米都沒什麼問題,外加上拉電阻也不行,聽網友建議可以使用內阻較小的線,我也沒試過,遇到這個問題的可以嘗試一下;還有一個解決方案是使用串口通訊協議的MPU6050,博主也買了一個,但是發現姿態角數據好像有點問題而且姿態角是絕對的,和上電位置無關,所以後面也放棄了。

2.2 風力擺起蕩

       風力擺關鍵點就是理解這個系統控制流程,當系統的期望當固定了幅度之後,就會被劃分成簡諧運動,目標一直是動態變化,像一條牽引的繩子,起初你無需立刻跟隨他,需要一個起蕩的過程。後面纔是一個跟隨過程,並且系統要做的僅僅是維持自由擺狀態,如果電機反應過於激烈,那麼就很大可能說明你的控制策略有誤。

2.3 風力擺波形滯後

        雖然說波形之後問題不大,但是當繪製圓形是還是保持波形一致更好一點,詢問廣大網友,他們幾乎一致的說調大D,可能對於他們的系統有用,也可能時他們只是看了上面大神的帖子,亂說一通。但是我做風力擺的時候,解決波形滯後不是通過調節D搞定的,而是通過調節週期period,對於每一個系統的period都是不同的,你需要去改變period觀察波形相位變化。

 

                                                                             圖2-1 週期1400ms時波形圖

                                                                                 圖2-2 週期1000ms時波形圖

         具體增大減小需要看你的系統,都有可能。

2.4 制動

        題目基礎四是要求制動,我們發現使用姿態角去解析位置有一個問題,在中心點的一個方向,例如左方,對於擺動來說是會有兩種趨勢的,一個是在左方爬升,就是上升過程,一個是在左方下落,也就是下落過程,當解析姿態角進行PID計算時,這兩種情況均屬於誤差大於零(假設),但是控制策略其實應該需要不同,爲了制動零點,我們在左方上升過程應該由左邊電機工作,制動上升;在左方下降過程,我們要右方電機工作,制動下降,單純位置控制無法做到這一點。爲了制動中點,我們可以採用速度控制,因爲在自由狀態下,單擺就是穩定在重點的,所以我們可以利用MPU6050中的角速度數據進行制動,效果明顯,同時穩定,使用位置控制某些時刻可能會失控。

                                                                       圖2-3 基本要求四

2.5 如何調試

         風力擺如何調試,風力擺是一個動態調節的系統,我們很難觀察當前系統與期望的誤差,很難判斷系統運行狀態,所以我們可以藉助一些風控愛好者常用的調試工具進行調試,有興趣的可以參考我 匿名四軸上位機調試 博文

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章