新手朋友們最頭痛的問題之一就是姿態(tài),翻開書本全是非常復(fù)雜的數(shù)學(xué)過程,完全不理解,今天我們聊點輕松的,可能會幫助你對姿態(tài)有一些新的認識。
為什么需要姿態(tài)
我們先忘掉固有的姿態(tài)概念,先把在空間中擺放飛行器的狀態(tài)叫做「姿勢」。
我們高中以前學(xué)習(xí)物理知識,通常是把物體當(dāng)做質(zhì)點來進行分析的,所以只需要描述物體的加速度,速度,位置就夠了,但是實際上的情況更加復(fù)雜,只有位置不夠,想象一下,如果你讓你的朋友幫你停車,你只說一個位置,他可能會停的千奇百怪,車頭朝前,車頭朝后,甚至是斜著給你停。飛機就更加復(fù)雜,在天上飛,在同一個位置可能會出現(xiàn)的無數(shù)種「姿勢」。
實際上控制器就相當(dāng)于你的朋友,你必須描述清楚你需要什么樣的「姿勢」,它才能幫你完成控制,實現(xiàn)這個「姿勢」,
如果是車,這種「姿勢」比較好描述,比如你和你的朋友都拿上指南針,然后告訴你的朋友把車頭朝著北偏東多少度,這樣他就可以完美的完成你的任務(wù)。
所以我們也需要找到一個好的方法描述這個空間中的「姿勢」。
1.如何描述姿勢
我們完全可以像停車一樣,自己找一種描述方法,來解決這個問題,但是自己找的方法可能沒有你現(xiàn)象中的那么好用。
我們先來看看前輩們是如何解決這個問題的。
現(xiàn)在我們常說的姿態(tài)其實是用剛體旋轉(zhuǎn)的形式描述在空間中的「姿勢」。
首先建立一個導(dǎo)航坐標系(地理坐標系){E}(北東天)然后在飛機上建立一個機體坐標系{B}(前右上),將兩個坐標系原點重合。
假設(shè)初始狀態(tài)是我們的機體坐標系與導(dǎo)航坐標系重合的(機頭朝北),當(dāng)前的機體坐標系與導(dǎo)航坐標系是不重合的,那么我們所說的姿態(tài),就是飛機從初始狀態(tài)旋轉(zhuǎn)到當(dāng)前狀態(tài)的過程。
所以姿態(tài)的本質(zhì)是個旋轉(zhuǎn)過程。
為什么通過旋轉(zhuǎn)這種方式可以解決我們的姿勢問題呢?因為只要你清晰的描述了這個旋轉(zhuǎn)過程,那么不論是誰來操作這個旋轉(zhuǎn),都能將飛機從初始狀態(tài),旋轉(zhuǎn)到當(dāng)前狀態(tài)。
2.姿態(tài)是個動詞
不論你用什么數(shù)學(xué)工具來描述姿態(tài)(歐拉角,四元數(shù),旋轉(zhuǎn)矩陣,軸角),它其實都是在描述一個旋轉(zhuǎn)過程,所以姿態(tài)其實是個動詞。
舉個栗子,當(dāng)前飛行器姿態(tài)為b1.
用我們新手最喜歡的歐拉角表示可以表示為(a,b,c)
將其轉(zhuǎn)換成一個旋轉(zhuǎn)矩陣
這個旋轉(zhuǎn)矩陣表示的就是當(dāng)前姿態(tài)b1.因為他是歐拉角變換過來的。
同時他是個旋轉(zhuǎn)矩陣,如果一個{E}系下的向量左乘該旋轉(zhuǎn)矩陣,就可以得到該向量在b1機體坐標系下的表示。
想想看我們經(jīng)常說的E系下的重力轉(zhuǎn)換到機體坐標系不就用的這個表達式嗎?
發(fā)現(xiàn)姿態(tài)的動詞屬性了嗎?而且聰明的你,應(yīng)該還發(fā)現(xiàn)了不同旋轉(zhuǎn)的描述有不同的優(yōu)勢。
歐拉角非常適合觀察,給我們很容易想到它大概的姿態(tài),但是卻很難實現(xiàn)這個動作,給人的感覺就是名詞屬性強,動詞屬性弱。
旋轉(zhuǎn)矩陣正好相反,看見一個旋轉(zhuǎn)矩陣,完全不知道這代表什么樣的姿態(tài),但是旋轉(zhuǎn)矩陣是可以直接參與運算的,使得坐標變換非常容易。(動詞屬性強,名詞屬性弱)
3.總結(jié)
一旦你能理解姿態(tài)的本質(zhì)是旋轉(zhuǎn),你再去深入學(xué)習(xí)會有不一樣的感受。
1.我們的問題核心是如何描述飛機在空間中的「姿勢」,可以自己設(shè)計一套方法,但是我們通常使用旋轉(zhuǎn)的方式來描述「姿勢」這個旋轉(zhuǎn)過程我們稱作「姿態(tài)」。
2.姿態(tài)這個旋轉(zhuǎn)過程,是從初始狀態(tài)轉(zhuǎn)換到當(dāng)前姿態(tài)的過程。
3.數(shù)學(xué)界的前輩們早就研究出了很多工具用來描述旋轉(zhuǎn)包括,四元數(shù)、歐拉角、旋轉(zhuǎn)矩陣、軸角等。
4.歐拉角最適合觀察,而其他形式可以直接參與運算,直接參與運算的工具使我們的坐標轉(zhuǎn)換非常方便。
5.雖然歐拉角是三個數(shù)字,但是它描述的是旋轉(zhuǎn),有很多隱藏條件,比如旋轉(zhuǎn)順序等等,所以歐拉角直接相減沒有意義。
還記得我們之前問過一個問題嗎?為什么我們姿態(tài)更新的一定要求出歐拉角而不是角速度積分得到的三個獨立角度嗎?因為目前我們的飛控代碼都是建立在這套旋轉(zhuǎn)體系之上的,如果你要使用其他方式描述「姿勢」,你就得重新設(shè)計姿勢的求解過程,以計算姿勢誤差的方法。
責(zé)任編輯:gt
評論