2017-08-02 97 views
0

我是新來的PID控制器和quadcopters,我試圖寫一個非常簡單(但現實)的quadcopter仿真。我並沒有試圖建立一個真正的四軸飛行器控制器。使用PID控制器計算quadcopter力

我大致瞭解PID的工作原理,但我不太明白如何使用它們。我知道我需要至少三個PID,每個旋轉軸一個,但我不確定這是否足夠。

我的模擬運行在每秒60滴答,每次滴答更新PID並且模擬無人機。

案例1)

這種情況有沒有什麼直接跟無人機模擬,這只是我想了解一下感情的的PID。 假設無人機處於世界座標(0 -60 0)(Y是上軸),並且我希望它在世界原點(0 0 0)平整,所以它需要向上加速。對於這種情況,讓我們完全忽略轉子,我可以直接將力量直接施加到無人機上。無人機也是直立的,只能向上或向下移動。

爲了順利向原加快,我想我需要一個PID(我們稱之爲PID0),並與設定爲0(世界座標系原點的y座標)計算的話,和過程變量是無人機的y座標。但是,輸出不是強制。我可以將輸出作爲速度直接應用,效果很好,但這不是我想要的。是否需要附加的PID(PID1 )與設定值作爲輸出PID0過程變量是電流無人駕駛飛機速度的,來計算力?

這將意味着我需要6個PID(除了3個旋轉PID)用於所有軸上的運動?這對我來說並不合適。

如何計算我需要應用的力PID0

情況2)

對於這種情況,讓我們假設無人駕駛飛機具有自由流動,而雄蜂的線速度和角速度被轉子升力和轉子轉矩確定。比方說,無人機具有角度間距= 20偏航= 0卷= 0(正間距朝下,meaing無人駕駛飛機向前飛行),我希望它在間距拉平= 0,yaw = 0 and roll = 0

要旋轉無人機,我需要增加前轉子的轉速(和/或降低後轉子的轉速)。

如果我計算PID的輸出對於俯仰軸,與設定值爲0和過程變量爲20,餘得到另一個角作爲結果。我如何使用它來改變轉子的功率?



我不需要任何的這些問題的切實可行的解決方案,我只是需要一些提示/在正確的方向輕推。

回答

0

我可能會建議查看使用加速度計作爲傳感器,然後使用加速度作爲PID的設定值。如果你在你的無人機中心的每個移動軸周圍放置一個陣列,那麼你將擁有一個很好的平衡和導航無人機的方法。旋轉加速度計可用於軸向旋轉。

但是......

在方案1中,您的過程變量的導數,位置是速度。因此,如果您有一些可編程邏輯可以近似時間導數的導數,那麼您將具有近似的速度。根據您的穩定性需求,簡單的有限差分近似可能會有效。

在場景2中,我可能會建議對每個轉子RPM使用單獨的因變量的PID。