ADAMS三维路面重构
自己做的課題中有一部分是研究機(jī)器人在路面上行走時(shí)的振動(dòng)問(wèn)題,之前在做的時(shí)候是通過(guò)建立動(dòng)力學(xué)方程來(lái)進(jìn)行建模,之后給模型輸入相應(yīng)的輸入。這個(gè)過(guò)程比較繁瑣,首先是需要構(gòu)建整個(gè)機(jī)器人的動(dòng)力學(xué)方程,當(dāng)機(jī)器人比較復(fù)雜時(shí)或者為提高精度,整個(gè)動(dòng)力學(xué)方程就變得非常復(fù)雜;而且當(dāng)需要的輸入量或者輸出量增加時(shí),將直接導(dǎo)致模型參數(shù)矩陣維度的升高,整個(gè)建模求解過(guò)程會(huì)變得非常復(fù)雜。后來(lái)看到一些文獻(xiàn)中用ADAMS或者其他已經(jīng)成熟的動(dòng)力學(xué)軟件進(jìn)行虛擬樣機(jī)的建模,深受啟發(fā):既然已經(jīng)有了前期在SOLIDWORKS中建好的機(jī)器人三維模型,為什么不直接用呢?于是后期就圍繞ADAMS與MATLAB來(lái)進(jìn)行機(jī)器人在路面上行走過(guò)程中的振動(dòng)分析。
ADAMS中有相關(guān)的路面文件,但這些文件不能直接用來(lái)進(jìn)行自己的機(jī)器人的分析,因?yàn)锳DAMS中的路面文件是設(shè)計(jì)用來(lái)分析汽車的行駛情況的。不過(guò)在了解了路面文件的結(jié)構(gòu)后,自己也可以通過(guò)MATLAB編寫程序求解出需要的數(shù)據(jù)之后自己編寫需要的合適的路面文件。
常見(jiàn)的戶外的路面即使是看著平坦的路面也不可能是絕對(duì)光滑的,如果將路面的縱向長(zhǎng)度定義為XXX,橫向?qū)挾榷x為YYY,路面的不平度即縱向高程定義為qqq,則qqq在X、YX、YX、Y上的分布可以用統(tǒng)計(jì)學(xué)的方法來(lái)進(jìn)行描述,這一類路面稱為隨機(jī)路面;對(duì)于大的障礙物比如減速帶或者溝槽,可以直接用障礙物的形狀尺寸進(jìn)行刻畫。許多文獻(xiàn)以及相應(yīng)的國(guó)際標(biāo)準(zhǔn)已經(jīng)對(duì)隨機(jī)路面不平度做了研究。
在空間頻率n1<n<n2n_1<n<n_2n1?<n<n2?內(nèi)的路面不平度功率譜密度為Gq(n)G_q(n)Gq?(n),利用平穩(wěn)隨機(jī)過(guò)程的頻譜展開(kāi)性質(zhì),路面不平度的方差σq2\sigma_q^2σq2?為
σq2=∫n1n2Gq(n)dn\sigma_q^2=\int_{n_{1}}^{n_2}G_q(n)dnσq2?=∫n1?n2??Gq?(n)dn
路面不平度功率譜密度擬合表達(dá)式為
Gq(n)=Gq(n0)(nn0)?ωG_q(n)=G_q(n_0)(\frac{n}{n_0})^{-\omega}Gq?(n)=Gq?(n0?)(n0?n?)?ω
式中,ω\omegaω為路面功率譜密度頻率結(jié)構(gòu)的頻率指數(shù);n0n_0n0?為參考空間頻率,n0=0.1m?1n_0=0.1m^{-1}n0?=0.1m?1;Gq(n0)G_q(n_0)Gq?(n0?)為參考空間頻率n0n_0n0?下的路面功率密度,又稱為路面不平度系數(shù)。
對(duì)于路面不平度的擬合有很多種方法,這一方面文獻(xiàn)很多。自己用的是正弦波疊加法來(lái)進(jìn)行擬合,具體的:
q(x)=∑i=1m2Gq(nmid?i)Δnisin(2πnmid?i+θi)q(x)=\sum_{i=1}^{m}\sqrt{2G_q(n_{mid-i})\Delta{n_i}}sin(2\pi n_{mid-i}+\theta_i)q(x)=∑i=1m?2Gq?(nmid?i?)Δni??sin(2πnmid?i?+θi?)
式中,xxx為路面延縱向長(zhǎng)度的位移,θi\theta_iθi?為[0,2π][0,2\pi][0,2π]上均勻分布的相互獨(dú)立的隨機(jī)變量,nmid?in_{mid-i}nmid?i?為將頻率區(qū)間分成mmm個(gè)小區(qū)間后每一個(gè)小區(qū)間的中心頻率。
當(dāng)然,上式也可以擴(kuò)展到路面上任意點(diǎn)(x,y)(x,y)(x,y),
q(x,y)=∑i=1n2Gq(nmid?i)Δnisin(2πnmid?ix2+y2+θi(x,y))q(x,y)=\sum_{i=1}^{n}\sqrt{2G_q(n_{mid-i})\Delta{n_i}}sin(2\pi n_{mid-i}\sqrt{x^2+y^2}+\theta_i(x,y))q(x,y)=∑i=1n?2Gq?(nmid?i?)Δni??sin(2πnmid?i?x2+y2?+θi?(x,y))
其中,θi(x,y)\theta_i(x,y)θi?(x,y)為路面上任意點(diǎn)(x,y)(x,y)(x,y)處屬于[0,2π][0,2\pi][0,2π]區(qū)間的隨機(jī)數(shù)。
利用上式在MATLAB中編寫程序即可得到隨機(jī)路面不平度分布。
上圖為通過(guò)MATLAB求解出的80m×4m80m\times4m80m×4m的C級(jí)路面不平度分布。
得到上面的數(shù)據(jù)后離我們想要的路面文件還有很大差距,因?yàn)檫@些數(shù)據(jù)并不能直接運(yùn)用到ADAMS中作為路面文件,因此首先要研究一下ADAMS路面文件的構(gòu)成,這樣就可以確定如何處理上面得到的數(shù)據(jù)。
上圖是一種典型的路面文件。ADAMS的路面文件的后綴是.rdf,這些文件可以在ADAMS的安裝目錄下的C:\MSC.Software\Adams\2018\atire\roads.tbl下找到。如上圖所示,文件中規(guī)定了參數(shù)的單位“units”,路面的定義方式“3D”,節(jié)點(diǎn)“nodes”以及單元“elements”。其中重點(diǎn)關(guān)注節(jié)點(diǎn)“nodes”和單元“elements”:
節(jié)點(diǎn)“nodes”是一個(gè)四維向量,可以表示為N(i)=N(ni,xi,yi,zi)N(i)=N(n_{i},x_{i},y_{i},z_{i})N(i)=N(ni?,xi?,yi?,zi?),其中nin_ini?為節(jié)點(diǎn)排序后的編號(hào),xi,yi,zix_i,y_i,z_ixi?,yi?,zi?分別為各節(jié)點(diǎn)的坐標(biāo)值;單元“elements”是一個(gè)五維向量,可以表示為E(i)=E(na,nb,nc,μ0,μ)E(i)=E(n_a,n_b,n_c,\mu_0,\mu)E(i)=E(na?,nb?,nc?,μ0?,μ),其中na,nb,ncn_a,n_b,n_cna?,nb?,nc?分別為單元E(i)E(i)E(i)所對(duì)應(yīng)的三個(gè)節(jié)點(diǎn)的編號(hào),μ0,μ\mu_0,\muμ0?,μ分別為靜摩擦因數(shù)與動(dòng)摩擦因數(shù)。
上述提到的節(jié)點(diǎn)的編號(hào)是在排序后給出的編號(hào)。在MATLAB中求解得到的q(x,y)q(x,y)q(x,y)數(shù)據(jù)可以理解為許多個(gè)坐標(biāo)為(x,y,q(x,y))(x,y,q(x,y))(x,y,q(x,y))的點(diǎn)。對(duì)于縱向長(zhǎng)度為XXX、橫向?qū)挾葹?span id="ze8trgl8bvbq" class="katex--inline">YYY的路面,在前面構(gòu)造擬合的時(shí)候?qū)?span id="ze8trgl8bvbq" class="katex--inline">X、YX、YX、Y分別按照Δx、Δy\Delta{x}、\Delta{y}Δx、Δy來(lái)進(jìn)行分割(對(duì)于上面的80m×4m80m\times{4m}80m×4m的路面分別按照Δx=0.5和Δy=0.16\Delta{x}=0.5和\Delta{y}=0.16Δx=0.5和Δy=0.16來(lái)進(jìn)行劃分,當(dāng)然也可以用其他數(shù)值,不過(guò)數(shù)值越小,MATLAB的計(jì)算求解時(shí)間越長(zhǎng),試過(guò)當(dāng)兩個(gè)值都為0.0010.0010.001時(shí),計(jì)算時(shí)間遠(yuǎn)遠(yuǎn)超過(guò)四個(gè)小時(shí)),那么求解得到的q(x,y)q(x,y)q(x,y)即為一個(gè)XΔx×YΔy\frac{X}{\Delta{x}}\times \frac{Y}{\Delta{y}}ΔxX?×ΔyY?的矩陣。如果將這些數(shù)值點(diǎn)投影到XYXYXY平面,就會(huì)得到XΔx×YΔy\frac{X}{\Delta{x}}\times \frac{Y}{\Delta{y}}ΔxX?×ΔyY?的點(diǎn)陣。依次按行遍歷這些點(diǎn)陣,就對(duì)這些點(diǎn)陣進(jìn)行了編號(hào),節(jié)點(diǎn)編號(hào)依據(jù)“先橫后縱 、由小到大”的原則,進(jìn)而生成了節(jié)點(diǎn)“nodes”矩陣。每三個(gè)相鄰的節(jié)點(diǎn)組成一個(gè)三角形單元,這樣每一個(gè)單元的前三個(gè)維度的量就確定了,之后將靜摩擦因數(shù)與動(dòng)摩擦因數(shù)分別賦給第四和第五維度,繼而生成了單元“elements”矩陣。形象化的表示如圖所示:
具體的可以在MATLAB中編程實(shí)現(xiàn),如下:
生成的點(diǎn)陣數(shù)據(jù)如圖:
投影到XYXYXY面如下所示:
將上述求解生成的節(jié)點(diǎn)“nodes”與單元“elements”數(shù)據(jù)拷貝到ADAMS路面文件中(可以新建一個(gè).rdf格式的文件,按照ADAMS默認(rèn)的文件格式進(jìn)行編寫,主要就是“nodes”和“elements”數(shù)據(jù)的替換)。這樣一個(gè)80m×4m80m\times4m80m×4m的C級(jí)路面就構(gòu)建好了。將其導(dǎo)入到ADAMS中,就會(huì)看到由許多三角形單元組成的三維路面。
參考文獻(xiàn):
[1] 彭佳, 何杰, 叢穎, et al. 三維隨機(jī)路面通用模型建立與仿[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào),2009,40(3):1-4.
[2] 蔣榮超, 陳煥明, 劉大維, et al. 車輛三維虛擬道路減速帶重構(gòu)與實(shí)現(xiàn)[J]. 青島大學(xué)學(xué)報(bào)(工程技術(shù)版), 2012(01):36-40.
總結(jié)
以上是生活随笔為你收集整理的ADAMS三维路面重构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MC7812BTG详细参数介绍
- 下一篇: 神经网络绘图工具