有限元三杆桁架的优化设计.docx
《有限元三杆桁架的优化设计.docx》由会员分享,可在线阅读,更多相关《有限元三杆桁架的优化设计.docx(31页珍藏版)》请在冰豆网上搜索。
有限元三杆桁架的优化设计
有限元作业
作业题目:
三杆桁架的优化设计
学生姓名:
苏宏斌
学号:
200900403064
专业:
数控技术
班级:
机自Y094
指导老师:
王虎奇
三杆桁架的优化设计
题目描述:
:
下图所示为一个有3根杆组成的桁架,承受纵向和横向载荷,杆件的横截面面积和基本尺寸B在指定范围内变化,要求桁架的每根杆件承受的最大应力小于(800+学号最后两位数)MPa,试对该结构进行优化设计,使得桁架重量最少。
弹性模量E=220GPa;泊松比:
0.3;密度ρ=7800kg/m3
材料最大许用应力:
σ=864MPa
横截面面积变化范围:
0.01~10cm2(初始值为10)
基本尺寸B变化范围:
1~2m(初始值为2)
前处理:
(1)定义工作文件名:
utilitymenu-file-changejobname,在弹出的changejobname对话框中输入文件名为:
suhongbin单击ok按钮。
(2)定义工作标题:
utilitymenu-file-changetile,在弹出的changetile对话框中输入suhongbin,单击ok按钮。
(3)定义参数的初始值:
utilitymenu-parameters-scalarparameters命令,弹出对话框,在selection下的文本框中输入B=2,按下enter键;A1=0.001,按下enter键;A2=0.001,按下enter键;A3=0.001,单击Close按钮。
参数将在菜单中显示。
(4)设置材料属性:
mainmenu-preprocessor-materialprops-materialmodel命令,设置EX=2.2e11,PRXY=0.3,DENS=7800。
(5)定义单元类型:
mainmenu-preprocessor-elementtype-add/edit/delete命令,弹出elementtype对话框。
单击add按钮,弹出libraryofelementtype对话框,在左边列中选择structurallink,在右边列中选择2Dspar1,单击ok。
(6)定义实常数:
mainmenu-preprocessor-realconstant命令,弹出realconstants对话框。
单击add按钮,又单击ok按钮,弹出realconstantsetnumber1,forlink1对话框。
在realconstantsetno后面的文本框中输入1,在cross-sectionarea后面的文本框中输入A1,单击apply按钮,在弹出同样对话框的同样位置分别输入2,A2,单击apply按钮,在弹出同样对话框的同样位置分别输入3,A3单击ok按钮,单击close按钮,完成实常数的设置。
(self:
此步最好按写的步骤做,不要用0.001替代A1,即使A1=0.001,因为A1也许在后面是变量,就不是0.001了)
(7)生成有限元节点:
mainmenu-preprocessor-moding-create-nodes-inactivecs命令,弹出的createnodesinactivecoordinatesystem对话框,在nodenumber后面的文本中输入1,其坐标值为:
-B,0,0,单击apply按钮,在nodenumber后面的文本中输入2,其坐标值为:
0,0,0,单击apply按钮,在nodenumber后面的文本中输入3,其坐标值为:
B,0,0,单击apply按钮,在nodenumber后面的文本中输入4,其坐标值为:
0,-2,0,单击ok按钮.
(8)关闭坐标符号显示:
utilitymenu-plotctrls-windowoptions,弹出一个对话框,在locationoftriad后面的下拉式选择栏中选择noshown,单击ok。
(9)打开节点编号显示:
utilitymenu-plotctrls-numbering命令,弹出plotnumberingcontrols对话框。
选择nodenumber复选框,单击按ok钮。
(10)生成第一个单元:
mainmenu-preprocessor-moding-create-elements-autonumbered-thrunodes命令,弹出一个拾取框,拾取编号为1和4(按照该顺序)的节点,单击ok按钮。
(11)改变第二个单元属性:
mainmenu-preprocessor-moding-create-elements-elemattributes命令,弹出elementattributes对话框。
在realconstantsetnumber下拉列表中选择2,单击ok按钮。
(12)生成第二个单元:
mainmenu-preprocessor-moding-create-elements-autonumbered-thrunodes命令,弹出一个拾取框,拾取编号为2和4(按照该顺序)的节点,单击ok按钮。
(13)改变第二个单元属性:
mainmenu-preprocessor-moding-create-elements-elemattributes命令,弹出elementattributes对话框。
在realconstantsetnumber下拉列表中选择3,单击ok按钮。
(14)生成第二个单元:
mainmenu-preprocessor-moding-create-elements-autonumbered-thrunodes命令,弹出一个拾取框,拾取编号为3和4(按照该顺序)的节点,单击ok按钮。
求解:
(1)施加边界条件:
mainmenu-solution-loadsapply-structural-displacement-onnodes命令,给编号为1,2,3的节点进行全约束。
(2)施加集中载荷:
mainmenu-solution-loadsapply-structuralforce/moment-onnodes命令,给编号为4的节点施加Fx方向-20000,Fy方向-20000的力。
(3)保存数据:
单击工具栏中的save_db按钮。
(4)求解运算:
mainmenu-solution-solve-currentls命令。
(5)保存优化结果到文件:
utilitymenu-file-saveas,在弹出的对话框中输入文件名为truss_resu,单击ok按钮。
优化设置:
(1)定义单元表:
mainmenu-generalpostproc-elementtable-definetable命令,弹出elementtabledate对话框,单击add按钮,弹出defineadditionalelementtableitems对话框。
在userlabelforitem后面的文本框中输入EVOLUME。
又在item,compresultsdateitem的左栏中选择geometry,在右栏中选择elemvolumevolu.单击ok按钮,单击close按钮。
(2)计算单元体积的总和:
mainmenu-generalpostproc-elementtable-sumofeachitem命令,弹出tabularsumofeachelementtableitem对话框,单击ok按钮,弹出一个信息窗口,在窗口中显示体积总和为76.5685。
选择该窗口菜单栏上的file-close,关闭该窗口。
(3)取出体积的值:
utilitymenu-parameters-getscalardate命令,弹出getscalardata对话框。
在typeofdatatoberetrived的左栏中选择resultsdata,在右栏中选择elemtablesums,单击ok按钮,弹出getelementtablesumresults对话框,在nameofparametertobedefined后面的文本中输入VTOT,单击ok按钮关闭该对话框。
(4)计算初始重量:
utilitymenu-parameters-scalarparameters命令,弹出scalarparameters对话框,在selection下面的文本中输入DENS=7800,并按下enter键,又在selection下面的文本中输入WT=DENS*VTOT,并按下enter键,总的体积将计算并在该对话框中显示,总的重量应为59.7234631.单击close按钮关闭该对话框。
(5)设置单元表:
mainmenu-generalpostproc-elementtable-definetable命令,弹出elementtabledata对话框,单击add按钮,弹出defineadditionalelementtableitems对话框,在userlableforitem后面的文本框中输入SIGMA,又在item,compresultsdataitem的左栏中选择bysequencenum,在右栏中选择LS,在其下面出现的LS,后面的文本框中输入1(表示序列号为1),单击ok按钮,又单击elementtabledata对话框的close按钮,关闭该对话框。
(6)得到第一杆的轴向应力:
utilitymenu-parameters-getscalardata命令,弹出getscalardata对话框,在thetypeofdatatoberetrived的左栏中选中resultsdata,在右栏中选择elemtabledata,单击ok按钮,弹出getelementtabledata对话框,在nameofparametertobedefined后面的文本中输入sig1,在elementnumbern后面的文本中输入1,在elemtabledatatoberetrived后面的下拉列表中选取SIGMA,单击apply按钮。
(7)得到第二杆的轴向应力:
又弹出getscalardata对话框,在thetypeofdatatoberetrived的左栏中选中resultsdata,在右栏中选择elemtabledata,单击ok按钮,弹出getelementtabledata对话框,在nameofparametertobedefined后面的文本中输入sig2,在elementnumbern后面的文本中输入2,在elemtabledatatoberetrived后面的下拉列表中选取SIGMA,单击apply按钮。
(8)得到第三杆的轴向应力:
又弹出getscalardata对话框,在thetypeofdatatoberetrived的左栏中选中resultsdata,在右栏中选择elemtabledata,单击ok按钮,弹出getelementtabledata对话框,在nameofparametertobedefined后面的文本中输入sig3,在elementnumbern后面的文本中输入3,在elemtabledatatoberetrived后面的下拉列表中选取SIGMA,单击ok按钮。
(9)计算轴向应力的绝对值:
utilitymenu-parameters-scalarparameter命令,弹出scalarparameters对话框,在selection下面的文本框中输入以下信息:
sig1=abs(sig1),按下enter键确认;sig2=abs(sig2),按下enter键确认;sig3=abs(sig3),单击ok按钮,单击close按钮关闭该对话框。
(10)显示当前设计:
utilitymenu-plotctrls-style-sizeandshape命令,弹出sizeandshape对话框,单击displayofelementshapesbasedonrealconstantdescription后面的复选框,使其为on。
在realconstantmultiplier后面的文本框中输入2,单击ok按钮。
(11)改变视图方向:
utilitymenu-plotctrls-pan,zoom,rotate,打开pan-zoom-rotate工具栏。
单击LSO按钮,utilitymenu-plot-elements命令。
(12)生成优化分析文件:
utilitymenu-file-writedblogfile命令,弹出writedatabaselog对话框。
在writedatabaselogto下面的文本中输入文件名Truss_opt.lgw到路径名中,单击ok按钮。
(13)指定分析文件:
mainmenu-designopt-analysisfile-assign命令,弹出assignanalysisfile对话框。
在filename列表栏中指定Truss_opt.lgw,单击ok按钮。
(14)定义优化设计变量:
mainmenu-designopt-designvariable命令,弹出designvariables对话框。
单击add按钮,弹出defineadesignvariable对话框,在parametername的列表中选择B;在minimumvalue后面的文本中输入1,在maximumvalue后面的文本中输入2,单击apply按钮,重复上述操作,依次输入A1,0.01e-4,10e-4;A2,0.01e-4,10e-4;A3,0.01e-4,10e-4,单击ok按钮,单击close按钮关闭designvariables对话框。
(15)定义优化状态变量:
mainmenu-designopt-statevariables命令,弹出statevariables对话框。
单击add按钮,弹出designastatevariable对话框。
在parametersname的列表中选择sig1,在upperlimit后面的文本中框中输入864e6,单击apply按钮,重复上述操作过程,选择sig2,输入864e6;选择sig3,输入864e6,最后单击ok按钮,又单击close按钮关闭statevariable对话框。
(16)存储优化设计库:
mainmenu-designopt-optdatabase-save命令,弹出saveoptimizationdata对话框。
在filename下的文本中输入Truss-var.opt,单击ok按钮。
(17)设置重量目标函数:
mainmenu-designopt-objective命令,弹出defineobjectivefunction对话框,在parametername的列表中选择WT,在convergencetolerance后面的文本框中输入1,单击ok按钮。
(18)指定一阶优化方法:
mainmenu-designopt-method/tool命令,弹出specifyoptimizationmethod对话框,选择first-orderradio,单击ok按钮,弹出controlsforfirst-orderoptimization对话框,在maximumiterations后面的文本框中输入15,单击ok按钮。
(19)保存优化数据:
单击工具条上的Save_DB。
(20)运行优化:
mainmenu-designopt-run命令,弹出beginexecutionofrun对话框,查看分析信息后,单击ok按钮开始优化运算。
当系统出现executionsummary对话框时,表明优化过程已经结束,单击ok按钮和close按钮。
(21)保存优化结果到文件:
utilitymenu-file-saveas,在弹出的对话框中输入文件名为Truss_opt_resu.dlb,单击ok按钮。
查看优化结果
(1)列出最佳设计序列:
mainmenu-designopt-designsets-list命令,弹出listdesignsets对话框,在单选按钮栏中单击选中BESTSet,单击ok按钮,弹出oplistcommand窗口,最佳序列的结果即每个设计变量、状态变量和目标函数的值都在此窗口中。
(2)列出所有序列的结果:
mainmenu-designopt-designsets-list命令,弹出对话框,在单选按钮栏中单击选中ALLSet,单击ok按钮,弹出信息窗口,所有迭代序列的结果即每个设计变量、状态变量和目标函数的值都在此窗口中,菜单栏上的file-close即可关闭该窗口.
(3)设置坐标轴标题:
utilitymenu-plotctrls-style-graphs-modifyaxes命令,弹出graphcontrols对话框。
在x-axislable后面的文本中输入iterationnumber,在y-axislable后面的文本中输入StructureWeight,单击ok按钮。
(4)显示重量的变化规律:
mainmenu-designopt-graphs/tables命令,弹出graph/listtableofdesignsetparameters对话框,在y-variableparams列表栏中选择WT,单击ok按钮。
(5)设置坐标轴标题:
utilitymenu-plotctrls-style-graphs-modifyaxes命令,弹出graphcontrols对话框。
在y-axislable后面的文本中输入BaseDimension,单击ok按钮。
(6)显示基本尺寸的变化规律:
mainmenu-designopt-graphs/tables命令,弹出graph/listtablesofdesignsetparameters对话框,在y-variableparams的列表中选择B,单击ok按钮。
(7)设置坐标轴标题:
utilitymenu-plotctrls-style-graphs-modifyaxes命令,弹出graphcontrols对话框。
在y-axislable后面的文本中输入Cross-SectionalArea,单击ok按钮。
(8)显示杆截面的变化规律:
mainmenu-designopt-graphs/tables命令,弹出graph/listtablesofdesignsetparameters对话框,在y-variableparams的列表中选择A1,A2,A3,单击ok按钮。
(9)设置坐标轴标题:
utilitymenu-plotctrls-style-graphs-modifyaxes命令,弹出graphcontrols对话框。
在y-axislable后面的文本中输入MaximumStress,单击ok按钮。
(10)显示应力的变化规律:
mainmenu-designopt-graphs/tables命令,弹出graph/listtablesofdesignsetparameters对话框,在y-variableparams的列表中选择sig1,sig2,sig3,单击ok按钮。
命令流操作方式:
/BATCH
/COM,ANSYSRELEASE12.0.1UP2009041521:
10:
1510/23/2011
/TITLE,suhongbin
*SET,B,2
*SET,A1,0.001
*SET,A2,0.001
*SET,A3,0.001
/PREP7
MPTEMP,,,,,,,,
MPTEMP,1,0
MPDATA,EX,1,,2.2e11
MPDATA,PRXY,1,,0.3
MPTEMP,,,,,,,,
MPTEMP,1,0
MPDATA,DENS,1,,7800
ET,1,LINK1
R,1,A1,,
R,2,A2,,
R,3,A3,,
N,1,-B,0,0,,,,
N,2,0,0,0,,,,
N,3,B,0,0,,,,
N,4,0,-2,0,,,,
/PLOPTS,INFO,3
/PLOPTS,LEG1,1
/PLOPTS,LEG2,1
/PLOPTS,LEG3,1
/PLOPTS,FRAME,1
/PLOPTS,TITLE,1
/PLOPTS,MINM,1
/PLOPTS,FILE,0
/PLOPTS,LOGO,1
/PLOPTS,WINS,1
/PLOPTS,WP,0
/PLOPTS,DATE,2
/TRIAD,OFF
/REPLOT
/PNUM,KP,0
/PNUM,LINE,0
/PNUM,AREA,0
/PNUM,VOLU,0
/PNUM,NODE,1
/PNUM,TABN,0
/PNUM,SVAL,0
/NUMBER,0
/PNUM,ELEM,0
/REPLOT
FLST,2,2,1
FITEM,2,1
FITEM,2,4
E,P51X
TYPE,1
MAT,1
REAL,2
ESYS,0
SECNUM,
TSHAP,LINE
FLST,2,2,1
FITEM,2,2
FITEM,2,4
E,P51X
TYPE,1
MAT,1
REAL,3
ESYS,0
SECNUM,
TSHAP,LINE
FLST,2,2,1
FITEM,2,3
FITEM,2,4
E,P51X
FINISH
/SOL
FLST,2,3,1,ORDE,2
FITEM,2,1
FITEM,2,-3
/GO
D,P51X,,,,,,ALL,,,,,
FLST,2,1,1,ORDE,1
FITEM,2,4
/GO
F,P51X,FX,2e4
FLST,2,1,1,ORDE,1
FITEM,2,4
/GO
F,P51X,FY,-2e4
SAVE
/STATUS,SOLU
SOLVE
SAVE,'truss_resu','db','D:
\SHB\'
FINISH
/POST1
AVPRIN,0,,
ETABLE,EVOLUME,VOLU,
SSUM
*GET,VTOT,SSUM,,ITEM,EVOLUME
*SET,DENS,7800
*SET,WT,DENS*VTOT
AVPRIN,0,,
ETABLE,SIGMA,LS,1
*GET,sig1,ELEM,1,ETAB,SIGMA
*GET,sig2,ELEM,2,ETAB,