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