“任意复合梁结构截面性质可视化计算器”结题报告_第1页
“任意复合梁结构截面性质可视化计算器”结题报告_第2页
“任意复合梁结构截面性质可视化计算器”结题报告_第3页
“任意复合梁结构截面性质可视化计算器”结题报告_第4页
“任意复合梁结构截面性质可视化计算器”结题报告_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、任意复合梁结构截面性质可视化计算器大学生创新训练计划题 目:任意复合梁结构截面性质可视化计算器学 院: 建筑与土木工程学院 系: 土木工程系 专 业: 土木工程 成 员:洪娇莉、陈前敏、黄文锦、刘文昌、乔浩帅年 级: 2012级 指导教师: 王东东 职 称: 教授 2015 年 1 月 项目计划书项目名称任意复合梁结构截面性质可视化计算器所属学科土木工程申请金额3000 元起止年月2014-08-01至2015-05-31主持人姓名洪娇莉性别女民族汉出生年月1994-11-30学号25320122201583联系电导教师王东东联系电持人曾经

2、参与科研的情况无指导教师承担科研课题情况主持国家优秀青年科学基金、国家自然科学基金面上项目、教育 部新世纪优秀人才项目等研究课题多项。指导教师对本项目的支持情况指导研究方案制定和程序实现。项目组主要成员姓 名学号专业班级所在学院项目中的分工洪娇莉25320122201583土木工程一班建筑与土木工程学院主持人陈前敏25320122201575土木工程一班建筑与土木工程学院数值分析黄文锦25320122201585土木工程一班建筑与土木工程学院宣传推广刘文昌25320122201600土木工程一班建筑与土木工程学院程序编辑乔浩帅25320122201608土木工程二班建筑与土木工程学院软件编辑摘

3、要: 通过力学分析、数值计算和Matlab程序编写对任意复合梁结构截面性质进行计算,应用于形式简单但是计算过程繁杂的复合材料结构的截面,主要以本科生阶段的材料力学的学习为基础,先以各种简单材料的截面的惯性矩为研究切入点,经过力学分析,数值计算等一系列前期准备之后,通过Matlab进行程序编写,使用GUI界面,使得到的结果直观可视化的呈现出来。本项目可使任意复合梁结构截面性质计算从复杂的计算过程中脱离出来,只需要将所求的任意形状的截面在可视化的界面中按提示输入或导入相应的坐标,即可获得所需的截面的性质。相比传统的计算,更为简便和直观,输出结果也更加丰富。关键词:任意截面 惯性矩 Matlab程序

4、 可视化界面I目录一、 引言- 2 -二、 研究过程- 2 -(一) 项目实施过程- 2 -(二) 算法的研究探索过程- 3 -(三) Matlab相关操作学习及研究过程- 17 -三、 研究成果- 18 -四、 经费预算- 22 -附录- 23 -任意复合梁结构截面性质(惯性矩部分)可视化计算器1、 引言 截面惯性矩,截面各微元面积与各微元至截面上某一指定轴线距离二次方乘积的积分。截面惯性矩是衡量截面抗弯能力的一个几何参数。任意截面图形内取微面积dA与其搭配z轴的距离y的平方的乘积y2dA定义为微面积对z轴的惯性矩,在整个图形范围内的积分则称为此截面对z轴的惯性矩Iz。工程结构中,弯曲变形是

5、最常见的结构变形形式。在对其进行强度、刚度计算时,需要用到几何量惯性矩。由于它相对于其它几何量而言,具有内容复杂,变化大,掌握起来难、烦等特点。使用计算器可使任意复合梁结构截面惯性矩计算从复杂的计算过程中脱离出来,只需要将所求的任意形状的截面在可视化的界面中按提示输入或导入相应的坐标,即可获得所需的截面的性质。相比传统的计算,更为简便和直观,输出结果也更加丰富。2、 研究过程(1) 项目实施过程2014年9月至12月前期计算准备1、 复习面积矩、惯性矩、极惯性矩的求法。2、 初步熟悉并学习matlab编程方法。3、 小组分工对各种一般工程构件横截面的惯性矩、极惯性矩进行计算。4、 12月15日

6、进行小组讨论,对该阶段成果进行汇总。2014年12月至2015年1月基本截面图形程序编写1、12月18日与指导老师交流,着手一般四边形形心主惯性矩程序运算,并学习matlab交互界面制作。2、 分工对一般四边形形心主惯性矩进行计算,寻找最佳运算方法。3、 12月27日小组讨论对运算方法进行整合。4、 着手编程,初步得出一般四边形形心主惯性矩运算的程序。5、 1月4日与指导老师交流,验算程序并在老师指导下得出程序合理化简化的方法。6、 1月14日进行小组讨论,讨论程序修改方案7、 对程序语言按要求进行修改,使程序更为简洁,对用户交互界面中图形显示区域进行修改,初步修复了图形显示问题。8、 1月2

7、1日与指导老师交流,检验当前成果,并提出对其他一般图形的运算编程。(2) 算法的研究探索过程经分析,工程上的复杂截面大多可以分解为多个三角形后进行分析计算,且三角形的几何性质是我们比较熟悉和容易分析,因此对给定三个顶点坐标的三角形的几何性质的计算是计算工程复杂截面基础与前提。1、单元坐标法求截面静距、惯性矩及惯性积已知三角形的三个顶点、的坐标分别为(x1,y1)、(x2,y2)、(x3,y3)。根据三角形面积的定义及海伦公式可用三个顶点坐标表示三角形的面积为 (1)根据静距、惯性矩及惯性积的定义及微积分的相关知识可用三角形的三个顶点坐标将其表示如下: (2)同理 (3) (4) (5)(6)2

8、、简单三角形求主惯性矩由形心的定义及其与静距的关系可得形心如下: (7) (8)利用平行移轴定理可得三角形对形心轴轴与轴的惯性矩和惯性积 (9) (10) (11)在对形心轴的惯性矩及惯性积的基础上利用转轴公式求得截面的形心主惯性矩 (12) (13)3、简单四边形形心主惯性矩的计算 求简单四边形的形心主惯性矩是在三角形的基础上进行,将四边形分成两个三角形进行计算。四个顶点按逆时针分别为A、B、C、D。由面积、静距、惯性矩及惯性积的定义可知,他们均满足叠加性,可得下面的计算过程: (14) (15) (16) (17) (18) (19) (20) (21) (22) (23)(24)(25)

9、 (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36)4、复杂多边形的形心主惯性矩计算在已完成简单三角形和简单四边形的计算后,根据截面的几何性质的可叠加性,复杂多边形的计算就变得比较简单了,其实就是重复的过程,从算法说就是循环累加的过程。因此复杂边形的计算就是将其分解为多个三角形而进行。这样,无论多复杂的截面,只要能分解为三角形就可以对其形心主惯性矩进行计算。计算过程如下:由面积公式 (37)计算得各个三角形的面积由静距公式 (38) 计算得各个三角形的静距 及 同理由惯性矩及惯性积的公式 (39) (40) (41)可得 及 由截面几何

10、性质的可叠加性可得 (42) (43) (44) (45) (46) (47)例如正六边形的推导法:设正六边形的边长为a,由对称性可知,形心为O求 先考虑关于自己的形心惯性矩 (48)所以,它关于x轴的惯性矩为 (49)由惯性矩定义可得对x轴的惯性矩相同考虑,关于自己的形心惯性矩 (50) (51)所以 (52) 求先考虑矩形,对自己形心的惯性矩 (53) (54)再考虑 (55) (56) (57)6、曲线图形组合截面的形心主惯性矩的计算由于工程实际中并不是所有的截面都是多边形,还可能包括圆形、半圆形、扇形以及多边形与曲线图形的组合,主要是指工程上应用比较多的多边形与半圆和扇形的组合以及圆截

11、面。因为半圆、圆形及扇形截面的特殊性都有各自独特几何性质计算公式,因此当要计算这样的组合截面时只需在计算过程中将各自的几何性质带入循环与累加计算过程中就可以解决曲线截面及组合截面形心主惯性矩的计算。(1) T字型 形心为,其中: (58)T形截面对形心轴的惯性矩: (59)T形截面对形心轴的惯性积:所以, 便是形心主惯性矩。(2) 工字型 形心为C,其中: (60)工字型截面对形心轴的惯性矩: (61)(62)工字型截面对形心轴的惯性积:所以, 便是形心主惯性矩。(3) 半圆形半圆惯性矩公式: (63)(为半圆的半径) (64)形心C距离圆心转轴公式前提:直角坐标系逆时针旋转角度后与直角坐标系

12、重合1、(图)当 时,则如图(),由 (65) (66) (67)可得 (68)C 当时,的值和形心C的坐标也与上述一致。 2、(图)当 时,则如图(),由 (69) (70) (71)C 当时,的值和形心C的坐标也与上述一致。 转轴公式: (72) (73) (74)综上可得: (75) (76) (77)根据平行移轴公式: (78) (79) (80) (81)即可得半圆形截面相对于直角坐标系的惯性矩、惯性积公式。(3) Matlab相关操作学习及研究过程经过比较以及教师推荐选定Matlab的GUI色合计界面作为本软件的开发界面,充分利用MATLAB强大的计算及作图功能以及简便的界面设计构

13、件。前期自习了Matlab的常用语句,包括:常规运算,矩阵运算,定义函数,二维作图等。 之后开始自主学习GUI界面的设计及编程方法:从界面排版开始,根据不同单元的不同用途在面板按照预期功能需要确立下主要的“数据导入”、“运算按钮”、“结果数值、图像显示”三个要素并进行分区。通过视频学习与GUI相关的编码,设置“PushButton”、“Static Text”、“Edit text”、“Axes”以及“Panel”来完成功能实现以及排版,期间深刻认识运用了“Tag”的含义,并自定义文字的格式控制。之后学习并使用了“文件调用”以及上述相关部分制作得初期成果。3、 研究成果 (1) 按照格式在tx

14、t录入坐标数据 ,并保存。(2)打开程序界面,(3)点击打开文件导入录入的txt文件(4) 点击计算即可显示结果,其中蓝色星号即为形心 (五边形) (半圆形) (矩形) (T字型) (工字型)4、 经费预算开支科目 预算金费(元)主要用途 预计使用时间1. 业务费2400(1)能源动力费400能源耗费2014-08-01 至2015-05-31(2)会议费300租用会议场所费用、会议资 料费、茶水费2014-08-01 至2015-05-31(3)差旅费500会议注册费、交通费等2014-08-01 至2015-05-31(4)文献检索费700文献检索、复印、打印、网 络费等2014-08-0

15、1 至2015-05-31(5)论文出版费500论文版面费2014-08-01 至2015-05-312.仪器设备购置费03.材料费600购置进行试验需要的材料; 购置相关编程软件等2014-08-01 至2015-05-314.企业注册费0预算经费总额3000附录Matlab程序代码function varargout = untitled(varargin)% UNTITLED M-file for untitled.fig% UNTITLED, by itself, creates a new UNTITLED or raises the existing% singleton*.% H

16、 = UNTITLED returns the handle to a new UNTITLED or the handle to% the existing singleton*.% UNTITLED(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in UNTITLED.M with the given input arguments.% UNTITLED(Property,Value,.) creates a new UNTITLED or raises the% existin

17、g singleton*. Starting from the left, property value pairs are% applied to the GUI before untitled_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to untitled_OpeningFcn via varargin.% *See GUI Options on GUIDEs Too

18、ls menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the response to help untitled% Last Modified by GUIDE v2.5 23-Feb-2015 20:59:48% Begin initialization code - DO NOT EDITgui_

19、Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, untitled_OpeningFcn, . gui_OutputFcn, untitled_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:n

20、argout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before untitled is made visible.function untitled_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject

21、 handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to untitled (see VARARGIN)% Choose default command line output for untitledhandles.output = hObject;% Update handles struct

22、ureguidata(hObject, handles);% UIWAIT makes untitled wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = untitled_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (s

23、ee VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout1 = handles.output;% - Executes on button press in pushbutton1.functi

24、on pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)filename,pathname=uigetfile(. *.txt,(*.txt);. *,*,(*.*), . );if isequal(filename

25、,0)|isequal(pathname,0) return;end% - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUID

26、ATA)if (get(handles.R1,value) A=get(handles.edit3,string); B=get(handles.edit4,string); a=str2num(A); b=str2num(B); Ix0=a3*b/12; Iy0=b3*a/12; Xba=b/2; Yba=a/2; c=num2str(Ix0); d=num2str(Iy0); e=num2str(Xba); f=num2str(Yba); QuaX=0 0 b b 0; QuaY=0 a a 0 0; plot(QuaX,QuaY,r,Xba,Yba,*); set(handles.tex

27、t4,String,c); set(handles.text5,String,d); set(handles.text17,String,e); set(handles.text18,String,f);elseif (get(handles.R2,value) A=get(handles.edit3,string); B=get(handles.edit4,string); X=get(handles.edit5,string); Y=get(handles.edit6,string); a=str2num(A); b=str2num(B); x=str2num(X); y=str2num(

28、Y); E=0 b b a a-x a; 0 0 b a a-x a-x; y (b-y) (b-y) a-x 0 a-x; y y (b-y) a-x 0 0 n=4; for i=1:1:n x1=E(i,1); x2=E(i,2); x3=E(i,3); y1=E(i,4); y2=E(i,5); y3=E(i,6); delta(i)=0.5*det(1 x1 y1;1 x2 y2; 1 x3 y3); Sx(i)=delta(i)*(y1+y2+y3)/3; Sy(i)=delta(i)*(x1+x2+x3)/3; Ix(i)=delta(i)*(y1*y1+y2*y2+y3*y3+

29、y1*y2+y2*y3+y1*y3)/6; Iy(i)=delta(i)*(x1*x1+x2*x2+x3*x3+x1*x2+x2*x3+x1*x3)/6; Ixy(i)=delta(i)*(2*(x1*y1+x2*y2+x3*y3)+x1*(y2+y3)+x2*(y1+y3)+x3*(y1+y2)/12; end for i=1:1:(n-1) j=1; SY=0; SX=0; Delta=0; Adelta=0; for j=1:1:(i+1) SY=SY+Sy(j); SX=SX+Sx(j); Delta=Delta+delta(j); Adelta=Adelta+abs(delta(j)

30、; end Xba=(SY)/(Delta+eps); Yba=(SX)/(Delta+eps); IX=Ix(i)+Ix(i+1); IY=Iy(i)+Iy(i+1); IXY=Ixy(i)+Ixy(i+1); Ix(i+1)=IX; Iy(i+1)=IY; Ixy(i+1)=IXY; end IX=IX-Yba*Yba*(Delta); IY=IY-Xba*Xba*(Delta); Ix0=(IX+IY)/2+0.5*sqrt(IX-IY)2+4*IXY*IXY); Iy0=(IX+IY)/2-0.5*sqrt(IY-IY)2+4*IXY*IXY); c=num2str(Ix0); d=n

31、um2str(Iy0); e=num2str(Xba); f=num2str(-Yba); set(handles.text4,String,c); set(handles.text5,String,d); set(handles.text17,String,e); set(handles.text18,String,f); E1=0 b b (b-y) (b-y) y y 0 0; E2=0 0 -x -x -a -a -x -x 0; plot(E1,E2,b,Xba,-Yba,*);elseif (get(handles.R3,value) A=get(handles.edit3,str

32、ing); B=get(handles.edit4,string); X=get(handles.edit5,string); Y=get(handles.edit6,string); P=get(handles.edit7,string); O=get(handles.edit8,string); a=str2num(A); b=str2num(B); x=str2num(X); y=str2num(Y); p=str2num(P); o=str2num(O); E=0 b b a a-x a; 0 0 b a a-x a-x; y (b-y) (b-y) a-x p a-x; y y (b

33、-y) a-x p p; (y-o) (b-y+o) (b-y+o) p 0 p; (y-o) (y-o) (b-y+o) p 0 0; n=6; for i=1:1:n x1=E(i,1); x2=E(i,2); x3=E(i,3); y1=E(i,4); y2=E(i,5); y3=E(i,6); delta(i)=0.5*det(1 x1 y1;1 x2 y2; 1 x3 y3); Sx(i)=delta(i)*(y1+y2+y3)/3; Sy(i)=delta(i)*(x1+x2+x3)/3; Ix(i)=delta(i)*(y1*y1+y2*y2+y3*y3+y1*y2+y2*y3+

34、y1*y3)/6; Iy(i)=delta(i)*(x1*x1+x2*x2+x3*x3+x1*x2+x2*x3+x1*x3)/6; Ixy(i)=delta(i)*(2*(x1*y1+x2*y2+x3*y3)+x1*(y2+y3)+x2*(y1+y3)+x3*(y1+y2)/12; end for i=1:1:(n-1) j=1; SY=0; SX=0; Delta=0; Adelta=0; for j=1:1:(i+1) SY=SY+Sy(j); SX=SX+Sx(j); Delta=Delta+delta(j); Adelta=Adelta+abs(delta(j); end Xba=(S

35、Y)/(Delta+eps); Yba=(SX)/(Delta+eps); IX=Ix(i)+Ix(i+1); IY=Iy(i)+Iy(i+1); IXY=Ixy(i)+Ixy(i+1); Ix(i+1)=IX; Iy(i+1)=IY; Ixy(i+1)=IXY; end IX=IX-Yba*Yba*(Delta); IY=IY-Xba*Xba*(Delta); Ix0=(IX+IY)/2+0.5*sqrt(IX-IY)2+4*IXY*IXY); Iy0=(IX+IY)/2-0.5*sqrt(IY-IY)2+4*IXY*IXY); c=num2str(Ix0); d=num2str(Iy0);

36、 e=num2str(Xba); f=num2str(-Yba); set(handles.text4,String,c); set(handles.text5,String,d); set(handles.text17,String,e); set(handles.text18,String,f); E1=0 b b (b-y) (b-y) (b-y+o) (b-y+o) (y-o) (y-o) y y 0 0; E2=0 0 -x -x (-a+p) (-a+p) -a -a (-a+p) (-a+p) -x -x 0; plot(E1,E2,y,Xba,-Yba,*);else Sta=

37、importdata(1.txt);n=size(Sta,1);i=1;line(1)=0;halfc(1)=0;for i=1:1:n if Sta(i,1)=1 x1=Sta(i,2); x2=Sta(i,4); x3=Sta(i,6); y1=Sta(i,3); y2=Sta(i,5); y3=Sta(i,7); delta(i)=0.5*det(1 x1 y1;1 x2 y2; 1 x3 y3); Sx(i)=delta(i)*(y1+y2+y3)/3; Sy(i)=delta(i)*(x1+x2+x3)/3; Ix(i)=delta(i)*(y1*y1+y2*y2+y3*y3+y1*

38、y2+y2*y3+y1*y3)/6; Iy(i)=delta(i)*(x1*x1+x2*x2+x3*x3+x1*x2+x2*x3+x1*x3)/6; Ixy(i)=delta(i)*(2*(x1*y1+x2*y2+x3*y3)+x1*(y2+y3)+x2*(y1+y3)+x3*(y1+y2)/12; line(i)=i; elseif Sta(i,1)=2 O1=Sta(i,2); O2=Sta(i,3); D=Sta(i,4); delta(i)=pi*D*D/4; Sx(i)=delta(i)*O2; Sy(i)=delta(i)*O1; Ix(i)=delta(i)*D*D/16; Iy

39、(i)=delta(i)*D*D/16; elseif Sta(i,1)=3 O1=Sta(i,2); O2=Sta(i,3); D1=Sta(i,4); D2=Sta(i,5); delta(i)=pi*D1*D1/4-pi*D2*D2/4; Sx(i)=delta(i)*O2; Sy(i)=delta(i)*O1; Ix(i)=pi*(D14-D24)/64; Iy(i)=pi*(D14-D24)/64; elseif Sta(i,1)=4 x1=Sta(i,2); x2=Sta(i,3); y1=Sta(i,4); y2=Sta(i,5); D=sqrt(y1-y2)2+(x1-x2)2

40、); if x11 for i=1:1:(n-1) j=1; SY=0; SX=0; Delta=0; Adelta=0; for j=1:1:(i+1) SY=SY+Sy(j); SX=SX+Sx(j); Delta=Delta+delta(j); Adelta=Adelta+abs(delta(j); end Xba=(SY)/(Delta+eps); Yba=(SX)/(Delta+eps); IX=Ix(i)+Ix(i+1); IY=Iy(i)+Iy(i+1); IXY=Ixy(i)+Ixy(i+1); Ix(i+1)=IX; Iy(i+1)=IY; Ixy(i+1)=IXY; end

41、else Xba=(Sy(1)/(delta(1)+eps); Yba=(Sx(1)/(delta(1)+eps); IX=Ix(1); IY=Iy(1); IXY=Ixy(1); Delta=delta(1);endIX=IX-Yba*Yba*(Delta);IY=IY-Xba*Xba*(Delta);Ix0=(IX+IY)/2+0.5*sqrt(IX-IY)2+4*IXY*IXY);Iy0=(IX+IY)/2-0.5*sqrt(IY-IY)2+4*IXY*IXY);c=num2str(Ix0);d=num2str(Iy0);e=num2str(Xba);f=num2str(Yba);set(handles.text4,String,c);set(handles.text5,String,d);set(handles.text17,String,e);set(handles.text18,String,f);axes(handles.axes1)axis on;li

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论