AUV运动控制仿真(PID控制)
提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
目錄
前言
一、研究對(duì)象描述
二、總體思路
三、仿真實(shí)現(xiàn)
1.獲得誤差
2.設(shè)計(jì)PD控制器
3.控制力傳入模型進(jìn)行解算
4.通過艏向角速度得到艏向角
5.Solver設(shè)置
四、仿真結(jié)果分析
前言
本文對(duì)AUV的運(yùn)動(dòng)控制仿真過程進(jìn)行介紹,采用PID控制方法,實(shí)現(xiàn)水平面上的簡單的AUV的運(yùn)動(dòng)控制。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、研究對(duì)象描述
研究AUV的水平面運(yùn)動(dòng),AUV為欠驅(qū)動(dòng),具備垂向推力和轉(zhuǎn)艏力矩的輸入,即具有主推和垂直舵。
二、總體思路
給定AUV期望的垂向速度和艏向角的值,與模型解算出的實(shí)時(shí)垂向速度和艏向角做差,得到誤差值,隨后利用PD控制設(shè)計(jì)控制器,產(chǎn)生期望推力和力矩,作用到AUV模型上,形成閉環(huán)。
三、仿真實(shí)現(xiàn)
以下依筆者的思路,對(duì)整個(gè)仿真程序進(jìn)行介紹。
1.獲得誤差
直接將期望值與AUV的速度和艏向角進(jìn)行做差得到
這里設(shè)置的期望速度:,期望艏向角:。
2.設(shè)計(jì)PD控制器
得到兩者誤差后,根據(jù)PD控制知識(shí),設(shè)計(jì)控制器。需要誤差值及誤差值的導(dǎo)數(shù)信息。
將誤差及其導(dǎo)數(shù)傳入控制器的S函數(shù),在S函數(shù)內(nèi)設(shè)置相關(guān)的控制增益,具體為:
?S函數(shù)依次輸出推力和力矩。
在仿真圖中,輸出的力經(jīng)過了積分的處理,而力矩卻沒有,這里進(jìn)行詳細(xì)地說明。
了解控制過程其實(shí)很好理解,當(dāng)AUV的速度小于期望速度時(shí),需要增加推力,而控制器的推力是通過速度的誤差獲得的,在AUV運(yùn)動(dòng)時(shí),會(huì)不斷受到航行阻力的作用,因此AUV的推力需要保持,不能消失。
而不同于速度的控制,艏向角就不會(huì)出現(xiàn)這種情況,給到一個(gè)力矩作用AUV就會(huì)轉(zhuǎn)艏,且AUV保持艏向角是不需要力矩的,這是關(guān)鍵,而AUV的速度想要保持需要縱向推力的保持。
3.控制力傳入模型進(jìn)行解算
在得到控制器設(shè)計(jì)出的控制力和力矩之后,執(zhí)行機(jī)構(gòu)做出反應(yīng),此時(shí)AUV的運(yùn)動(dòng)狀態(tài)發(fā)生變化,這是通過AUV的動(dòng)力學(xué)模型體現(xiàn)出來的。
AUV的水平動(dòng)力學(xué)模型是具備三個(gè)自由度的,即縱向運(yùn)動(dòng)、橫向運(yùn)動(dòng)和轉(zhuǎn)艏運(yùn)動(dòng)。本文的AUV是欠驅(qū)動(dòng)的,只用縱向推力和轉(zhuǎn)艏力矩,橫向無控制輸入,因此橫向的輸入設(shè)計(jì)為0。
關(guān)于AUV的模型的S函數(shù),實(shí)質(zhì)上就是用于解算微分方程的,這個(gè)微分方程就是AUV的動(dòng)力學(xué)模型,其中的未知數(shù)就是AUV的這三個(gè)自由度,以及他們的導(dǎo)數(shù),在得到所有自由度上的控制力后,除其他的未知數(shù)都是可以獲得的,三個(gè)方程三個(gè)未知數(shù),可以進(jìn)行解算,這部分交給S函數(shù)的微分模塊。
常用的AUV動(dòng)力學(xué)模型一般為:
在S函數(shù)中的體現(xiàn)為:
其中的一系列的水動(dòng)力系數(shù)選自特定的AUV模型,這是事先針對(duì)具體的AUV?通過試驗(yàn)測得的。
4.通過艏向角速度得到艏向角
AUV模型輸出了縱向速度和艏向角速度,其中縱向速度是我們想要的,但是還需要AUV的艏向角。通過對(duì)艏向角速度進(jìn)行積分同時(shí)設(shè)計(jì)初始值便可以得到實(shí)時(shí)的艏向角信息。
初始值在積分器中進(jìn)行設(shè)置, 這里設(shè)置為0。在經(jīng)過積分處理后傳入名為‘xianzhi’的S函數(shù),這是由于AUV的艏向角的范圍為[-pi,pi],需要做出限制。在S函數(shù)內(nèi):
?在做出限制后,就得到了AUV的艏向角yaw的信息,隨后又傳入了一個(gè)增益,其大小為180/pi,其作用是將弧度制轉(zhuǎn)化為角度制,因?yàn)樵赟IMULINK仿真過程中使用的都是弧度制,轉(zhuǎn)化為角度制會(huì)更加直觀。
5.Solver設(shè)置
至此,列出了所有的仿真程序,按照上述方法搭建即可完成AUV水平面的運(yùn)動(dòng)控制。但實(shí)際上搭建完后還要對(duì)Solver進(jìn)行設(shè)置。
在SIMULINK中CTRL+E,或點(diǎn)擊鼠標(biāo)右鍵打開Model Configuration Parameters,在Solver欄進(jìn)行如下設(shè)置:
四、仿真結(jié)果分析
搭建完成后運(yùn)行,可以得到仿真結(jié)果。
AUV的縱向速度:
?AUV的艏向角:
縱向推力:?
?轉(zhuǎn)艏力矩:
轉(zhuǎn)艏角速度:
從仿真結(jié)果來看,各方面表現(xiàn)良好,在艏向角的控制上存在略微超調(diào),但在合理范圍內(nèi),基本實(shí)現(xiàn)了良好的AUV的水平面的運(yùn)動(dòng)控制。
總結(jié)
以上是生活随笔為你收集整理的AUV运动控制仿真(PID控制)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uni-app uView UI框架 下
- 下一篇: 如何快速搭建好看的个人博客(完整配置与源