嵌入式運(yùn)動(dòng)工程師必須知道智能電子設(shè)備如何放置在物理結(jié)構(gòu)中(“嵌入式”)以及每個(gè)組件如何相對(duì)于彼此移動(dòng)(“運(yùn)動(dòng)”)。在本文中,我想討論我們?nèi)绾蚊枋龊徒:笠粋€(gè)術(shù)語(yǔ),運(yùn)動(dòng),我們通常認(rèn)為它非常簡(jiǎn)單。
當(dāng)我們?cè)O(shè)計(jì)運(yùn)動(dòng)系統(tǒng)時(shí),我們會(huì)問(wèn)如下問(wèn)題:
運(yùn)動(dòng)穩(wěn)定嗎?
我們?cè)鯓硬拍茏寗?dòng)作更流暢、更優(yōu)雅?
實(shí)現(xiàn)所需運(yùn)動(dòng)的最佳方法是什么?
為了以高技術(shù)可預(yù)測(cè)性回答這些問(wèn)題,我們經(jīng)常使用可信賴的運(yùn)動(dòng)學(xué)和動(dòng)態(tài)模型。有時(shí),我們?cè)?a href="http://www.wenjunhu.com/v/tag/1472/" target="_blank">機(jī)械手冊(cè)、工程工具箱、維基百科或工程網(wǎng)絡(luò)上的其他地方找到的模型對(duì)于我們的場(chǎng)景來(lái)說(shuō)已經(jīng)足夠了。有時(shí),它們不成立,我們需要一個(gè)具有更強(qiáng)預(yù)測(cè)能力的模型。
一句經(jīng)常被引用的工程諺語(yǔ)說(shuō):“所有模型都是錯(cuò)誤的。有些是有用的。” 毫無(wú)疑問(wèn),該原則也適用于 3D 運(yùn)動(dòng)。一些運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)模型在一種情況下可能是合適的,但在其他情況下則不夠。
對(duì)于運(yùn)動(dòng),普遍適用的方程可以處理多方向的 3D 旋轉(zhuǎn)和平移物體,而簡(jiǎn)單方程只能處理平移和單向旋轉(zhuǎn)。簡(jiǎn)單的方程式很有吸引力,因?yàn)樗鼈兗瓤焖儆趾?jiǎn)單。下面我將通過(guò)比較兩個(gè)系統(tǒng)來(lái)說(shuō)明這個(gè)想法,這兩個(gè)系統(tǒng)需要不同的方法來(lái)建立適當(dāng)?shù)倪\(yùn)動(dòng)學(xué)模型。
簡(jiǎn)單的運(yùn)動(dòng)分析
下圖顯示了一個(gè)簡(jiǎn)單的齒輪系統(tǒng)。底部齒條驅(qū)動(dòng)兩個(gè)齒輪和另一個(gè)齒條。讓我們假設(shè)兩個(gè)齒輪的中心是固定的,所以齒輪只是在旋轉(zhuǎn),而頂部齒條在 x 方向上移動(dòng)。如果底部齒條以ν 1 = 1mm/s 的速度移動(dòng),頂部齒條的移動(dòng)速度有多快(假設(shè)齒輪沒(méi)有損失)?
事實(shí)證明,我們需要的方程非常簡(jiǎn)單。我們可以在這個(gè)例子中輕松定義角度信息:
每個(gè)齒輪的角速度 ( ω ) 僅等于一個(gè)角度 ( θ ) 的時(shí)間變化率。例如,對(duì)于較大的齒輪,我們可以說(shuō)它的角速度用ω 1 = θ? 1來(lái)描述。
每個(gè)齒輪都圍繞其質(zhì)心旋轉(zhuǎn)。
通過(guò)將該系統(tǒng)本質(zhì)上視為 2D,我們可以安全地在分析中使用ν = τω 。應(yīng)用該關(guān)系來(lái)設(shè)計(jì)我們的系統(tǒng)會(huì)得出 ν 2 = ν 1。
轉(zhuǎn)向 3D
當(dāng)我們遇到 3D 運(yùn)動(dòng)系統(tǒng)的零件在多個(gè)方向而不是圍繞其質(zhì)心旋轉(zhuǎn)時(shí),我們?cè)撛趺崔k?我們?nèi)绾味x角度?什么是角速度?
四軸飛行器的運(yùn)動(dòng)是更復(fù)雜的 3D 運(yùn)動(dòng)系統(tǒng)的一個(gè)合適示例。對(duì)于四軸飛行器,我們希望穩(wěn)定地控制它的位置(“它在哪里?它的速度有多快?”)和空間方向(“‘傾斜’角度是多少?”)。飛行中的四軸飛行器可以在 x、y 和 z 方向上平移并圍繞 x、y 和 z 旋轉(zhuǎn)(其中 xyz 是固定在空間中的三個(gè)正交方向)。
為了保持四軸飛行器穩(wěn)定,我們將使用陀螺儀測(cè)量每個(gè)軸的角速度,并將該信息反饋給控制算法。三軸陀螺儀將輸出三個(gè)角速度值,但請(qǐng)注意,這些角速度對(duì)應(yīng)于四軸飛行器上固定的軸。這些 xyz 軸與與四軸飛行器在空間中的位置、速度和加速度相關(guān)的 xyz 軸不同??梢哉f(shuō),將陀螺儀的輸出轉(zhuǎn)換為可被控制算法消化的東西是 3D 動(dòng)力學(xué)模型派上用場(chǎng)的地方。
開(kāi)始使用更強(qiáng)大的 3D 模型
一個(gè)更強(qiáng)大的 3D 運(yùn)動(dòng)模型開(kāi)始于:
將參考系分配給空間中固定的點(diǎn)。
將系統(tǒng)中的所有對(duì)象視為剛體。
為每個(gè)身體上的某個(gè)點(diǎn)分配一個(gè)參考系。
參考系是我所說(shuō)的一組三個(gè)正交單位向量,它們連接到某個(gè)點(diǎn)。在本例中,唯一的對(duì)象是四軸飛行器,因此我們將其視為單個(gè)剛體。(我們將在這里忽略四軸飛行器上的其他部分。)我們會(huì)說(shuō)參考系N 固定在地球上的一點(diǎn),由n? x、 n? y和 n? z組成。我們將參考框架D附加到四軸飛行器的質(zhì)心。參考系D由d? x、 d? y和 d? z組成。 上圖顯示了 CAD 中的簡(jiǎn)化描述。
陀螺儀的測(cè)量結(jié)果將為我們提供關(guān)于d? x、 d? y和 d? z的角速度,對(duì)于控制算法,我們想知道這些值如何與n? x、n? y和n? z中的有意義的角度相關(guān)聯(lián)。 實(shí)現(xiàn)此目的的一種方法是通過(guò)圍繞固定在四軸飛行器機(jī)身上的軸進(jìn)行一系列簡(jiǎn)單旋轉(zhuǎn)來(lái)定義四軸飛行器的方向。在這一步的開(kāi)始,我們可以用d? x、d? y和d? z來(lái)表示四軸飛行器的角速度,它看起來(lái)像這樣:
在這項(xiàng)工作的最后,我們將使用旋轉(zhuǎn)矩陣以歐拉角的形式表示每個(gè)角速度。歐拉角為我們提供了一種精確描述物體在 3D 空間中的方向的方法。(請(qǐng)注意,歐拉角不一定對(duì)應(yīng)于我們所說(shuō)的偏航、俯仰和滾動(dòng)。)我們將以ω 1、ω 2和 ω 3的精確表達(dá)式結(jié)束。
由于四軸飛行器可以繞多個(gè)軸旋轉(zhuǎn),我們不再有簡(jiǎn)單的ω 1 = θ? 關(guān)系,也不能用ν = τω 來(lái)概括地描述四軸飛行器上一點(diǎn)的速度。事實(shí)上,ω 1的方程 看起來(lái)像 ω 1 = φ? = cos α + α? - θ? sin φ 其中θ、φ和α 是歐拉角。ω 2 和ω 3的方程 不幸的是,同樣混亂。簡(jiǎn)而言之,很容易看出 3D 系統(tǒng)的定義如何超出我們?cè)趥鹘y(tǒng)動(dòng)力學(xué)資源中發(fā)現(xiàn)的范圍。有關(guān)這些計(jì)算的更多詳細(xì)信息,請(qǐng)參閱額外信用部分。
模擬復(fù)雜的運(yùn)動(dòng)現(xiàn)象
當(dāng)我們對(duì)復(fù)雜的 3D 運(yùn)動(dòng)現(xiàn)象建模時(shí),區(qū)分標(biāo)量和矢量是關(guān)鍵。請(qǐng)記住,向量既有大小又有方向(例如,東北方向 25 mph),而標(biāo)量只有大?。?5 mph)。當(dāng)我們將其他物理值(速度、加速度、線性和角動(dòng)量、力、扭矩等)帶入我們的模型時(shí),我們應(yīng)該首先將它們視為向量。例如,當(dāng)我們談?wù)撆ぞ貢r(shí),指定它的方向(例如,關(guān)于正 z 軸)以及它的大?。? Nm)是很有用的。
使用更復(fù)雜模型的好處是,您可以為任何由剛體組成的運(yùn)動(dòng)系統(tǒng)精確定義與角度相關(guān)的所有量(方向、角動(dòng)量、力矩和慣性積等) 。方程可能會(huì)變得粗糙,因此使用 MATLAB、Working Model或MotionGenesis等軟件程序通常是明智的。
請(qǐng)注意,如果我在齒輪示例中遵循 3D 模型方法,那么我會(huì)明確地將速度和角速度視為矢量。但同樣,齒輪示例中的運(yùn)動(dòng)符合我簡(jiǎn)化為 2D 運(yùn)動(dòng)學(xué)方程的標(biāo)準(zhǔn),并且我避免了 3D 模型的時(shí)間繁重的定義。如果我有一個(gè)更復(fù)雜的運(yùn)動(dòng)系統(tǒng),那么我必須將運(yùn)動(dòng)學(xué)和動(dòng)態(tài)量視為向量,否則我可能會(huì)面臨預(yù)測(cè)模型不佳的風(fēng)險(xiǎn)。
對(duì)系統(tǒng)的運(yùn)動(dòng)進(jìn)行精確建模可能是一件棘手的事情,但通過(guò)構(gòu)建一個(gè)穩(wěn)健的模型,我們可以更快地響應(yīng)更廣泛的問(wèn)題。如果我們希望制作一個(gè)功能強(qiáng)大、平滑且優(yōu)雅的穩(wěn)定運(yùn)動(dòng)系統(tǒng),那么我們必須決定哪種模型更合適。作為工程師,我們必須認(rèn)識(shí)到常見(jiàn) 2D 方程的局限性,以及解決 3D 運(yùn)動(dòng)系統(tǒng)的其他合適工具。
有關(guān) 3D 運(yùn)動(dòng)分析相關(guān)主題的更多資源和支持,請(qǐng)關(guān)注Simplexity 的產(chǎn)品開(kāi)發(fā)博客。
額外學(xué)分
這是為四軸飛行器精確定義旋轉(zhuǎn)信息的一種方法:
我們將使用中間參考系來(lái)描述四軸飛行器的方向。我們將調(diào)用附加到四軸飛行器B的初始參考系。最初, b? x = n? x、b? y = n? y和b? z = n? z。參考系D仍然附著在身體上,最初,d? z = b? z = n? z。我們將首先圍繞b? z (這里等于d? z)旋轉(zhuǎn),然后我們將旋轉(zhuǎn)角度 + θ。 然后我們可以寫(xiě)出 B 在N中的角速度是
然后我們將圍繞身體上的另一個(gè)固定軸d? y旋轉(zhuǎn),我們將把這個(gè)新的中間參考系稱為C。最初,? x = b? x、d? y = ? y = b? y和 ? z = b? z。 我們將圍繞 ? y旋轉(zhuǎn)角度 + φ。然后我們可以寫(xiě)出 C 在 B 中的角速度是。
最后,我們將圍繞固定軸 d? x旋轉(zhuǎn)。最初,d? x = ? x,d? y = ? y和d? z = ? z 。我們將 圍繞d? x旋轉(zhuǎn)角度 + α。然后我們可以寫(xiě)出D在C中的角速度是。
?
因?yàn)檫@是來(lái)自陀螺儀的數(shù)據(jù)格式。我們想根據(jù)我們的全球參考框架N重新表達(dá)這一點(diǎn)。
幸運(yùn)的是,這些旋轉(zhuǎn)中的每一個(gè)都在每個(gè)中間幀之間創(chuàng)建了一個(gè)旋轉(zhuǎn)矩陣,我們可以使用這些旋轉(zhuǎn)矩陣的乘法來(lái)表達(dá)
我們定義的角度。(我不會(huì)詳細(xì)介紹這部分,但它直接來(lái)自進(jìn)行這些中間旋轉(zhuǎn)。)結(jié)果如下:
請(qǐng)注意,我們可以通過(guò)以 _ _ _ _ _ _ _ _ _ d? 1、d? 2和d? 3。此外(通過(guò)重新排列),我們可以用? 1、? 2和? 3來(lái)表示每個(gè)歐拉角。例如:
唉,我們?yōu)樗妮S飛行器的角速度給出精確定義并使其可供控制算法使用的第一步已經(jīng)完成。
審核編輯:郭婷
評(píng)論
查看更多