我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網(wǎng)站首頁(yè) > 機(jī)械制圖 > 機(jī)械技巧

機(jī)器人結(jié)構(gòu)的優(yōu)化分析

時(shí)間:2011-05-27 08:42:07 來(lái)源:未知
摘要 機(jī)器人結(jié)構(gòu)的有限元優(yōu)化設(shè)計(jì)中,需要對(duì)設(shè)計(jì)方案多次修改、計(jì)算。除了計(jì)算工作以外,結(jié)構(gòu)的修改工作通常是由手工完成,在整個(gè)設(shè)計(jì)工作量中所占比重是比較大的。本文給出一種利用ANSYS軟件提供的APDL語(yǔ)言對(duì)設(shè)計(jì)方案進(jìn)行優(yōu)化的方法。利用這種方法,結(jié)構(gòu)的修改不再需要人工干預(yù),整個(gè)優(yōu)化過(guò)程在使用APDL語(yǔ)言編寫(xiě)的用戶優(yōu)化程序的控制下自動(dòng)進(jìn)行,能夠有效地提高優(yōu)化工作的效率和可靠性。
關(guān)鍵詞:有限元,結(jié)構(gòu)優(yōu)化
  1. 問(wèn)題的提出
  工業(yè)機(jī)器人是計(jì)算機(jī)技術(shù)出現(xiàn)后發(fā)展起來(lái)的一種新型機(jī)械結(jié)構(gòu),工作效率和機(jī)動(dòng)性比傳統(tǒng)機(jī)械高很多。隨之而來(lái)的是,機(jī)器人的結(jié)構(gòu)設(shè)計(jì)在減少質(zhì)量、提高剛度方面比傳統(tǒng)機(jī)械結(jié)構(gòu)有更高的要求。在設(shè)計(jì)工作中,結(jié)構(gòu)的最優(yōu)化顯得更為重要。
  在結(jié)構(gòu)的優(yōu)化設(shè)計(jì)中,有限元法是一個(gè)比較有效的方法。通常,建立模型和模型的修改都是手工完成的。對(duì)于結(jié)構(gòu)比較復(fù)雜或者需要修改的地方很多的情況下,優(yōu)化的時(shí)間比較長(zhǎng)。其中計(jì)算時(shí)間相對(duì)較少,建模和結(jié)構(gòu)修改所占比重較大。如何減少建模和結(jié)構(gòu)修改的的時(shí)間,是提高結(jié)構(gòu)優(yōu)化效率的關(guān)鍵。
APDL語(yǔ)言 是ANSYS軟件提供給用戶的一個(gè)依賴(lài)于ANSYS程序的交互式軟件開(kāi)發(fā)環(huán)境。APDL語(yǔ)言具有類(lèi)似一般計(jì)算機(jī)語(yǔ)言的常見(jiàn)功能 ,如類(lèi)似于常數(shù)定義、變量定義和賦值的參數(shù)定義,分支和循環(huán)控制語(yǔ)句,類(lèi)似于子程序調(diào)用的宏調(diào)用等功能。除此以外,還包含有比較強(qiáng)的數(shù)學(xué)運(yùn)算能力,如算術(shù)運(yùn)算、比較、取整和標(biāo)準(zhǔn)FORTRAN的三角函數(shù)、指數(shù)函數(shù)、雙曲函數(shù)等。利用APDL語(yǔ)言還可以讀取ANSYS程序數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算,以及建立分析模型,控制ANSYS程序的運(yùn)行過(guò)程等功能。
  一個(gè)三桿并聯(lián)的機(jī)器人結(jié)構(gòu)的原始設(shè)計(jì)方案。機(jī)器人的機(jī)座采用門(mén)式結(jié)構(gòu),三個(gè)驅(qū)動(dòng)桿的長(zhǎng)度可變,使得末端件能夠完成指定的運(yùn)動(dòng)。由于采用三個(gè)驅(qū)動(dòng)桿,上橫梁的核心部分呈等邊三角形,如圖2所示。結(jié)構(gòu)沿立柱平面無(wú)法設(shè)計(jì)成對(duì)稱(chēng)形式,橫梁在兩個(gè)立柱之間沿x方向的位置難以確定。而且,原始設(shè)計(jì)方案的有限元分析結(jié)果表明,橫梁與1驅(qū)動(dòng)桿相聯(lián)的懸伸端沿z向變形比較大,剛性比與2、3桿相聯(lián)的部分弱很多,約為其它兩個(gè)桿所在部位剛度的十分之一。這種剛度的不一致性給末端件在高工作載荷下的運(yùn)動(dòng)精度帶來(lái)一定的影響。確定上橫梁沿x方向的位置是很有必要的。
  對(duì)于上述問(wèn)題,一般的優(yōu)化策略是不斷地改變上橫梁的位置,經(jīng)多次試算,最終找到一個(gè)合適的位置。每次試算,都要根據(jù)計(jì)算結(jié)果修改模型,重新建模。手工操作迭代過(guò)程,如果迭代次數(shù)比較多,很難避免出現(xiàn)失誤,優(yōu)化失敗的幾率比較高。模型修正以后,上橫梁的壁板和筋板形狀會(huì)發(fā)生變化。由于上橫梁的內(nèi)部結(jié)構(gòu)形狀比較復(fù)雜,壁板和筋板形狀的變化對(duì)上橫梁剛度的影響難以預(yù)測(cè),試算的次數(shù)比較多,修改模型的工作量也相應(yīng)比較大。
  本文利用ANSYS程序的APDL語(yǔ)言對(duì)上述的橫梁位置優(yōu)化問(wèn)題給出了一個(gè)優(yōu)化策略。在第一次的分析模型建立起來(lái)后,利用命令記錄文件中生成的建模指令構(gòu)造用戶的優(yōu)化控制程序,后續(xù)的迭代優(yōu)化過(guò)程都由APDL語(yǔ)言編寫(xiě)的用戶控制程序完成,不再需要人工干預(yù)。對(duì)圖1所示的模型進(jìn)行修改所需的時(shí)間減少到可以忽略的程度,整個(gè)優(yōu)化過(guò)程的效率有很大提高。
  2. 分析模型的建立
  由三部分組成:兩個(gè)立柱,一個(gè)橫梁和三個(gè)驅(qū)動(dòng)桿。立柱和橫梁通過(guò)圖1所示立柱上部第一個(gè)水平筋板處的螺釘聯(lián)接。由于主要考慮橫梁的變形,驅(qū)動(dòng)桿部分可以略去,在聯(lián)接部位代之以等效力。
  橫梁部分的核心是三個(gè)與驅(qū)動(dòng)桿聯(lián)接的部位和中間的有特殊用途的孔,尺寸必須保證。其它部分則與立柱能有效聯(lián)接即可。為建模的方便,在ANSYS程序中將橫梁的核心部分做成一個(gè)元件(component)。在優(yōu)化過(guò)程中,這一部分幾何形狀保持不變,只改變它與立柱沿x軸的相對(duì)位置,即只改變聯(lián)接部分的幾何形狀。需要注意的是,聯(lián)接部分在優(yōu)化迭代過(guò)程中只改變幾何尺寸,不改變拓?fù)浣Y(jié)構(gòu),可以通過(guò)程序自動(dòng)完成。 #p#分頁(yè)標(biāo)題#e#
  橫梁與每個(gè)立柱通過(guò)六個(gè)螺栓聯(lián)接。在螺栓聯(lián)接部位,結(jié)點(diǎn)應(yīng)當(dāng)耦合。在非螺栓聯(lián)接部位,結(jié)合面不能承受拉應(yīng)力,應(yīng)設(shè)置接觸單元。模型中包含接觸單元以后,求解過(guò)程需要大量的非線性迭代計(jì)算,機(jī)時(shí)增加很多。將橫梁與立柱作為一體進(jìn)行的試算表明,立柱的外側(cè)受拉,內(nèi)側(cè)受壓??紤]到主要分析對(duì)象是上橫梁與三個(gè)驅(qū)動(dòng)桿處的聯(lián)接剛度,可以將接觸單元略去,在立柱外側(cè)建立聯(lián)接面幾何模型。橫梁與立柱的聯(lián)接處,有螺栓的部位,上下面共享一個(gè)關(guān)鍵點(diǎn),沒(méi)有螺栓的部位,上下面各自擁有一個(gè)關(guān)鍵點(diǎn)。這樣做的好處是,網(wǎng)格剖分時(shí),在公共關(guān)鍵點(diǎn)處自動(dòng)生成一個(gè)結(jié)點(diǎn),建立起立柱和橫梁之間的耦合關(guān)系。在非公共關(guān)鍵點(diǎn)處,橫梁和立柱上的結(jié)點(diǎn)則不會(huì)有這種耦合關(guān)系。在立柱的內(nèi)側(cè),立柱與橫梁在接觸面上聯(lián)成一體,所有結(jié)點(diǎn)都將是耦合的,立柱和橫梁共享這些結(jié)點(diǎn),而不僅僅是在螺栓聯(lián)接處。這樣做的好處是,既省去了接觸單元,又能反映螺栓聯(lián)接的特點(diǎn)。
  立柱底部與基礎(chǔ)的聯(lián)接處理成剛性的全約束。
  分析的主要目標(biāo)是橫梁的剛性,可以認(rèn)為上橫梁在與三個(gè)驅(qū)動(dòng)桿的聯(lián)接處承受相同的載荷。這樣可以根據(jù)計(jì)算得到的變形結(jié)果,直接評(píng)價(jià)三個(gè)聯(lián)接部位的剛度。
  結(jié)構(gòu)采用薄壁鑄件,在分析模型中采用板殼單元shell63模擬。結(jié)構(gòu)的外壁與筋板厚度不同,需要為板殼單元設(shè)置兩組不同的實(shí)常數(shù)(real constant)。
  同樣,為了建模的方便,將兩個(gè)立柱做成另一個(gè)元件。進(jìn)而將立柱核心部分建立的元件與立柱元件做成一個(gè)部件(assembly)。這樣,在修改模型的時(shí)候,可以很容易地將立柱與橫梁的聯(lián)接部分選擇出來(lái),完成修改過(guò)程。
  經(jīng)過(guò)上述的處理,可以建立類(lèi)似分析模型。由于模型和載荷的對(duì)稱(chēng)性,實(shí)際計(jì)算可以只取一半,總的單元數(shù)就只有8927個(gè),總結(jié)點(diǎn)數(shù)為4341個(gè),全部使用三角形網(wǎng)格剖分。
  3. 優(yōu)化策略
  優(yōu)化過(guò)程本質(zhì)上是一個(gè)試算-修改的迭代過(guò)程。以原始設(shè)計(jì)方案作為迭代計(jì)算的初始條件,迭代過(guò)程結(jié)束的條件是:三個(gè)驅(qū)動(dòng)桿聯(lián)接處的剛度接近相等或者迭代次數(shù)過(guò)多。對(duì)于這個(gè)具體問(wèn)題,可以預(yù)知三個(gè)聯(lián)接部位剛度相等時(shí)的橫梁位置是存在的,如果迭代不收斂,只能是移動(dòng)量不合適或者初始位置不合適。為了迭代過(guò)程能夠快速有效地收斂,采用對(duì)分搜索的變步長(zhǎng)算法,自動(dòng)修正移動(dòng)量。算法稍微復(fù)雜一些,但是對(duì)初值的要求不高,有比較好的通用性。
下面給出優(yōu)化策略的控制流程。
1. 從備份文件中讀出橫梁在初始位置時(shí)的模型數(shù)據(jù);
2. 修改橫梁的位置;
3. 求解修改后的模型;
4. 讀出與三個(gè)驅(qū)動(dòng)桿聯(lián)接部位的變形;
5. 判斷是否滿足收斂條件,不滿足,修改移動(dòng)量后返回3,滿足,則退出循環(huán);
6. 存儲(chǔ)求解結(jié)果后退出。
下面是程序的主要控制代碼及其功能的注釋。其中具體的建模指令被省略,代之以省略號(hào),為了便于同控制流程對(duì)照,加了部分必要的注釋。
/BATCH ANSYS的批處理文件標(biāo)記
RESUME,,robbak,db,,0 從備份文件robbak.db中讀入原始數(shù)據(jù)
/PREP7 進(jìn)入前處理器,
。。。 刪除橫梁與立柱的聯(lián)接部分
。。。 將橫梁核心元件移動(dòng)一個(gè)初始step
。。。 在幾何模型上施加載荷和約束
。。。 網(wǎng)格劃分
FINISH 退出前處理器
/SOLU 進(jìn)入求解器
SOLVE 求解
FINISH 退出求解器
/POST1 進(jìn)入后處理器
*GET,front,NODE,2013,U,Z 讀第一個(gè)驅(qū)動(dòng)桿聯(lián)接處的結(jié)點(diǎn)變形至front
*GET,back,NODE,1441,U,Z 讀第二個(gè)驅(qū)動(dòng)桿聯(lián)接處的結(jié)點(diǎn)變形至back
lastdif=1 上一次front與back差值的絕對(duì)值
flag=-1 優(yōu)化結(jié)果可行性的標(biāo)記
step=0.05 從初始位置到最優(yōu)位置的移動(dòng)量初值
*DO,I,1,10,1 迭代循環(huán)開(kāi)始,循環(huán)變量I,取值范圍1~10,步長(zhǎng)1
dif=abs(front-back) 本次計(jì)算結(jié)果中front和back的差的絕對(duì)值
*IF,dif,LE,1.0E-6,THEN 判斷差值dif是否滿足要求#p#分頁(yè)標(biāo)題#e#
flag=1 滿足,則標(biāo)記置1
*EXIT 退出迭代計(jì)算
*ELSEIF,dif,GE,lastdif,THEN 判斷差值dif是否變大
flag=2 差值變大,標(biāo)記置2
。。。 對(duì)分法修改step
。。。 繼續(xù)以前一次位置作起點(diǎn),以修改后的step為當(dāng)前step,開(kāi)始新一輪
迭代計(jì)算
*ELSE 差值不小于期望值,且逐漸變小,需繼續(xù)移動(dòng)上橫梁
。。。 從備份文件中讀入初始狀態(tài)數(shù)據(jù)
。。。 進(jìn)入前處理器
AGEN, ,P51X, , , ,step, , , ,1 移動(dòng)上橫梁的核心部分,移動(dòng)量step
。。。 構(gòu)造橫梁和立柱的聯(lián)接部分
。。。 施加載荷和約束
。。。 網(wǎng)格劃分
FINISH 退出前處理器
/SOLU 進(jìn)入求解器
SOLVE 求解
FINISH 退出求解器
/POST1 退出后處理器
*GET,front,NODE,2013,U,Z 給front賦值
*GET,back,NODE,1441,U,Z 給back賦值
lastdif=dif 更新lastdif
*ENDIF if-else 語(yǔ)句的結(jié)尾
*ENDDO *DO 循環(huán)語(yǔ)句的結(jié)尾
  上面這個(gè)文件比較長(zhǎng),約1000行。主要目的是為了使程序的結(jié)構(gòu)清晰。有很多代碼是復(fù)用的,如一些建模指令和后處理指令。使用時(shí),可以將這些指令構(gòu)成相應(yīng)的宏在主程序中調(diào)用,能有效地縮短主程序的長(zhǎng)度。此外,文件中多數(shù)具體的建模指令是從ANSYS程序的命令記錄文件中復(fù)制過(guò)來(lái)的,包含很多在圖形界面下才用到的指令。以ANSYS的批處理方式使用時(shí),可以將這些命令刪除,也能縮短文件長(zhǎng)度。
  在上述程序中,模型指定部位的變形是通過(guò)結(jié)點(diǎn)讀取的。在網(wǎng)格剖分中,為了確保剖分成功,并且不產(chǎn)生形狀?lèi)毫拥膯卧?,不得已使用了三角形網(wǎng)格。優(yōu)化過(guò)程的每一步迭代,模型的立柱和橫梁核心聯(lián)接部分的幾何形狀都會(huì)不同,這會(huì)使剖分出來(lái)的網(wǎng)格數(shù)量有所不同,指定位置處的結(jié)點(diǎn)編號(hào)就有可能不同。依據(jù)結(jié)點(diǎn)編號(hào)從數(shù)據(jù)庫(kù)中讀取的數(shù)據(jù)就有可能不是指定位置的數(shù)據(jù)。為此,需要首先剖分橫梁的核心部分,這樣,橫梁上的結(jié)點(diǎn)編號(hào)在每次迭代過(guò)程中都是固定的。
  迭代的最終結(jié)果是否是一個(gè)可行的結(jié)果,需要通過(guò)查看參數(shù)flag判定。只有flag=1,計(jì)算結(jié)果才是可行的,否則表示迭代過(guò)程并沒(méi)有找到最佳位置。橫梁的移動(dòng)量存儲(chǔ)在參數(shù)step中。如果計(jì)算結(jié)果是可行的,step的值就是橫梁從原始設(shè)計(jì)位置到最優(yōu)位置的移動(dòng)量??偟牡螖?shù)存放在參數(shù)I中,通過(guò)I的最終值,可以估計(jì)分析結(jié)果的可行性和初始條件是否合適。
  4. 分析結(jié)果
  優(yōu)化過(guò)程總共進(jìn)行了7次迭代,耗費(fèi)機(jī)時(shí)約2小時(shí)37分鐘,找到了最優(yōu)位置。由于機(jī)器讀入指令的過(guò)程比人工修改模型的速度快得多,修改模型的時(shí)間基本可以忽略。優(yōu)化過(guò)程所需時(shí)間取決于求解時(shí)間。與人工完成的優(yōu)化過(guò)程相比,效率有了較大提高,而且避免了復(fù)雜模型在建模過(guò)程中容易出現(xiàn)的人為失誤導(dǎo)致后續(xù)迭代計(jì)算出錯(cuò)或偏離優(yōu)化目標(biāo)等問(wèn)題。
  5. 結(jié)論
  分析結(jié)果表明,本文給出的優(yōu)化方法是有效的,達(dá)到了預(yù)期的優(yōu)化目的。該方法的優(yōu)點(diǎn)是可靠性高,優(yōu)化過(guò)程不易出錯(cuò)。其次是通用性比較好,在類(lèi)似的結(jié)構(gòu)優(yōu)化設(shè)計(jì)中,文中給出的控制代碼無(wú)需作大的改動(dòng)即可移植使用。缺點(diǎn)是在優(yōu)化過(guò)程中不能改變優(yōu)化對(duì)象的拓?fù)浣Y(jié)構(gòu)。在不改變拓?fù)浣Y(jié)構(gòu)的條件下,修改模型的工作量越大,越能體現(xiàn)出該方法的優(yōu)越性。另外,對(duì)于需要改變拓?fù)浣Y(jié)構(gòu)的優(yōu)化問(wèn)題,可以使用ANSYS程序提供的拓?fù)鋬?yōu)化功能。如果將本文的方法與之結(jié)合,可以取得更好的優(yōu)化效果。