依照建立方程和弯矩方程,分段做剪力图和弯矩图:
图2-1剪力图
图2-2弯矩图
3、模型的简化
1、梁的参数设定:
长度l=8m;
宽度b=2m;
厚度h=0.5m
2.材料参数
材料特性应理想条件,即:
满足完全弹性假定,连续性假定,均匀性假定,各向同性假定的理想弹性体。
所以,选择弹性模量为207e5。
它的弹性模量EI=2.07Gpa,泊松比选择u=0.25。
3.单元选择:
由于梁只受均布载荷和弯矩,所以我们择2维的单元。
BEAM3单元,运用于2维问题,具有拉,压,弯特性,在每个节点上有3个自由度x,y方向位移以及绕z轴的旋转。
选择BEAM单
元家族中的2Delastic3类型。
即为二维梁单元。
根据梁的几何参数,所以参数定义为:
AREA=1,Izz=0.020833,HEIGHT=0.5
4、梁的边界条件
在节点A处梁受X,Y两个方向的约束;节点B受只受Y方向的约束。
5、梁所受的载荷
CD之间作用着均布载荷q=3kN/m,在节点D处作用着集中力偶Me=3kN·m,方向为顺时针方向,所以为负值。
4.ANSYS软件应用说明
由以上分析可知,在x=2m处,有一个X和Y方向的约束,在0到6m的梁上作用着大小为3KN/m均布载荷,而x=6m处还作用着一个力偶Me=3kN·m.x=8m处有一个固定端,只限制Y方向上位移。
集中力载荷的作用点一般分布在载荷强度的突变点,分布载荷与自由边界的分界点,支承点等都应该取为节点。
所以将X=0,X=2,X=6,X=8设置为节点,节点均布,将梁划分为16个单元,17个节点。
4求解过程
1创建节点
Mainmenu:
preprocessor→modeling→create→node→InActiveCS。
在编辑框内输入节点号1,并在X,Y,Y后的编辑框内输入0,0,0作为节点1的坐标值。
按下Apply按钮,输入节点号17,并在X,Y,Y后的编辑框内输入8,0,0作为接点17的坐标值。
Mainmenu:
preprocessor→modeling→create→node→FillbetweenNds。
4在FillbetweenNds功能下完成节点1到节点17之间节点的填充
2.显示各个节点
UtilityMenu:
Numberings,将Nodenumbers设为ON,UtilityMenu:
Polt→nodes,UtilityMenu:
List→nodes。
按下OK,关闭窗口。
2定义单元类型和材料特性
1定义单元类型
1.Mainmenu:
ElementType→Add/Edit/Delete,按下add按钮,选择左侧列表中的BEAM单元家族,及右侧列表中2Delastic3类型。
2定义材料特性
1.选择Mainmenu:
preprocessor→MaterialProps→MaterialModels。
2.在材料定义窗口内选择:
Structural→Linear→Elastic→Isotropic在EX后的文本框内输入数值207e5作为弹性模量。
3定义几何参数
1.根据模型的几何参数,输入面积为1,高度为0.5
所以在对话框内依次输入1,1,0.02088,0.5。
安OK完成定义。
3创建单元
1创建单元
Mainmenu:
preprocessor→modeling→create→Elements→Autonumbered→ThruNodes选节点1和2。
按下OK按钮完成单元1的定义。
Mainmenu:
preprocessor→copy→Elements→Nodes+Attributes.在ITIME后输入16作为复制单元数,按下OK键完成2到16单元的创建。
2显示单元资料
UtilityMenu:
plotctrls→Numberings。
在第一个下拉表中选择Elementsnumbers。
UtilityMenu:
plot→Elements
UtilityMenu:
List→Elements→Nodes+Attributes。
4施加约束和载荷
1节点自由度约束
1Mainmenu:
Solution→Defineloads→Apply→Structural→Displacement→OnNodes选择节点5。
按下Apply按钮。
选择自由度UX和UY,并在VALUE后为其输入数值0。
按下Apply按钮选择节点17,选择自由度UY,并在VALUE后为其输入数值0。
2施加载荷
1Mainmenu:
Solution→Defineloads→Apply→Structural→Force/Moment→OnNodes。
选择节点13,按下Apply按钮,在第一个下拉列表中选择MZ,并在下面的文本框内输入其值-3(逆时针为正方向)。
Mainmenu:
Solution→Defineloads→Apply→Structural→Pressure→OnBeams。
选择单元1到单元12,按下Apply按钮。
在LKEY后的文本框内输入数值1;在VALI和VALJ后的编辑框内分别输入3,
5求解
1定义分析类型
Mainmenu:
Solution→AnalysisType→NewAnalysis.
选中Static类型,按下OK.
2求解
Mainmenu:
Solution→Solve→CurrentLS.
按下OK
6后处理
1显示梁变形结果
Mainmenu:
GeneralPostproc→PlotResults→DeformedShape.
按下OK.
2建立元素结果表
1创建单元表,计算节点弯矩。
Mainmenu:
GeneralPostproc→ElementTable→DefinedTable.
按下add按钮,在Lab后输入IMOMENT,左侧列表中选择Bysequencenum,项。
右侧列表选择SMICS,6,按下Apply。
在Lab后输入JMOMENT,左侧列表中选择Bysequencenum,项。
右侧列表选择SMICS,12。
OK.
2创建单元表,计算节点剪力。
Mainmenu:
GeneralPostproc→ElementTable→DefinedTable.
按下add按钮,在Lab后输入ISHEAR,左侧列表中选择Bysequencenum,项。
右侧列表选择SMICS,2,按下Apply。
在Lab后输入JSHEAR,左侧列表中选择Bysequencenum,项。
右侧列表选择SMICS,8。
OK.
列出资料
Mainmenu:
GeneralPostproc→listresults→ElementTabledata.
选择IMOMENT,JMOMENT,ISHEAR,JSHEAR.按OK。
3画剪力图
Mainmenu:
GeneralPostproc→PlotResults→LineElemRas.
在第一个下拉列表中选ISHEAR,在第二个下拉列表中选JSHEAR.安OK键。
剪力图
.
4画弯矩图(图7-4)
Mainmenu:
GeneralPostproc→PlotResults→LineElemRas.
在第一个下拉列表中选IMOMENT,在第二个下拉列表中选JMOMENT,按OK键。
弯矩图
五结果分析
用解析法的解出的结果是:
最大弯矩Mmax=7kN·m
最小弯矩Mmin=-6kN·m
最大剪力Fmax=8.5kN
最小剪力Fmin=0kN
用ANSYS的求解结果:
最大弯矩Mmax=7kN·m
最小弯矩Mmin=0kN·m
最大剪力Fmax=8.5kN
最小剪力Fmin=0kN
所以梁的最大、最小应力分别为:
剪力Fmax=8.5kN(A点方向:
竖直向上)、
Fmin=0kN(距C点4.83m);
弯矩Mmax=7kN·m(D点方向:
逆时针)
Mmin=0kN·m(距C点4.83m)
梁的弯矩在有集中力偶的地方会发生跳变,而剪力是在有集中力的地方会有跳变。
两种方法的求解结果一样,证明在运用正确的方法,选用正确的
单元与节点进行有限元的分析,能得到与实际相符的结果,所以在工程实际中将实际问题转化为物理模型,再转化成数学模型,用有限元求解,是一种既科学有可行的办法,能得到精确解。
三机械优化设计说明
1.问题阐述:
用黄金分割法求函数f(x)=a²-7a+10的最优解。
设初始点a1=0,初始步长h=1,取迭代精度ε=0.35。
(现代机械设计方法/倪洪启谷耀新主编)
2.解析法求解:
首先用进退法确定搜索区间:
a1=a0=0,f1=f(a1)=10a2=a1+h=1,f2=f(a2)=4
比较f1和f2,因为f1>f2,作前进运算:
a3=a2+h,f3=f(a3)=0
比较f2和f3,因为f2>f3,再作前进运算:
h=2h=2,a1=a2=1,f1=f2=4
a2=a3=4,f2=f3=0a3=a2+h=4,f3=f(a3)=-2
比较f2和f3,因为f2>f3,再做前进运算:
h=2h=4,a1=a2=2,f1=f2=0
a2=a3=4,f2=f3=-2
a3=a2+h=8,f3=f(a3)=18
此时,a1,a2,a3三点的函数值出现了“两头大,中间小“的情况,故初始搜索区间[a,b]=[2,8].下面按黄金分割法框图进行优化。
在初始区间[a,b]=[2,8]中取两个计算点并计算其函数值
a1=a+0.382(b-a)=4.292,f1=f(a1)=-1.622736
a2=a+0.618(b-a)=5.708,f2=f(fa2)=2.62524
比较函数值,缩短区间。
因有f1b=a2=5.708,
a2=a1=4.292,f2=f1=-1.622736
a1=a+0.382(b-a)=3.416456,f1=f(fa1)=-2.243020
判断迭代终止条件:
b-a=5.708-2=3.708>ε
不满足迭代终止条件,比较函数值f1,f2,继续缩短区间。
经过6次迭代a=3.28632b=3.597050
a1=3.405023a2=3.416456
f1=-2.240980f2=-2.243020
b-a=0.310722
满足了给定精度,迭代即可终止,近似最优解为
a1*=0.5(b+a)=3.441689,a2*=f(a*)=-2.2466
以上为解析法求解的结果
3算法流程图
用C语言编程,其算法流程图如下(即为黄金分割法的顺序流程图
4.黄金分割法C语言程序
#include
#include
#include
#definee0.35
#defineb1
floatfunction(floatx)
{
floaty=pow(x,2)-7*x+10;
return(y);
}
voidfinding(floata[3],floatf[3])
{floatt=b,a1,f1,ia;
a[0]=0;
f[0]=function(a[0]);
for(inti=0;;i++)
{a[1]=a[0]+t;f[1]=function(a[1]);
if(f[1]if(fabs(f[1]-f[0])>=e)
{t=-t;a[0]=a[1];f[0]=f[1];}
else{if(ia==1)return;
t=t/2;ia=1;}
}
for(i=0;;i++)
{a[2]=a[1]+t;f[2]=function(a[2]);
if(f[2]>f[1])break;
t=2*t;
a[0]=a[1];f[0]=f[1];
a[1]=a[2];f[1]=f[2];
}
if(a[0]>a[2])
{a1=a[0];f1=f[0];
a[0]=a[2];f[0]=f[2];
a[2]=a1;f[2]=f1;
}
return;
}
floatgold(float*e)
{
floata1[3],f1[3],a[4],f[4];
floatc;
finding(a1,f1);
a[0]=a1[0];f[0]=f1[0];
a[3]=a1[2];f[3]=f1[2];
a[1]=a[0]+0.382*(a[3]-a[0]);a[2]=a[0]+0.618*(a[3]-a[0]);
f[1]=function(a[1]);f[2]=function(a[2]);
for(inti=0;;i++)
{if(f[1]>=f[2])
{a[0]=a[1];f[0]=f[1];
a[1]=a[2];f[1]=f[2];
a[2]=a[0]+0.618*(a[3]-a[0]);f[2]=function(a[2]);}
else{a[3]=a[2];f[3]=f[2];
a[2]=a[1];f[2]=f[1];
a[1]=a[0]+0.382*(a[3]-a[0]);f[1]=function(a[1]);
}
if((a[3]-a[0]){c=(a[1]+a[2])/2;*e=function(c);
break;}
}
return(c);
}
voidmain()
{
floatd,e;
d=gold(&e);
printf("\nTheOptimalDesignResultIs:
\n");
printf("\n\ta1*=%f\n\ta2*=%f",d,e);
getch();}
程序运行后的结果图:
5.结果分析
C语言运行后的实际结果与解析法算的理论结果有一定差距,是由于迭代步长与迭代精度所决定的。
所以,可以看出,黄金分割法对步长与迭代精度有非常严格的要求,才能接近准确值。
且黄金分割法迭代次数较多,计算效率低,适用于低维优化的一维搜索。
四.设计心得
通过本次课程设计,我们不仅加深了对《现代机械设计方法》这门课程的基本知识的了解,更加了解的了有限元法在实际问题中的应用,应用ANSYS软件进行有限元分析,能够精确的观察出模型各个微元部分所收的应力或者形变等等。
使我们意识到了有限元分析在现代机械设计中的强大功能与作用。
通过对数学模型的实际优化,了解了优化方法在实际问题中的应用,也了解了各种方法的有点与缺点,对以后的学习工作有很大帮助,使我们了解到理论与实际联系的重要性,增加了我们的学习兴趣,这次课程设计使我受益匪浅。
五.参考文献
[1]现代机械设计方法/倪洪启,古耀新主编。
﹣北京:
化学工业出版社,2008..2
[2]材料力学Ⅰ/刘鸿文主编.-4版.-北京:
高等教育出版社,2004.1(2008重印)
[3]C程序设计/谭浩强著.-3版:
北京:
清华大学出版社,2005(2007重印)