资源描述
沈阳理工大学课程设计
一.前言
据有关统计,在我国机械制造业中,采用有限元方法开发和设计的新产品已达到70%以上;在机械工程、车辆工程、土木工程、航空航天、材料加工工程等领域中从事工程设计与优化、材料宏微观模拟与分析的各类工作和学位论文中,约有90%以上的论文采用有限元方法作为分析工具,并且有限元方法在其中80%以上的论文中起到决定性的作用;可以看出,有限元分析已经成为教学、科研、产品设计中广泛使用的重要工具。近年来,有限元分析已从过去的只有较少数专业人员掌握的理论和方法,变为大学生、研究生、科技工作者、工程技术设计人员广泛使用的通用分析工具,一个重要的原因就是有限元分析商品化软件的普及。
ANSYS软件是融结构、流体、电场、磁场、声场分析于一体的大型通用有限元分析软件。由世界上最大的有限元分析软件公司之一的美国ANSYS开发,它能与多数CAD软件接口,实现数据的共享和交换,如Pro/Engineer, NASTRAN, Alogor, I-DEAS, AutoCAD等, 是现代产品设计中的高级CAD工具之一。软件主要包括三个部分:前处理模块,分析计算模块和后处理模块。前处理模块提供了一个强大的实体建模及网格划分工具,用户可以方便地构造有限元模型;分析计算模块包括结构分析(可进行线性分析、非线性分析和高度非线性分析)、流体动力学分析、电磁场分析、声场分析、压电分析以及多物理场的耦合分析,可模拟多种物理介质的相互作用,具有灵敏度分析及优化分析能力;后处理模块可将计算结果以彩色等值线显示、梯度显示、矢量显示、粒子流迹显示、立体切片显示、透明及半透明显示(可看到结构内部)等图形方式显示出来,也可将计算结果以图表、曲线形式显示或输出。软件提供了100种以上的单元类型,用来模拟工程中的各种结构和材料。该软件有多种不同版本,可以运行在从个人机到大型机的多种计算机设备上,如PC,SGI,HP,SUN,DEC,IBM,CRAY等。
二.问题阐述
有一简支梁结构如图所示,其中,M=5KN·m, q=2KN/m,F=3KN。对该梁进行分析,画出弯矩图和剪力图。
用材料力学计算弯矩图和剪力图如下:
剪力图:
弯矩图:
三.有限元设计说明:
将梁划分为16个单元,17个节点,用BEAM3来建立单元,进行静力学分析。
1. 创建节点
1.1 创建梁的各个节点
1.Main Menu:Preprocessor→Modeling→Create→Node→In Active CS。
2.在创建节点窗口内,在NODE后的编辑框内输入节点号1,并在X,Y,后的编辑框内输入0,0,0作为节点1的坐标值。
3. 按下该窗口内的Apply按钮。
4. 输入节点号17,并在X,Y,Z后的编辑框内输入8,0,0作为节点11的坐标值。
5. 按下OK按钮。
6. Main Menu:Preprocessor→-Modeling-Create→Node→Fill between Nds。
7. 在图形窗口内,用鼠标选择节点1和17。
8. 按下Fill between Nds窗口内的Apply按钮。
9. 按下OK按钮,完成在节点1到节点11之间节点的填充。
1.2 显示各个节点
1. Utility Menu:Plotctrls→Numberings
2. 将Node numbers项设置为On。
3. Utility Menu:Plot→Nodes
4. Utility Menu:List→Nodes
5. 对出现的窗口不做任何操作,按下OK按钮。
6. 浏览节点信息后,关闭该信息窗口。
2.定义单元类型和材料特性
2.1 定义单元类型
1. Main Menu:Preprocessor→Element Type→Add/Edit/Delete
2. 按下Element Type窗口内的Add按钮。
3. 在单元类型库中,选择左侧列表中的BEAM单元家族,及右侧列表中2D elastic 3类型。
4. 按下OK按钮完成选择。
5. elastic 3类型。
6. 按下OK按钮完成选择。
7. 按下Close按钮关闭Element Type窗口。
2.2 定义材料特性
1. Main Menu:Preprocessor→Material Props→Material Models。
2. 在材料定义窗口内选择:Structural→Linear→Elastic→Isotropic。
3. 在EX后的文本框内输入数值207e5作为弹性模量。
4. 按下OK按钮完成定义。
2.3 定义几何参数
1. Main Menu:Preprocessor→Real Constants→Add/Edit/Delete。
2. 按下Real Constants窗口内的Add按钮。
3. 按下Real Constants for Element Type窗口内的OK按钮。
4. 依次输入1,1,0.02088,0.5。
5. 按下OK按钮完成定义。
6. 按下Real Constants窗口内的Close按钮。
3.创建单元
3.1 创建单元
1. Main Menu:Preprocessor→Create→Elements→Auto-Numbered→Thru Nodes。
2. 在图形窗口内,用鼠标点选节点1和2。
3. 按下按下OK按钮完成单元1的定义。
4. Main Menu:Preprocessor→Model→Copy→Elements→Auto-Numbered。用光标选择单元1,然后点Apply。
5. 在ITIME后的编辑框内输入16(包括被复制的单元1)作为要复制的单元总数。
6. 按下按下OK按钮完成单元2到单元16的定义。
3.2 显示单元资料
1.Utility Menu:PlotCtrls→Numberings
2.在第一个下拉列表中,选择Elements numbers选项。
3.Utility Menu:Plot→Elements
4.Utility Menu:List→Elements→Nodes+Attributes
5.浏览单元信息后,关闭该窗口。
4.施加约束和载荷
4.1 节点自由度约束
1. Main Menu:Solution→Define Loads→ Apply→Structural→ Displacement→ On nodes。
2. 用鼠标在图形窗口内选择节点5。
3. 按下选择窗口内的Apply按钮。
4. 选择自由度UX和UY,并在VALUE后为其输入数值0。
5. 按下Apply按钮。
6. 用鼠标在图形窗口内选择节点17。
7. 按下选择窗口内的Apply按钮。
8. 选择自由度UY,并在VALUE后为其输入数值0。
9. 按下OK按钮。
4.2 施加载荷
4.2.1施加节点1处的集中载荷F。
1. Main Menu:Solution→Define Loads→ Apply→Structural→Force/Moment→ On nodes。
2. 用鼠标在图形窗口内选择节点1。
3. 按下选择窗口内的Apply按钮。
4. 在第一个下拉列表中选择FY,并在下面的文本框内输入其值-20(向上为Y轴正方向)。
5. 按下Apply按钮。
4.2.2施加节点3处的弯矩m。
1. Main Menu:Solution→Define Loads→ Apply→Structural→Force/Moment→ On nodes。
2. 用鼠标在图形窗口内选择节点9。
3. 按下选择窗口内的Apply按钮。
4. 在第一个下拉列表中选择MZ,并在下面的文本框内输入其值30(逆时针为正方向)(对照上面第4步)。
5. 按下OK按钮。
4.2.3施加单元3到单元10上的的分布载荷q。
1. Main Menu:Solution→Define Loads→Apply→Structural→ Pressure →On Beams。
2. 用鼠标在图形窗口内选择单元13到单元16。
3. 按下选择窗口内的Apply按钮。
4. 在LKEY后的文本框内输入数值1。
5. 在VALI和VALJ后的编辑框内分别输入20,
6. 按下OK按钮。
5.求解
5.1 定义分析类型
1. Main Menu:Solution→ Anslysis Type→ New Analysis。
2. 选中Static选项。
3. 按下OK按钮。
5.2 求解
1. Main Menu:Solution→ Solve→Current Ls。
2. 按下OK按钮关闭Solve Current Load Step窗口。
3. 按下Close按钮关闭求解结束后出现的Information窗口。
4. 浏览/STATUS Command窗口内的信息后,将其关闭。
6.后处理
6.1 显示梁变形结果
1. Main Menu:General Postproc→Plot Results→Contour Plot Nodal Solu... →选择DOF Solution下的Displacement vector sum
2. 不改变对话框内的任何项,按下OK按钮。
6.2 建立单元结果表
6.2.1创建单元表,计算节点弯矩。
1. Main Menu:General Postproc→Element Table→Define Table。
2. 按下Element Table Data窗口内的Add按钮。
3. 在Lab后的文本框内输入IMOMENT。
4. 在左侧列表中选择By sequence num项。
5. 右侧列表中选择SMICS,项。
6. 在右侧列表下的文本框内输入SMICS,6。
7. 按下Apply按钮。
8. 在Lab后的文本框内输入JMOMENT。
9. 重复上面的步骤4和5。
10.右侧列表下的文本框内输入SMICS,12。
11.按下OK按钮。
6.2.2创建单元表,计算节点剪力。
1. Main Menu:General Postproc→Element Table→Define Table。
2. 按下Element Table Data窗口内的Add按钮。
3. 在Lab后的文本框内输入ISHEAR。
4. 在左侧列表中选择By sequence num项。
5. 右侧列表中选择SMICS,项。
6. 右侧列表下的文本框内输入SMICS,2。
7. 按下Apply按钮。
8. 在Lab后的文本框内输入JSHEAR。
9. 重复上面的步骤4和5。
10.右侧列表下的文本框内输入SMICS,8。
11.按下OK按钮。
6.3 列出所有表格资料
6.3.1列出资料
1. Main Menu:General Postproc→List Results→Element Table Data。
2. 在List Element Table Data窗口内选择IMOMENT,JMOMENT,ISHEAR和JSHEAR。
3. 按下OK按钮并在浏览资料窗口内的信息后,将其关闭。
6.3.2画剪力图
1. Main Menu:General Postproc→Plot Results→Line Elem Res
2. 在第一个下拉列表中选择ISHEAR,在第二个下拉列表中选择JSHEAR。
3. 按下OK按钮。
4.
6.3.3画弯矩图
1. Main Menu:General Postproc→Plot Results→Line Elem Res
2. 在第一个下拉列表中选择IMOMENT,在第二个下拉列表中选择JMOMENT。
3. 按下OK按钮。
弯矩图及其相应数据如下(图形已经过反色处理):
剪力图及其相应数据如下(图形已经过反色处理):
7.退出程序
1. Toolbar:Quit。
2. 选择Quit-No Save!
3. 按下OK按钮。
8.结果分析:
按材料力学原理计算的结果与用Ansys软件运行出的结果进行比较,可以看出两者有一定的偏差,但是偏差不大。再将元格分成32个进行对比如下图:
两者在各个受力点处值几乎一样。
四.机械优化设计说明:
1.问题阐述:
利用黄金分割法求佛f(x)= x2-6x+9的最优解。设初始点x0=0,初始步长为1.02129,去迭代精度ε=0.4
初步计算得近似最优解为
x*=2.91811 f(x*)=0.0067
2.黄金分割法C语言程序
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define e 0.4
#define tt 1.02129
float function(float x )
{
float y= pow(x,2)-6 * x+9;
return(y);
}
void finding(float a[3],float f[3])
{float t=tt,a1,f1,ia;
a[0]=0;
f[0]=function(a[0]);
for(int 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{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;
}
float gold(float * ff)
{
float a1[3],f1[3],a[4],f[4];
float aa;
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(int 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()
{
float xx,ff;
xx=gold(&ff);
printf("\nThe Optimal Design Result Is:\n");
printf("\n\tx*=%f\n\tf*=%f",xx,ff);
getch();
}
3.运行结果:
4.结果分析
程序运行结果与实际计算结果有一定偏差,这是因为初选迭代步长不同而引起的。
五.设计心得
通过本次课程设计,使我了解到熟练掌握各种工程软件的重要性,通过运用ANSYS的内部接口,不仅简化了运算过程,节省了设计时间,也使结果更加精确,由此可见可以综合运用各种软件是很重要的,在以后的学习生活中我会不断的钻研创新。同时感谢安老师在这一学期给了我巨大的帮助,使我获益非浅。
六.参考文献
[1] ANSYS有限元分析实用教程-李黎明编. 北京:清华大学出版社,2005
[2] APDL参数化有限元分析技术及其应用实例. 北京:中国水利水电出版社,2004
[3] 机械优化设计基础/高健编.-北京:科学出版社,2000.1
[4] 材料力学典型题解分析及自测试题/苟文选主编.-西安:西北工业大学出版社,2000.11
18
展开阅读全文