我做PID算法的背景和經歷:本人之前電子信息科學與技術專業,對控制方向頗感興趣,剛上大學時聽到實驗室老師說PID算法,那年在暑假集訓准備全國電子設計競賽,我正在練習做一個以前專科的題目,帆板角度控制系統,還不懂PID是個什么玩意,老師讓我把PID加到這個題目里。當時給了一些電子版的一些教程,但是沒看懂。。。。。。。后來對四旋翼很感興趣,想弄一架玩玩再親自寫程序做一架,買了PIX飛控玩了很久,自己也確實做了一個簡單的飛控,我做的飛控只能簡單飛起,沒有啥創新功能。。。(這過程得有一年多,說來話長,因為玩飛機成本高而且效率比較低,最后干脆不繼續了,反正是把PID現在搞得很熟悉了,這期間也做了平衡車和倒立擺,想問PID問題的可以聯系我QQ522414928,隨時在線。)
我曾經玩的四旋翼,玩飛機花了不少錢:
1.倒立擺與平衡車最通俗的理解與解釋(也是我努力了半天總結的經驗):當年的電子大賽旋轉倒立擺到底有多變態,很多人都認為1個PID只要參數適中這個問題就能解決,因為平衡車一個PID就能夠站起來,很多人都以為倒立擺跟平衡車一樣,很多人努力了很長時間都以為機械結構做的不好或程序及參數寫的不對而放棄,我也一直認為1個PID能解決這個問題,做了一段時間以放棄告終。單純的控制角度跟隨一個PID確實能夠讓擺站起來,但是忽略了一個很重要的細節,就是在電機速度很快的時候擺平衡了,而且在擺平衡的時候電機的速度一定會很快,此時就會保持這種電機高速運轉的狀態,但是這種高速旋轉顯然是短暫的平衡,所以用單級PID做的倒立擺會瞬間平衡一下立刻倒下。
所以說對於倒立擺這個系統,單級的PID算法是實現不了的,至少需要兩級PID去控制才能站穩。
當年做的平衡車,做過好幾個,有單級PID算法的,還有多級PID算法的:
以下是研究倒立擺時遇到的PID串級和並集的困擾:
2.折騰了很長時間PID的問題,尤其是串級PID,以前還想不明白串級PID的外環輸出為什么給內環PID的輸入,后來想明白了。但是,今天又有了新的發現,研究了這么長時間的串級PID,今天恍然大悟了,把串級PID的公式推導,把串級的兩個PID的兩個公式合並成一個公式不就是並級的PID公式嗎,感謝平衡小車之家的店主提醒,以前從來沒推導過,竟然:串級PID=並級PID,以后研究各種平衡跟蹤的問題完全不用考慮難以理解的串級pid了,直接一個PID不行,再並一個PID就可以了,一直糾結的問題原來這么簡單,並且把串級PID和並級PID都用倒立擺試了一下,結果效果是一樣的。只是並級第二個PID的參數=原來串級外環PID的參數*(乘)原來串級PID內環的參數
用openmv做的PID小球顏色追蹤:
旋轉倒立擺:
想看更多的資料或教程可以到我的QQ空間https://user.qzone.qq.com/522414928/infocenter
或加QQ522414928共同學習