简支梁有限元分析文档格式.docx
《简支梁有限元分析文档格式.docx》由会员分享,可在线阅读,更多相关《简支梁有限元分析文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
主要上机练习有:
(1)二次插值法(2)Powell法 (3)惩罚函数
进度安排:
一、有限元上机(20学时)
第1次上机(4学时):
学习ANSYS软件,作练习1、2;
第2次上机(4学时):
学习ANSYS软件,作练习3、4;
第3次上机(4学时):
学习ANSYS软件,作练习5、6;
第4次上机(4学时):
学习ANSYS软件,作练习7;
第5次上机(4学时):
自拟题目上机。
二、优化设计上机(12学时)
优化计算程序的调试及计算算例
注:
利用业余时间撰写课程设计说明书。
指导教师(签字):
谷耀新
2011 年3月11日
教研室主任(签字)
安晓卫
2011年3月11日
一.绪论………………………………………………… 3
二.有限元设计…………………………………………4
2.1外伸梁受问题…………………………………………4
2.2力学模型………………………………………………4
2.3有限元模型…………………………………………… 5
2.4结果分析……………………………………………… 5
2.4.1有限元结果………………………………………… 5
2.4.2 材料力学分析结果…………………………………7
2.4.3结果比较与结论…………………………………… 8
三.优化设计…………………………………………… 8
3.1黄金分割法简介……………………………………… 8
3.2黄金分割方框图……………………………………… 9
3.3问题与结果…………………………………………10
3.3.1问题的解析过程………………………………… 10
3.3.2结果分析…………………………………………… 11
四.附录……………………………………………… 12
五.参考文献……………………………………………15
一、绪论
有限元法在解决圣维南扭转问题近似解时首先提出的。
有限元在弹性力学平面问题的第一个成功应用是由美国学者于1956年解决飞机结构强度时提出的。
经过几十年得发展,有限元法已经成为现代结构分析得有效方法和主要手段。
它的应用已经从弹性力学的平面问题扩展到空间问题和板壳问题。
对于有限元法,从选择基本未知量的角度来看,它可分为三种方法:
位移法,力法,混合法。
从推导方法来看,它可分为直接法,变分发,加权余数法。
但随后随着计算机的发展,有限元法如虎添翼。
国内外已有许多大型通用的有限元分析程序系统可供使用,在许多大型有限元分析软件都已配备了功能很强得前后处理程序,并已出现了将人工智能技术引入有限元分析软件,形成了比较完善得专家系统,逐步实现了有限元的智能化。
优化设计是现代设计方法的重要内容之一。
它以数学规划为理论基础以电子计算机为工具,在充分考虑多种设计约束的前提下,寻求满足预定目标的最佳设计。
优化设计理论于方法用于工程设计是在六十年代后期开始的,特别是近年来,随着有限元素法,可靠性设计,计算机辅助设计的理论与发展及与优化设计方法的综合应用使整个工程设计过程逐步向自动化集成化智能化发展,其前景使令人鼓舞的。
因而工程设计工作者必须适应这种发展变化,学习掌握和应用优化设计理论与方法。
近年来随着计算机技术的普及和计算速度的不断提高,有限元分析在工程设计和分析中得到了越来越广泛的重视,已经成为解决复杂的工程分析计算问题的有效途径,现在从汽车到航天飞机几乎所有的设计制造都已离不开有限元分析计算,其在机械制造、材料加工、航空航天、汽车、土木建筑、电子电器,国防军工,船舶, 铁道,石化,能源,科学研究等各个领域的广泛使用已使设计水平发生了质的飞跃。
本次课设研究简支梁的受力问题,最大剪力4.2KN,最大弯矩3.8KNm.
有限元分析与材料力学分析结果相一致,误差少于3%。
二、有限元设计
2.1外伸梁受力问题
外伸梁的受力情况如下图所示,C点受集中力3KN,B点受支反力FB=8KN,A点受支反力FA=7.2KN。
AD间受均布载荷q=2KN/m,D点受转矩6KN/m。
梁总长6m,长度分布如下图。
2.2力学模型
2.3有限元模型
(1)根据物理模型载荷,支撑单元划分了12个单元13个节点,一个单元表示0.5m网格图如下;
2.4结果分析
2.4.1有限元分析
1.剪力图
2.弯矩图
3.位移变形图
2.4.2材料力学分析
依照题意,列出建立方程和弯矩方程,方程中X以m为单位,F(X)以KN为单位,M(X)以KNm为单位。
在CA段和DB段内q=0.
CA段F(X)=-3KN,DB段F(X)=-3.8KN ,CA段M(X)=-3X
M图为斜直线.DB段M(X)=22.8-3.8XM图为斜直线
在AD段:
F(X)=-3KN-1/2q(X-1)+7.2KN=-X+5.2KN
M(X)=7.2(X-1)-3X-(X-1)(X-1)
依照剪力方程和弯矩方程,分段作剪力图和弯矩图,沿梁的全部长度,最大剪力为Fsmax=4.2kN, Mmax=3.8KNm
1 剪力图和弯矩图
2.4.3结果比较与结论
有限元分析与材料力学分析结果相一致。
根据以上分析得出如下结果:
根据结果,变形图符合工程规律,误差小于3%符合要求,结构强度符合设计要求.
三.优化设计
3.1.黄金分割法简介
把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。
其比值是一个无理数,取其前三位数字的近似值0.618。
由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为中外比。
这是一个十分有趣的数字,我们以0.618来近似,通过简单的计算就可以发现:
1/0.618=1.618
(1-0.618)/0.618=0.618
在搜索区间【a,b】内按每次区间等比例缩短原则和对称性原则取两点α1和α2,符合这两个原则的计算公式为:
α1=a+0.382(b-a), α2=a+0618(b-a)
3.2黄金分割法流程图
3.3问题与结果
用黄金分割法求f(x)=2X3+3X2-6X+1的最优解.设初始点ɑ0=0,初始步长
h=1,取迭代精度ε=0.01
3.3.1问题的解析过程
解:
a1=a0=0, f1=f(a1)=10
a2=a1+h=1,f2=f(a2)=0
∵f1>f2,
∴作前进运算
h=2h=2,f3=f(a1)=15
∵出现了“两大头,中间小”的情况
∴初始搜索区间为[a,b]=[0,2]
a1=a+0.382(b-a)=0.764,f1=-2.941025
a2=a+0.618(b-a)=1.236 , f2=1.9435525
∵f1<
f2
∴b=a2=1.236
a2=a1=0.764, f2=f1=-2.941025
a1=a+0.382(b-a)=0.472 , f1=-0.950570
判断迭代终止条件:
∵b-a=1.23>ε∴继续比较
∵f1<
f2
∴a=a2=0.472 ,
a1=a2=0.746 , f1=f2=-2.941025
a2=a+0.618(b-a)=0.944 f2=f(a2)=-0.307366
∵b-a=1.236-0.472=0.764>
ε
∴继续比较
省略求解步骤 得结果
a※=0.5(a+b)=0.617934
f※=f(a※)=-1.090262
3.3.2结果分析
程序运行结果与实际计算结果有些许误差,这是因为初选迭代步长不同而引起的,不可避免。
四.附录
#include<
stdio.h>
#include<
conio.h>
#include<
math.h>
#definee0.0001
#definett 1
floatfunction(floatx)
{
floaty=2*pow(x,3)+3*pow(x,2)-6*x+1;
return(y);
}
voidfinding(floata[3],floatf[3])
{
float t=tt,a1,f1,ia;
int i;
a[0]=0;
f[0]=function(a[0]);
for(i=0;
;
i++)
{ a[1]=a[0]+t;
f[1]=function(a[1]);
if(f[1]<
f[0]) break;
if(fabs(f[1]-f[0])>
=e)
{t=-t;
a[0]=a[1];
f[0]=f[1];
}
else t=t/2;
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*ff)
{
inti;
float a1[3],f1[3],a[4],f[4];
floataa;
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(i=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])<e)
{aa=(a[1]+a[2])/2;
*ff=function(aa);
break;
return(aa);
void main()
{floatxx,ff;
xx=gold(&
ff)