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

您的位置:網站首頁 > 機械制圖 > 機械技巧

機器人結構的優(yōu)化分析

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