我看到多次藉助於仿真平臺進行無人機的算法研發的

我看到多次藉助於仿真平臺進行無人機的算法研發的

 

這也讓我覺得你玩ROS可以沒必要急着買設備,先去仿真跑跑,對不對。

 

https://mp.weixin.qq.com/s/yU_xj8bMAASm8cIZnn2iZw

 

 

阿木社區也有無人機仿真的課

https://bbs.amovlab.com/plugin.php?id=zhanmishu_video:video

 

 

 

https://mp.weixin.qq.com/s/UzfeVZiRe3HGdvVcJOB8HA

如何對飛行器進行串級PID的調參?

原創 across超越者 across說 昨天

在飛控系統中,常用的控制算法是PID,基於其控制架構的特性,一般採用串級PID的控制結構,即是角速度/角度、速度/位置的串級PID

而由於PID算法實現較爲簡單,因此不是工程上的難點,反而,往往是在其調參上,需要耗費大量的精力,甚至最終也未找到相對較優的參數。

 

那首先思考,難在哪?

具體來說,首先,因爲控制器是串級的,所有兩個控制器在一起調節的時候,很難把握某一個參數具體影響什麼性能,相當於沒有標準

其次,對於飛控而言,角度的性能又會影響到定點的位置性能,所以往往只調一個迴路是不奏效的

 

工程如何做?

難歸難,活還是要做的。那如何去做呢?簡單來說就是由底層到上層,一層一層的進行控制器參數調節。至於調優的指標,首先就是實際多調試,經驗多了自然懂,另外可以關注一下控制器的量化指標,簡單來說就是目標值的跟蹤性能,關注一下跟蹤時間、超調以及穩定性之類的。

 

有沒有更好的辦法?

答案自然是有的。做算法的,自然可以藉助一下matlab工具,在仿真環境中進行對模型的參數調優。

早期呢,可以在仿真中自己手動調優,這樣明顯是要比實際現場調參要快的多。

但是也有以下問題:

首先,仿真中調優,很依賴於使用的模型,模型如果與實際飛行器差別很大,那得到的參數也會偏差很大,這也是爲什麼大多數人並不遵循對飛行器進行數學建模,然後仿真調參,最後驗證的流程的原因;

第二,在仿真中手動調參一樣是不能保證找到最優參數的

 

以上描述了仿真調優的兩個問題。逐個分析,第一,精確的模型建模不在本文探討範圍;第二,針對上面的手動調優的問題,本文介紹如何在matlab下進行串級PID控制器的調參,僅供參考;

 

舉例:

這裏以四旋翼飛行器的姿態控制迴路爲例:

圖中的傳函表示的是控制輸入到角速度的模型,加上積分環節,得到角度的模型。

找到matlab的app頁面下的Control System Tuner

打開:

然後加載控制器模塊,即你要調優的控制器。

這裏把要調參的兩個控制器都勾選上。

這裏需要對設置的參數再進行一些設置,以方便更加準確的找到最優參數。

比如姿態環只採用P控制,並設定最大最小值,因爲參數不會小於0,最大值也是可以估計出來的。

然後再選擇調優的目標,這裏主要考察階躍響應的跟蹤,比如給定一個0.5rad的姿態目標。

在這個頁面下,選擇輸入和輸出的信號,這裏從模型中進行選擇,點中以後,再去simulink模型下選擇對應的信號線就可以了。

選擇完以後:

最後,就是設置你想要達到的目標響應。這裏,我們選擇一階系統的階躍響應,無超調,響應時間設置成0.4,其餘設爲默認。

1s改成0.4s

圖中虛線就是要達到的目標狀態,即在1.5s左右,響應到1rad目標值。

設置完成後,點擊tune:

可以通過tuning report查看調優的結果,數值越接近1,效果越好。

圖中看出,基本達到設置的響應曲線。

最後將調優的參數更新到simulink的PID模塊中進行驗證。

驗證結果:

可以看出基本滿足控制要求,具體的響應時間,可以根據需求調整。

姿態環參數:

角速度環PID參數:

以上就是本文的內容,如何通過matlab進行串級PID控制器的參數調優。以上都是最簡單的基本功能,在調優APP中還可以通過其他指標,比如幅值和相角裕度等。

通過這個工具,能夠幫我們找到基本的參數量級和大概參數值,而實際應用中,由於仿真的模型不夠精準,往往還需要再精調一次,但參數的量級基本是正確的

 


across說:一個有趣有用的公衆號,分享筆者在無人機、無人駕駛、機器人等領域的技術開發心得與見解。掃描下方二維碼,即可關注本公衆號。

 

 

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