【Simscape】用Simscape實現三維物理仿真(六)——四旋翼定點懸停控制

仿真文件下載:(與畢設相關,延遲發佈,敬請諒解!) 


上一篇博客是:【Simscape】用Simscape實現三維物理仿真(五)——雙閉環倒立擺控制系統

       筆者承諾做一篇關於的飛行器的Simscape仿真,後來花了一整天做。確實要複雜一些。而且有一些小細節在設計仿真前很難注意到。這個系列的教程做完這一期就算完結了,有讀者反應後面幾篇博文技術有些跳躍,筆者的建議是從第一篇看起,因爲在前幾篇博文中提到的操作在下一篇博文中會被省略。下面開始進入正題。

1 導入機身並配置

(1)使用SolidWorks繪製一個機身(這個的過程確實省略了,逃)

(2)將其另存爲STEP格式,只有這個格式可以被讀取。

(3)在新建好的Simscape工程中找到一個Solid模塊,將其導入:

 (4)在飛機的中心和四個電機位置分別設置座標系:

2  添加螺旋槳以及參考地面

添加螺旋槳得到目的是爲了方便標記機頭方向,在後續的仿真中提供便利,用扁圓柱即可,添加參考地面是爲了方便觀察飛行器的姿態。

(1)螺旋槳不同的旋向使用的不同的顏色區分。並按照順序連接:

(2)先給大家看一下連接好的樣子:

3 添加關節

       四旋翼我們習慣是採用歐拉角來定義它的姿態,所以我們就不採用球關節了,此外飛機還有三個平動自由度,所以筆者在此給出一種相當方便的座標系設計:

      這是經過多次嘗試得到的最好方法,但是其仍然有一些缺陷,比如在控制的參數設置的不合適的時候,會出現死鎖(Gimble Lock)現象。當然這是歐拉角座標系的通病。

      這個級聯關節組的基礎座標(B)與世界座標系綁定,從動座標系(F)連接到四旋翼的中心座標系。

4 添加力,扭矩和傳感器

       這個部分筆者需要多說幾句,實際的飛行器中,航向扭矩的來源非常複雜,它既包含整個四旋翼系統因角動量守恆產生的扭矩,也包括旋翼與空氣作用產生的相對扭矩。筆者曾經將這兩者全部考慮進仿真,結果是仿真3秒所需要的時間差不多可以看完一場泰坦尼克號,因此爲了避免仿真時間的爆炸,筆者最終採用了人工解算扭矩的辦法,並且留出扭轉系數可供編輯(不同機型的係數是不一樣的)。

       傳感器我基本全部引了出來。用不用看算法如何設計。

      最終的四旋翼飛行模型的連線是這樣的:

5 封裝成子模塊

子模塊方便調用,也可以很直觀的看到四旋翼系統的輸入與輸出。

(1)Ctrl+A選中所有,鼠標右鍵,選擇“將選中部分轉換爲子系統”:

(2)這樣我們可以看到現在四旋翼模型已經是一個只有輸入輸出的整體了:

 6 添加反饋控制律

筆者在這裏就用一個簡單的PD控制算法做了姿態和位置的閉環,這個算法的設計屬於基本操作,筆者不再贅述。設計好的整體結構如圖所示:

這是整個過程中姿態和位置的曲線,可以看到都是收斂的,這套參數顯然不是最優,只是給大家看個效果。 

 這是仿真的效果:

(不得不說,Simscape真是個厲害的功能,這個的設計人員相當強大!要是Simscape能支持一下渲染就更香了,嗯~)

 

Simscape的教程到這就結束了,這是我填坑的第二個系列,愛你們!

                                                                   ——ReadAir 2020/3/9 22:56


我是ReadAir,如果這篇教程能幫到你,請在右上角爲我點個贊,謝謝!(求關注)

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