平面三角形单元常应变单元matlab程序的编制剖析

平面三角形单元常应变单元matlab程序的编制剖析
平面三角形单元常应变单元matlab程序的编制剖析

三角形常应变单元程序的编制与使用

有限元法是求解微分方程边值问题的一种通用数值方法,该方法是一种基于变分法(或变分里兹法)而发展起来的求解微分方程的数值计算方法,以计算机为手段,采用分片近似,进而逼近整体的研究思想求解物理问题。

有限元分析的基本步骤可归纳为三大步:结构离散、单元分析和整体分析。对于平面问题,结构离散常用的网格形状有三角形、矩形、任意四边形,以三个顶点为节点的三角形单元是最简单的平面单元,它较矩形或四边形对曲边边界有更好的适应性,而矩形或四边形单元较三节点三角

形有更高的计算精度。

Matlab语言是进行矩阵运算的强大工具,因

此,用Matlab语言编写有限元中平面问题的程序

有优越性。本章将详细介绍如何利用Matlab语言

编制三角形常应变单元的计算程序,程序流程图见

图1。

有限元法中三节点三角形分析结构的步骤如

下:

1)整理原始数据,如材料性质、荷载条件、约

束条件等,离散结构并进行单元编码、结点

编码、结点位移编码、选取坐标系。

2)单元分析,建立单元刚度矩阵。

3)整体分析,建立总刚矩阵。

4)建立整体结构的等效节点荷载和总荷载矩

5)边界条件处理。

6)解方程,求出节点位移。

7)求出各单元的单元应力。

8)计算结果整理。计算结果整理包括位移和应

力两个方面;位移计算结果一般不需要特别

的处理,利用计算出的节点位移分量,就可

画出结构任意方向的位移云图;而应力解的

误差表现在单元内部不满足平衡方程,单元与单元边界处应力一般不连续,在边界上应力解一般与力的边界条件不相符合。图1 程序流程图

1.1 程序说明

%******************************************************************* % 三角形常应变单元求解结构主程序

%******************************************************************* ●功能:运用有限元法中三角形常应变单元解平面问题的计算主程序。

●基本思想:单元结点按右手法则顺序编号。

●荷载类型:可计算结点荷载。

●说明:主程序的作用是通过赋值语句、读取和写入文件、函数调用等完成算

法的全过程,即实现程序流程图的程序表达。

%----------------------------------------------------------------------------------------------------- 1 程序准备

format short e %设定输出类型

clear all %清除所有已定义变量

clc %清屏

●说明:

format short e -设定计算过程中显示在屏幕上的数字类型为短格式、科学计数法;

clear all -清除所有已定义变量,目的是在本程序的运行过程中,不会发生变量名相同等可能使计算出错的情况;

clc -清屏,使屏幕在本程序运行开始时

%----------------------------------------------------------------------------------------------------- 2 全局变量定义

global NNODE NPION NELEM NVFIX NFORCE COORD LNODS YOUNG POISS THICK

global FORCE FIXED

global BMATX DMATX SMATX AREA

global ASTIF ASLOD ASDISP

global FP1

●说明:

NNODE—单元结点数,NPION—总结点数,NELEM—单元数,NVFIX—受约束边界点数,NFORCE—结点力数,COORD—结构结点坐标数组,LNODS —单元定义数组,YOUNG—弹性模量,POISS—泊松比,THICK—厚度

FORCE —节点力数组(n,3) n:受力节点数目,(n,1):作用点,(n,2):x方向,(n,3):y 方向;FIXED—约束信息数组(n,3) n:受约束节点数目, (n,1):约束点(n,2)与(n,3)分别为约束点x方向和y方向的约束情况,受约束为1否则为0

BMATX—单元应变矩阵(3*6),DMATX—单元弹性矩阵(3*3),SMATX—单元应力矩阵(3*6),AREA—单元面积

ASTIF—总体刚度矩阵,ASLOD—总体荷载向量,ASDISP—结点位移向量FP1—数据文件指针

3 打开文件

FP1=fopen('input.txt','rt'); %打开输入数据文件存放初始数据

●说明:

FP1=fopen('input.txt','rt'); -打开已存在的输入数据文件input.txt,且设置其为只读格式,使程序在执行过程中不能改变输入文件中的数值,并用文件句柄FP1来执行

FP2=fopen('output.txt','wt'); -打开输出数据文件,该文件不存在时,通过此命令创建新文件,该文件存在时则将原有内容全部删除。该文件设置为可写格式,可在程序执行过程中向输出文件写入数据。

%----------------------------------------------------------------------------------------------------- 4 读入程序控制信息

NPION=fscanf(FP1,'%d',1) %结点个数(结点编码总数)

NELEM=fscanf(FP1,'%d',1) %单元个数(单元编码总数)

NFORCE=fscanf(FP1,'%d',1) %结点荷载个数

NVFIX=fscanf(FP1,'%d',1) %

YOUNG=fscanf(FP1,'%e',1) %弹性模量

POISS=fscanf(FP1,'%f',1) %泊松比

THICK=fscanf(FP1,'%d',1) %厚度

LNODS=fscanf(FP1,'%d',[3,NELEM])' %单元定义数组(单元结点号)

●说明:

建立LNODS矩阵,该矩阵指出了每一单元的连接信息。

矩阵的每一行针对每一单元,共计NELEM;每一列相应为单元结点号(编码)、按逆时针顺序输入。

命令中,[3,NELEM]’表示读取NELEM行3列数据赋值给LNODS矩阵。

显然,LNODS(i,1:3)依次表示i单元的i,j,k结点号。

COORD=fscanf(FP1,'%f',[2,NPION])' %结点坐标数组

●说明:

建立COORD矩阵,该矩阵用来存储各结点x,y方向的坐标值。

从FP1文件中读取全部结点个数NPOIN的坐标值,从1开始按顺序读取。

COORD(i,1:2)表示第i个结点的x,y坐标。

FORCE=fscanf(FP1,'%f',[3,NFORCE])' %结点力数组

●说明:

(n,3) n:受力结点数目,(n,1):作用点,(n,2):x方向,(n,3):y方向

FIXED=fscanf(FP1,'%d',[3,inf])' %约束信息数组

●说明:

(n,3) n:受约束节点数目, (n,1):约束点(n,2)与(n,3)分别为约束点x方向和y 方向的约束情况,受约束为1否则为0

●总体说明:

从输入文件FP1中读入结点个数,单元个数,结点荷载个数,受约束边界点数,弹性模量,泊松比,厚度,单元定义数组,结点坐标数组,结点力数组,约束信息数组;

程序中弹性模量仅输入了一个值,表明本程序仅能求解一种材料构成的结构,如:钢筋混凝土结构、钢结构,不能求解钢筋混凝土-钢组合结构。

采用了命令fscanf,其中:’%d’表示读入整数格式,’%f'’表示读入浮点数;1表示读取1个数,[A,B]形式表示读A行B列数组,[A,B]’表示将[A,B]转置,inf 表示正无穷。

5 调用子程生成单刚,组成总刚并加入约束信息

ASSEMBLE()

%----------------------------------------------------------------------------------------------------- 6 调用子程生成荷载向量

FORMLOAD()

%----------------------------------------------------------------------------------------------------- 7 计算结点位移向量

ASDISP=ASTIF\ASLOD'

%----------------------------------------------------------------------------------------------------- 8调用子程计算单元应力

WRITESTRESS()

%******************************************************************* 9 关闭输出数据文件

fclose(FP2);

%*******************************************************************

读取ASSEMBLE子

程%*****************************************************************

**

function ASSEMBLE()

% 所引用的全局变量:global NPION NELEM NVFIX LNODS ASTIF THICK

global BMATX SMATX AREA FIXED

%------------------------------------------------------------------------------------------------ ---- % 计算单刚并生成总刚

ASTIF(1:2*NPION,1:2*NPION)=0; %张成特定大小总刚矩阵并置0 ●说明:

建立单元刚度矩阵ASTIF,该矩阵的行列数均为2*NPION ,NPION表示结

点数,每个结点有两个方向的力和位移。

for i=1:NELEM

FORMSMATX(i) %调用应力子程序

ESTIF=BMATX'*SMATX*THICK*AREA; %求解单元刚度矩阵

a=LNODS(i,:); %临时向量,用来记录当前单元的节点编号

for j=1:3

for k=1:3

ASTIF((a(j)*2-1):a(j)*2,(a(k)*2-1):a(k)*2)=ASTIF((a(j)*2-1):a(j)*2,(

a(k)*2-1):a(k)*2)+ESTIF(j*2-1:j*2,k*2-1:k*2);

%跟据节点编号对应关系将单元刚度分块叠加到总刚矩阵中

end

end

end

●说明:

FORMSMATX(i)调用应力子程序,提取i单元的应力矩阵SMATX;

a=LNODS(i,:)记录i单元的三个结点编号;

for…end循环语句表示行从1到3循环,列从1到3循环,将单刚中的元素叠加至总刚中:

ASTIF((a(j)*2-1):a(j)*2,(a(k)*2-1):a(k)*2)表示总刚中第a(j)*2-1到:a(j)*2行,

第a(k)*2-1到a(k)*2列的元素由单刚中第j*2-1到j*2行,第k*2-1到k*2列的元素叠加而得,a(j)*2即将单元中的位移编码对应到整体的位移编码。

%---------------------------------------------------------------------------------------------------- %将约束信息加入总刚(置0置1法)

NUM=1; %计数器(当前已分析的节点数)

tmp(NVFIX)=0; %临时存被约束的序号

while i

for j=-1:0

if FIXED(NUM,j+3)==1 %若发现约束

i=i+1; %计数器自增Array tmp(i)=FIXED(NUM)*2+j; %求约束序号

end

end

NUM=NUM+1;

end

说明:

tmp(NVFIX)=0,形成一个元素值均为0的一行,NVFIX列的行向量,

执行while语句,首先判断i是否小于控制数据NVFIX,若小于则往下进行,若不小于则退出。

执行for语句,FIXED(NUM,j+3)表示约束信息数组中第NUM行,第j+3列的元素,j从-1到0,即j+3表示2到3列,即约束信息数组中描述结点x和y 方向受约束的情况,判断FIXED(NUM,j+3)若等于1,则约束数自增,若不等于1则跳出。

FIXED(NUM)表示FIXED(NUM,1),tmp(i)=FIXED(NUM)*2+j计算整体约束序号,将序号放入tmp行向量中的i列。

%----------------------------------------------------------------------------------------------------- for i=1:NVFIX

ASTIF(1:2*NPION,tmp(i))=0; %将一约束序号处的总刚列向量清0

ASTIF(tmp(i),1:2*NPION)=0; %.将一约束序号处的总刚行向量

清0

ASTIF(tmp(i),tmp(i))=1; %将行列交叉处的元素置为1

end

● 说明:

后处理法中置0置1法,设j j C =δ(包括0=j C ),则将总刚中的主元素 K jj 换为1,j 行和j 列的其他元素均改为零。

%******************************************************************* % 读取FORMSMATX 子程

%******************************************************************* function FORMSMATX(ELEMENT) %计算应力矩阵 %引用所需的全局变量

global NPION NELEM COORD LNODS YOUNG POISS

global BMATX DMATX SMATX AREA %-----------------------------------------------------------------------------------------------------

%生成弹性矩阵D a=YOUNG/(1-POISS^2);

DMATX(1,1)=1*a;

DMATX(1,2)=POISS*a;

DMATX(2,1)=POISS*a;

DMATX(2,2)=1*a;

DMATX(3,3)=(1-POISS)*a/2;

● 说明: 平面应力问题的弹性矩阵?????????????

?--=21,0,00,1,0,,1122μμμμE D ,其中,E 为弹性模量,μ为泊松比。

%----------------------------------------------------------------------------------------------------- i=ELEMENT; %i 为当前所计算的单元号

%计算当前单元的面积

AREA=det([1 COORD(LNODS(i,1),1) COORD(LNODS(i,1),2);...

1 COORD(LNODS(i,2),1) COORD(LNODS(i,2),2);...

1 COORD(LNODS(i,3),1) COORD(LNODS(i,3),2);])/2;

● 说明:

det 表示求矩阵行列式的值,m m j j i

i y x y x y x A ,,1,,1,121,=

,其中),,(m j i x i 分别表示一个三角形单元的三个节点坐标。 MATLAB 中若一行中无法写下一个完整的命令,则可以在行尾加入3个连续的英文句号,表示命令余下的部分在下一行出现。

%----------------------------------------------------------------------------------------------------- %生成应变矩阵B

for j=0:2

b(j+1)=

、COORD(LNODS(i,(rem((j+1),3))+1),2)-COORD(LNODS(i,(rem((j+2),3))+1),2); c(j+1)=

-COORD(LNODS(i,(rem((j+1),3))+1),1)+COORD(LNODS(i,(rem((j+2),3))+1),1);

end

BMATX=[b(1) 0 b(2) 0 b(3) 0;...

0 c(1) 0 c(2) 0 c(3);...

c(1) b(1) c(2) b(2) c(3) b(3)]/(2*AREA);

说明: 应变矩阵),,(,,00,21m j i l b c c b A B l l l l l =??????????= rem 表示求余函数,rem (x ,y )命令返回的是x-n.*y ,当y ≠0时,n=fix(x./y),其中fix 为最近的整数取整。

%----------------------------------------------------------------------------------------------------- SMATX=DMATX*BMATX; %求应力矩阵S=D*B

%******************************************************************* % 读取FORMLOAD 子程

%******************************************************************* function FORMLOAD() %本子程生成荷载向量 %---------------------------------------------------------------------------------------------------- %所需引用的全局变量

global ASLOD NPION NFORCE FORCE

%----------------------------------------------------------------------------------------------------

ASLOD(1:2*NPION)=0; %张成特定大小的0向量 ● 说明:

ASLOD 为总体荷载向量,每个结点有x ,y 两个方向的结点力。

%---------------------------------------------------------------------------------------------------- for i=1:NFORCE

ASLOD((FORCE(i,1)*2-1):FORCE(i,1)*2)=FORCE(i,2:3);

end

● 说明:

FORCE(i,1)为作用点,FORCE(i,2:3)为x,y 方向的结点力。

%---------------------------------------------------------------------------------------------------- %将有约束处的荷载置为0

NUM=1;

i=0;

tmp(NVFIX)=0;

while i

for j=-1:0

if FIXED(NUM,j+3)==1

i=i+1;

tmp(i)=FIXED(NUM)*2+j;

end

end

NUM=NUM+1;

end

for i=1:NVFIX

ASLOD(tmp(i))=0;

end

● 说明:

置0置1法,同上。

%******************************************************************* ASDISP=ASTIF\ASLOD' %计算结点位移向量 %******************************************************************* % 读取WRITESTRESS 子程

%******************************************************************* function WRITESTRESS()

%求解内力,即两个方向的正应力与一个剪应力(xy y x τεε,,)

%---------------------------------------------------------------------------------------------------- %所引用的全局变量

global NELEM NPION SMATX ASDISP LNODS

%----------------------------------------------------------------------------------------------------

ELEDISP(1:6)=0; %当前单元的结点位移向量 ● 说明:

ELEDIS 为单元的结点位移?????

?????????????????=m m j j i i e v u v u v u a

%---------------------------------------------------------------------------------------------------- for i=1:NELEM

for j=1:3

ELEDISP(j*2-1:j*2)=ASDISP(LNODS(i,j)*2-1:LNODS(i,j)*2); end

FORMSMATX(i) %% %调用子程求应力矩阵 i

STRESS=SMA TX*ELEDISP' %求内力 end

● 说明:

通过循环,依次从结构位移列阵中对号,赋值给第i 个单元的单元位移向量ELEDISP 。

%----------------------------------------------------------------------------------------------------

1.2 程序应用举例

【例1】利用三角形三节点常应变单元程序计算

图2所示的结构。

设弹性模量1 E ,泊松比为0,厚度为

1。

%------------------------------------------

-----------------------

输入数据文件input.txt 为:

6 4 1 6 1.0e0 0.0 1

3 1 2

5 2 4

3 2 5 6 3 5 图2 0.0 2.0

0.0 1.0

1.0 1.0

0.0 0.0

1.0 0.0

2.0 0.0

1 0 -1

1 1 0

2 1 0

4 1 1

5 0 1

6 0 1

%----------------------------------------------------------------------------------------------- 说明:

第一行:读入程序控制信息

NPION=fscanf(FP1,'%d',1) %结点个数(结点编码总数) NELEM=fscanf(FP1,'%d',1) %单元个数(单元编码总数) NFORCE=fscanf(FP1,'%d',1) %结点荷载个数

NVFIX=fscanf(FP1,'%d',1) %受约束边界点数

YOUNG=fscanf(FP1,'%e',1) %弹性模量 136542

POISS=fscanf(FP1,'%f',1) %泊松比

THICK=fscanf(FP1,'%d',1) %厚度

第二、三、四、五行:读入单元连接信息:

LNODS=fscanf(FP1,'%d',[3,NELEM])'; %单元定义数组,单元结点号,逆时针输入

第六、七、八、九、十、十一行:读入结点坐标

COORD=fscanf(FP1,'%f',[2,NPION])'; %结点坐标值,第1列为x坐标值,第2列为y坐标值

第十一行:读入结点荷载信息

FORCE=fscanf(FP1,'%f',[3,NFORCE])'; %结点号,X向结点荷载数值,Y 向结点荷载数值(与坐标轴方向一致为正)

第十二、十六行:读入零位移信息

FIXED=fscanf(FP1,'%d',[3,inf])'; %结点号,X向约束,Y向约束%-----------------------------------------------------------------------------------------------------

1.3 程序的改进要点

上述三角形三节点程序反映了有限元的基本思路,可以计算简单的平面应力或平面应变问题。在熟练掌握了程序的编制与使用后,可在以下几方面对程序进行改进,以加深对矩阵位移法及MATLAB语言编程的理解:

1、本程序的弹性模量仅能输入一个数值,意味着程序仅能计算由同种材料构成的结构。考虑如何改进使程序可计算由不同材料构成的组合结构。

2、本程序仅能计算结点集中荷载类型,考虑如何编制体积力、表面力、跨中集中力等类型的程序。

3、考虑如何编制有支座位移的程序。

4、本程序最后的结果没有生成输出文件,可以编制输出文件。

5、本程序计算的应力没有进行结果处理,可以编制最后结果处理的程序。

6、可以在此程序基础上编制三角形六节点、四边形四节点等程序。

综上所述,本章的三角形三节点常应变程序体现了如何将有限元法的计算方法和过程用MATLAB程序语言表达出来,重点放在程序架构和流程的建立以及算法实现方面,主要依赖手工操作-手工输入初始数据(前处理)、手工绘制计

算结果(后处理),目的是使学生能够清晰、明确地掌握有限元法的基本理论和概念,熟练掌握应用MATLAB语言编制、修改和调试简单程序的能力。

平面三角形单元有限元程序设计

. 一、题目 如图1所示,一个厚度均匀的三角形薄板,在顶点作用沿板厚方向均匀分布的竖向载荷。已知:P=150N/m ,E=200GPa ,=0.25,t=0.1m ,忽略自重。试计算薄板的位移及应力分布。 要求: 1. 编写有限元计算机程序,计算节点位移及单元应力。(划分三角形 单元,单元数不得少于30个); 2. 采用有限元软件分析该问题(有限元软件网格与程序设计网格必 须一致),详细给出有限元软件每一步的操作过程,并将结果与程序计算结果进行对比(任选取三个点,对比位移值); 3. 提交程序编写过程的详细报告及计算机程序; 4. 所有同学参加答辩,并演示有限元计算程序。 有限元法中三节点三角形分析结构的步骤如下: 1)整理原始数据,如材料性质、荷载条件、约束条件等,离散结构并进行单元编码、结点编码、结点位移编码、选取坐标系。 2)单元分析,建立单元刚度矩阵。 3)整体分析,建立总刚矩阵。 4)建立整体结构的等效节点荷载和总荷载矩阵 5)边界条件处理。 6)解方程,求出节点位移。 7)求出各单元的单元应力。 8)计算结果整理。 一、程序设计 网格划分 如图,将薄板如图划分为6行,并建立坐标系,则

刚度矩阵的集成 建立与总刚度矩阵等维数的空矩阵,已变单元刚度矩阵的集成。 由单元分析已知节点、单元的排布规律,继而通过循环计算求得每个单元对应的节点序号。 通过循环逐个计算:(1)每个单元对应2种单元刚度矩阵中的哪一种; (2)该单元对应总刚度矩阵的那几行哪几列 (3)将该单元的单元刚度矩阵加入总刚度矩阵的对应行列 循环又分为3层循环:(1)最外层:逐行计算 (2)中间层:该行逐个计算 (3)最里层:区分为第 奇/偶 数个计算 单元刚度的集成:[ ][][][][][]' '''''215656665656266256561661e Z e e e Z e Z e e e e k k k K k k k k k k +?++=? =?==?==?=?????? 边界约束的处理:划0置1法 X Y P X Y P

有限元2-弹性力学平面问题有限单元法(2.1三角形单元,2.2几个问题的讨论)综述

第2章 弹性力学平面问题有限单元法 2.1 三角形单元(triangular Element) 三角形单元是有限元分析中的常见单元形式之一,它的优点是: ①对边界形状的适应性较好,②单刚形式及其推导比较简单,故首先介绍之。 一、结点位移和结点力列阵 设右图为从某一结构中取出的一典型三角形单元。 在平面应力问题中,单元的每个结点上有沿x 、y 两个方向的力和位移,单元的结点位移列阵规定为: 相应结点力列阵为: (式2-1-1) 二、单元位移函数和形状函数 前已述及,有限单元法是一种近似方法,在单元分析中,首先要求假定(构 造)一组在单元内有定义的位移函数作为近似计算的基础。即以结点位移为已知量,假定一个能表示单元内部(包括边界)任意点位移变化规律的函数。 构造位移函数的方法是:以结点(i,j,m)为定点。以位移(u i ,v i ,…u m v m )为定点上的函数值,利用普通的函数插值法构造出一个单元位移函数。 在平面应力问题中,有u,v 两个方向的位移,若假定单元位移函数是线性的,则可表示成: (,)123 u u x y x y ααα==++ 546(,)v v x y x y ααα==++ (2-1-2)a 式中的6个待定常数α1 ,…, α6 可由已知的6个结点位移分量(3个结点的坐标) {}??? ?? ?????=????? ???? ?????????????=m j i m e d d d d m j j i v u v u v u i {} i i j j m X Y X (2-1-1)Y X Y i e j m m F F F F ?? ?? ???? ???? ??==??????????????????

平面三角形单元常应变单元matlab程序的编制

三角形常应变单元程序的编制与使用 有限元法是求解微分方程边值问题的一种通用数值方法,该方法是一种基于变分法(或变分里兹法)而发展起来的求解微分方程的数值计算方法,以计算机为手段,采用分片近似,进而逼近整体的研究思想求解物理问题。 有限元分析的基本步骤可归纳为三大步:结构离散、单元分析和整体分析。对于平面问题,结构离散常用的网格形状有三角形、矩形、任意四边形,以三个顶点为节点的三角形单元是最简单的平面单元,它较矩形或四边形对曲边边界有更好的适应性,而矩形或四边形单元较三节点三角 形有更高的计算精度。 Matlab语言是进行矩阵运算的强大工具,因 此,用Matlab语言编写有限元中平面问题的程序 有优越性。本章将详细介绍如何利用Matlab语言 编制三角形常应变单元的计算程序,程序流程图见 图1。 有限元法中三节点三角形分析结构的步骤如 下: 1)整理原始数据,如材料性质、荷载条件、约 束条件等,离散结构并进行单元编码、结点 编码、结点位移编码、选取坐标系。 2)单元分析,建立单元刚度矩阵。 3)整体分析,建立总刚矩阵。 4)建立整体结构的等效节点荷载和总荷载矩 阵 5)边界条件处理。 6)解方程,求出节点位移。 7)求出各单元的单元应力。 8)计算结果整理。计算结果整理包括位移和应 力两个方面;位移计算结果一般不需要特别 的处理,利用计算出的节点位移分量,就可 画出结构任意方向的位移云图;而应力解的 误差表现在单元内部不满足平衡方程,单元与单元边界处应力一般不连续,在边界上应力解一般与力的边界条件不相符合。图1 程序流程图

1.1 程序说明 %******************************************************************* % 三角形常应变单元求解结构主程序 %******************************************************************* ●功能:运用有限元法中三角形常应变单元解平面问题的计算主程序。 ●基本思想:单元结点按右手法则顺序编号。 ●荷载类型:可计算结点荷载。 ●说明:主程序的作用是通过赋值语句、读取和写入文件、函数调用等完成算 法的全过程,即实现程序流程图的程序表达。 %----------------------------------------------------------------------------------------------------- 1 程序准备 format short e %设定输出类型 clear all %清除所有已定义变量 clc %清屏 ●说明: format short e -设定计算过程中显示在屏幕上的数字类型为短格式、科学计数法; clear all -清除所有已定义变量,目的是在本程序的运行过程中,不会发生变量名相同等可能使计算出错的情况; clc -清屏,使屏幕在本程序运行开始时 %----------------------------------------------------------------------------------------------------- 2 全局变量定义 global NNODE NPION NELEM NVFIX NFORCE COORD LNODS YOUNG POISS THICK global FORCE FIXED global BMATX DMATX SMATX AREA global ASTIF ASLOD ASDISP global FP1 ●说明: NNODE—单元结点数,NPION—总结点数,NELEM—单元数,NVFIX—受约束边界点数,NFORCE—结点力数,COORD—结构结点坐标数组,LNODS —单元定义数组,YOUNG—弹性模量,POISS—泊松比,THICK—厚度

主成分分析报告matlab程序

Matlab编程实现主成分分析 .程序结构及函数作用 在软件Matlab中实现主成分分析可以采取两种方式实现:一是通过编程来实现;二是直接调用Matlab种自带程序实现。下面主要主要介绍利用Matlab的矩阵计算功能编程实现主成分分析。 1程序结构 2函数作用 Cwstd.m——用总和标准化法标准化矩阵 Cwfac.m——计算相关系数矩阵;计算特征值和特征向量;对主成分进行排序;计算各特征值贡献率;挑选主成分(累计贡献率大于85%),输出主成分个数;计算主成分载荷 Cwscore.m——计算各主成分得分、综合得分并排序 Cwprint.m——读入数据文件;调用以上三个函数并输出结果

3.源程序 3.1 cwstd.m总和标准化法标准化矩阵 %cwstd.m,用总和标准化法标准化矩阵 function std=cwstd(vector) cwsum=sum(vector,1); %对列求和 [a,b]=size(vector); %矩阵大小,a为行数,b为列数 for i=1:a for j=1:b std(i,j)= vector(i,j)/cwsum(j); end end 3.2 cwfac.m计算相关系数矩阵 %cwfac.m function result=cwfac(vector); fprintf('相关系数矩阵:\n') std=CORRCOEF(vector) %计算相关系数矩阵 fprintf('特征向量(vec)及特征值(val):\n') [vec,val]=eig(std) %求特征值(val)及特征向量(vec) newval=diag(val) ; [y,i]=sort(newval) ; %对特征根进行排序,y为排序结果,i为索引fprintf('特征根排序:\n') for z=1:length(y) newy(z)=y(length(y)+1-z); end fprintf('%g\n',newy) rate=y/sum(y); fprintf('\n贡献率:\n') newrate=newy/sum(newy) sumrate=0; newi=[]; for k=length(y):-1:1 sumrate=sumrate+rate(k); newi(length(y)+1-k)=i(k); if sumrate>0.85 break; end end %记下累积贡献率大85%的特征值的序号放入newi中fprintf('主成分数:%g\n\n',length(newi)); fprintf('主成分载荷:\n') for p=1:length(newi)

层次分析报告法及matlab程序

层次分析法建模 层次分析法(AHP-Analytic Hierachy process)---- 多目标决策方法 70 年代由美国运筹学家T·L·Satty提出的,是一种定性与定量分析相结合的多目标决策分析方法论。吸收利用行为科学的特点,是将决策者的经验判断给予量化,对目标(因素)结构复杂而且缺乏必要的数据情况下,採用此方法较为实用,是一种系统科学中,常用的一种系统分析方法,因而成为系统分析的数学工具之一。 传统的常用的研究自然科学和社会科学的方法有: 机理分析方法:利用经典的数学工具分析观察的因果关系; 统计分析方法:利用大量观测数据寻求统计规律,用随机数学方法描述(自然现象、 社会现象)现象的规律。 基本内容:(1)多目标决策问题举例AHP建模方法 (2)AHP建模方法基本步骤 (3)AHP建模方法基本算法 (3)AHP建模方法理论算法应用的若干问题。 参考书:1、姜启源,数学模型(第二版,第9章;第三版,第8章),高等教育出版社 2、程理民等,运筹学模型与方法教程,(第10章),清华大学出版社 3、《运筹学》编写组,运筹学(修订版),第11章,第7节,清华大学出版社 一、问题举例: A.大学毕业生就业选择问题 获得大学毕业学位的毕业生,“双向选择”时,用人单位与毕业生都有各自的选择标准和要求。就毕业生来说选择单位的标准和要求是多方面的,例如: ①能发挥自己的才干为国家作出较好贡献(即工作岗位适合发挥专长); ②工作收入较好(待遇好); ③生活环境好(大城市、气候等工作条件等); ④单位名声好(声誉-Reputation); ⑤工作环境好(人际关系和谐等) ⑥发展晋升(promote, promotion)机会多(如新单位或单位发展有后劲)等。 问题:现在有多个用人单位可供他选择,因此,他面临多种选择和决策,问题是他将如何作出决策和选择?——或者说他将用什么方法将可供选择的工作单位排序?

平面三角形单元

第八章 平面问题的有限元分析及三角形单元的应用 第一节 概述 分析弹性力学平面问题时,最简单的单元式由三个结点组成的三角形单元。当用以分析平面应力问题时,可将其视为三角板;当用以分析平面应变问题时,则可式为三棱柱。各单元在结点处为铰结。图8-1所示位移悬臂梁离散为三角形单元的组合体 以矩阵形式列出弹性力学平面问题的基本量和基本方程。 谈形体所受体力分量可表示为 [ ] T y x y x p p p p p =??? ? ????= (8-1) 所受面力分量可表示为 [ ] T y x y x p p p p p =??? ? ????= (8-2) 体内任一点应力分量可表示为 []T xy y x τδδδ= (8-3) 任一点的应变分量可表示为 []T xy y x γεεε= (8-4) 任一点的位移分量可表示为 []T v u =δ (8-5) 弹性力学平面问题的几何方程的矩阵表达式为 ?? ???? ???????? ??? ???+??????=????????????=x u y v y v x u xy y x εεεε (8-6) 平面应力问题的物理方程的矩阵表达式为 ? ???? ? ?????????? ????????? ?--= ????? ? ??????xy y x xy y x E γεεμμμ μτσσ210 0010112 (8-7) 或简写成为 εσD = (8-8) 式中

???? ?? ? ?????? ?--=210 0010112μμμ μ E D (8-9) 称为弹性矩阵。 平面应变问题的物理方程也可写成式(8-8),但须将式(8-9)中的E 换成 2 1μ -E ,μ换成 2 1μμ -,因此得出 ???? ?? ????????? ?? ?-----+-= )1(2210 00110 11)21)(1()1(2 2 μμμμμμ μμμE D (8-10) 平衡微分方程及边界条件也可以用矩阵表示,但弹性力学有限元位移法中,通常用虚功 方程代替平衡微分方程和应力边界条件。虚功方程的矩阵表达式为 ?????***=+tdxdy tds p f ptdxdy f T T σε (8-11) 式中:[ ] T v u f ** * =,表示虚位移; []T xy x x * ***=γεεε,表示与虚位移相对应的虚应变。 为了便于计算,作用于弹性体上的体力和面力替换为作用在结点上的集中力,即等效结 点荷载。设作用于各个结点上的外力分量用如下列阵来表示 []T n n V U V U V U F ?=2211 与这些结点外力分量相对应得结点虚位移分量列阵为 []T n n v u v u v u * ******?=2211δ 则外力在虚位移上做的虚功为 F v V u U v V u U v V u U T n n n n ** *****=++?++++δ22221111 如平面弹性体的厚度为t ,该虚功除以t ,即可得出单位厚度薄板上的外力虚功。于是,式(8-11)所示虚功方程可写成 ??**=tdxdy F T T σεδ (8-11) 虚功方程不仅仅应用于弹性力学,也可用于塑性力学。其应用条件是:只要变形体的全部外力和应力满足平衡方程;位移是微小的,并满足边界条件,位移与应变满足几何方程。

平面三角形单元Matlab程序

%变量说明 %NPOIN NELEM NVFIX NFORCE NNODE %总结点数,单元数,受约束边界点数,结点力数, 单元结点数 %COORD LNODS YOUNG POISS THICK %结构结点坐标数组,单元定义数组,弹性模量,泊松比,厚度 %FORCE FIXED BMA TX DMATX SMATX %节点力数组,约束信息数组,单元应变矩阵,单元弹性矩阵,单元应力矩阵%AREA HK ASLOD ASDISP FP1 %单元面积,总体刚度矩阵,总体荷载向量,结点位移向量,数据文件指针format short e clear FP1=fopen('C:\Users\Administrator\Desktop\input.txt','rt'); NPION=fscanf(FP1,'%d',1); %结点个数(结点编码总数)NELEM=fscanf(FP1,'%d',1); %单元个数(单元编码总数)NFORCE=fscanf(FP1,'%d',1); %结点荷载个数 NVFIX=fscanf(FP1,'%d',1); %受约束边界点数 YOUNG=fscanf(FP1,'%e',1); %弹性模量 POISS=fscanf(FP1,'%f',1); %泊松比 THICK=fscanf(FP1,'%d',1); %厚度 LNODS=fscanf(FP1,'%d',[3,NELEM])'; %单元定义数组(单元结点号)COORD=fscanf(FP1,'%f',[2,NPION])'; %结点坐标数组 FORCE=fscanf(FP1,'%f',[3,NFORCE])'; %结点力数组 FIXED=fscanf(FP1,'%d',[3,inf])'; %约束信息数组 %引用所需的全局变量 %global NPION NELEM COORD LNODS YOUNG POISS %global BMA TX DMATX SMA TX AREA %生成弹性矩阵D a=YOUNG/(1-POISS^2); DMATX(1,1)=1*a; DMATX(1,2)=POISS*a; DMATX(2,1)=POISS*a; DMATX(2,2)=1*a; DMATX(3,3)=(1-POISS)*a/2; for i=1:NELEM; %i为当前所计算的单元号 %计算当前单元的面积 AREA=det([1 COORD(LNODS(i,1),1) COORD(LNODS(i,1),2);... 1 COORD(LNODS(i,2),1) COORD(LNODS(i,2),2);... 1 COORD(LNODS(i,3),1) COORD(LNODS(i,3),2);])/2; end %生成应变矩阵B

matlab动力学分析程序详解

1 1.微分方程的定义 对于duffing 方程03 2 =++x x x ω ,先将方程写作??? --==3 1122 21x x x x x ω function dy=duffing(t,x) omega=1;%定义参数 f1=x(2); f2=-omega^2*x(1)-x(1)^3; dy=[f1;f2]; 2.微分方程的求解 function solve (tstop) tstop=500;%定义时间长度 y0=[0.01;0];%定义初始条件 [t,y]=ode45('duffing',tstop,y0,[]); function solve (tstop) step=0.01;%定义步长 y0=rand(1,2);%随机初始条件 tspan=[0:step:500];%定义时间范围 [t,y]=ode45('duffing',tspan,y0); 3.时间历程的绘制 时间历程横轴为t ,纵轴为y ,绘制时只取稳态部分。 plot(t,y(:,1));%绘制y 的时间历程 xlabel('t')%横轴为t ylabel('y')%纵轴为y grid;%显示网格线

2 axis([460 500 -Inf Inf])%图形显示范围设置 4.相图的绘制 相图的横轴为y ,纵轴为dy/dt ,绘制时也只取稳态部分。红色部分表示只取最后1000个点。 plot(y(end-1000:end ,1),y(end-1000:end ,2));%绘制y 的时间历程 xlabel('y')%横轴为y ylabel('dy/dt')%纵轴为dy/dt grid;%显示网格线 5.Poincare 映射的绘制 对于不同的系统,Poincare 截面的选取方法也不同 对于自治系统一般每过其对应线性系统的固有周期,截取一次 对于非自治系统,一般每过其激励的周期,截取一次 例程:duffing 方程03 2=++x x x ω 的poincare 映射 function poincare(tstop) global omega; omega=1; T=2*pi/omega;%线性系统的周期或激励的周期 step=T/100;%定义步长为T/100 y0=[0.01;0];%初始条件 tspan=[0:step:100*T];%定义时间范围 [t,y]=ode45('duffing',tspan,y0); for i=5000:100:10000%稳态过程每个周期取一个点 plot(y(i,1),y(i,2),'b.'); hold on;% 保留上一次的图形 end xlabel('y');ylabel('dy/dt');

平面三角形单元有限元程序设计

平面三角形单元有限元程序设计 P 9 m 9 m 一、题目 如图1所示,一个厚度均匀的三角形薄板,在顶点作用沿板厚方向均匀分布的竖向载荷。已知:P=150N/m,E=200GPa,=0、25,t=0、1m,忽略自重。试计算薄板的位移及应力分布。 要求: 1.编写有限元计算机程序,计算节 点位移及单元应力。(划分三角形单元,单元数不得少于30个); 2.采用有限元软件分析该问题(有 限元软件网格与程序设计网格必须一致),详细给出有限元软件每一步的操作过程,并将结果与程序计算结果进行对比(任选取三个点,对比位移值); 3.提交程序编写过程的详细报告及计算机程序; 4.所有同学参加答辩,并演示有限元计算程序。 有限元法中三节点三角形分析结构的步骤如下: 1)整理原始数据,如材料性质、荷载条件、约束条件等,离散结构并进行单元编码、结点编码、结点位移编码、选取坐标系。 2)单元分析,建立单元刚度矩阵。 3)整体分析,建立总刚矩阵。 4)建立整体结构的等效节点荷载与总荷载矩阵 5)边界条件处理。 6)解方程,求出节点位移。 7)求出各单元的单元应力。 8)计算结果整理。

一、程序设计 网格划分 如图,将薄板如图划分为6行,并建立坐标系,则 刚度矩阵的集成 建立与总刚度矩阵等维数的空矩阵,已变单元刚度矩阵的集成。 由单元分析已知节点、单元的排布规律,继而通过循环计算求得每个单元对应的节点序号。 通过循环逐个计算:(1)每个单元对应2种单元刚度矩阵中的哪一种; (2)该单元对应总刚度矩阵的那几行哪几列 (3)将该单元的单元刚度矩阵加入总刚度矩阵的对应行列 循环又分为3层循环:(1)最外层:逐行计算 (2)中间层:该行逐个计算 (3)最里层:区分为第 奇/偶 数个计算 X Y P X Y P 节点编号 单元编号

平面三角形单元有限元程序的设计说明

. . P 9 m 9 m 一、题目 如图1所示,一个厚度均匀的三角形薄板,在顶点作用沿板厚方向均匀分布的竖向载荷。已知:P=150N/m,E=200GPa,=0.25,t=0.1m,忽略自重。试计算薄板的位移及应力分布。 要求: 1.编写有限元计算机程序,计算节点位移及单元应力。(划分三角形 单元,单元数不得少于30个); 2.采用有限元软件分析该问题(有限元软件网格与程序设计网格必 须一致),详细给出有限元软件每一步的操作过程,并将结果与程序计算结果进行对比(任选取三个点,对比位移值); 3.提交程序编写过程的详细报告及计算机程序; 4.所有同学参加答辩,并演示有限元计算程序。 有限元法中三节点三角形分析结构的步骤如下: 1)整理原始数据,如材料性质、荷载条件、约束条件等,离散结构并进行单元编码、结点编码、结点位移编码、选取坐标系。 2)单元分析,建立单元刚度矩阵。 3)整体分析,建立总刚矩阵。 4)建立整体结构的等效节点荷载和总荷载矩阵 5)边界条件处理。 6)解方程,求出节点位移。 7)求出各单元的单元应力。 8)计算结果整理。 一、程序设计 网格划分 如图,将薄板如图划分为6行,并建立坐标系,则

刚度矩阵的集成 建立与总刚度矩阵等维数的空矩阵,已变单元刚度矩阵的集成。 由单元分析已知节点、单元的排布规律,继而通过循环计算求得每个单元对应的节点序号。 通过循环逐个计算:(1)每个单元对应2种单元刚度矩阵中的哪一种; (2)该单元对应总刚度矩阵的那几行哪几列 (3)将该单元的单元刚度矩阵加入总刚度矩阵的对应行列 循环又分为3层循环:(1)最外层:逐行计算 (2)中间层:该行逐个计算 (3)最里层:区分为第 奇/偶 数个计算 单元刚度的集成:[ ][][][][][]' '''''215656665656266256561661e Z e e e Z e Z e e e e k k k K k k k k k k +?++=? =?==?==?=?????? 边界约束的处理:划0置1法 X Y P X Y P 节点编号 单元编号

平面三角形与空间四面体之间的类比

平面三角形与空间四面体之间的类比 “类比是伟大的引路人,求解立体几何问题往往有赖于平面几何中的类比问题”(波利亚)。新教材中引入类比这一内容,从根本上改变了我以往对数学的看法。虽然我以前也知道到类比,但却不敢把它作为一种数学方法理直气壮地在课堂上讲授,让学生使用。如今总算可以放开手脚,大胆应用了。 首先,平面三角形是平面几何中的一个基本图形,而四面体是立体几何中的一个基本图形。二者之间有着密切的联系,同时它们之间的联系体现了平面与空间的联系,一维空间与二维空间的联系,进一步可能有助于对多维空间的理解。 一、从概念上看:三角形是边数最少的多边形,四面体是面数最少的多面体。 二、三角形的任意两边之和大于第三边。四面体任意三个面的面积之和大于第四个面的面积。 三、任意一个三角形都有一个外接圆,即不共线三点确定一个圆,这个圆圆心称为三角形的外心,外心是各边垂直平分线的交点,外心到三角形各顶点距离相等。任意一个四面体都有一个外接球,即不共面四点确定一个球;这个球的球心在四面体各个面内的射影是各个面的外心,且它到四面体各顶点的距离也相等。 四、任意一个三角形都有一个内切圆,圆心称为三角形的内心,内心到各边距离相等,是三内角平分线的交点; 且设三角形的周长为c,内切圆半径为r,则三角形的面积为。任意一个四面体都有一个内切球,球心到各个面的距离相等,是从六条棱出发的六个二面角的平分面的交点。且设四面体的表面积为S,内切球半径为R,则四面体的 体积为。 五、正三角形棱长为a时,周长为3a,面积为,高为,外接圆半径为,内切圆半径为。外接圆半径是内切圆半径的2倍。 正四面体棱长为a时,表面积为,高为,外接球半径为, 内切接球半径为。外接球半径是内切球半径的3倍。 六、任意三角形的三条中线交于一点,称为三角形的重心,重心到顶点的距离是它到对边中点距离的2倍。(重心定理)如图1所示:G为的重心。且 任意四面体的顶点与对面重心的连线交于一点,正是四面体的物理重心,且四面体的重心到顶点的距离是它到对面重心距离的3倍。(重心定理的推广) 如图2所示:E,F分别为的重心,AE与BF相交于点G,则G为四面体A-BCD的重心。 七、三角形中三个顶点的坐标分别为,

基于Matlab的相关频谱分析程序教程

Matlab 信号处理工具箱 谱估计专题 频谱分析 Spectral estimation (谱估计)的目标是基于一个有限的数据集合描述一个信号的功率(在频率上的)分布。功率谱估计在很多场合下都是有用的,包括对宽带噪声湮没下的信号的检测。 从数学上看,一个平稳随机过程n x 的power spectrum (功率谱)和correlation sequence (相关序列)通过discrete-time Fourier transform (离散时间傅立叶变换)构成联系。从normalized frequency (归一化角频率)角度看,有下式 ()()j m xx xx m S R m e ωω∞ -=-∞ = ∑ 注:()() 2 xx S X ωω=,其中()/2 /2 1 lim N j n n N n N X x e N ωω→∞=-=∑ πωπ-<≤。其matlab 近似为X=fft(x,N)/sqrt(N),在下文中()L X f 就是指matlab fft 函数的计算结果了 使用关系2/s f f ωπ=可以写成物理频率f 的函数,其中s f 是采样频率 ()()2/s jfm f xx xx m S f R m e π∞ -=-∞ = ∑ 相关序列可以从功率谱用IDFT 变换求得: ()()()/2 2//2 2s s s f jfm f j m xx xx xx s f S e S f e R m d df f πωπ π ωωπ--= =? ? 序列n x 在整个Nyquist 间隔上的平均功率可以表示为 ()()() /2 /2 02s s f xx xx xx s f S S f R d df f π π ωωπ- -= =?? 上式中的

平面三角形单元有限元程序设计

平面三角形单元有限元程序设计

P 9 m 9 m 一、题目 如图1所示,一个厚度均匀的三角形薄板,在顶点作用沿板厚方向均匀分布的竖向载荷。已知:P=150N/m,E=200GPa,=0.25,t=0.1m,忽略自重。试计算薄板的位移及应力分布。 要求: 1.编写有限元计算机程序,计算节点位移及单元应力。(划分三角形 单元,单元数不得少于30个); 2.采用有限元软件分析该问题(有限元软件网格与程序设计网格必 须一致),详细给出有限元软件每一步的操作过程,并将结果与程序计算结果进行对比(任选取三个点,对比位移值); 3.提交程序编写过程的详细报告及计算机程序; 4.所有同学参加答辩,并演示有限元计算程序。 有限元法中三节点三角形分析结构的步骤如下: 1)整理原始数据,如材料性质、荷载条件、约束条件等,离散结构并进行单元编码、结点编码、结点位移编码、选取坐标系。

2)单元分析,建立单元刚度矩阵。 3)整体分析,建立总刚矩阵。 4)建立整体结构的等效节点荷载和总荷载矩阵 5)边界条件处理。 6)解方程,求出节点位移。 7)求出各单元的单元应力。 8)计算结果整理。 一、程序设计 网格划分 如图,将薄板如图划分为6行,并建立坐标系,则 X Y P X Y P

边界约束的处理:划0置1法 适用:这种方法适用于边界节点位移分量为已知(含为0)的各种约束。 做法: (1)将总刚矩阵〔K〕中相应于已知位移行主对角线元素置1,其他元素改为零;同 时将载荷列阵{R}中相应元素用已知位移置换。 ◎这样,由该方程求得的此位移值一定等于已知量。 (2)将〔K〕中已知位移相应的列的非主对角成元素也置0,以保持〔K〕的对称性。 ◎当然,在已知位移分量不为零的情况下,这样做就改变了方程左端的数值,为 保证方程成立,须在方程右端减去已知位移对该方程的贡献——已知位移和相应总刚元素的乘积。◎若约束为零位移约束时,此步则可省去。 特点: (1)经以上处理同样可以消除刚性位移(约束足够的前提下),去掉未知约束反力。 (2)但这种方法不改变方程阶数,利于存贮。 (3)不过,若是要求出约束反力,仍要重新计算各个划去的总刚元素。 程序如下: 变量说明 NNODE 单元节点数 NPION 总结点数 NELEM 单元数 NVFIX 受约束边界点数 FIXED 约束信息数组 NFORCE 节点力数 FORCE 节点力数组

认识平面图形之三角形

认识平面图形之三角形 【知识框架】 1、图形分类(按不同标准给已知图形进行分类) 三角形的分类(认识直角三角形、锐角三角形、钝角三角形、等腰三角形、等边三角形) 2、三角形三角形内角和 3、三角形三边之间的关系 【知识要点】 图形分类三角形分类 1、把三角形按照不同的标准分类,并说明分类依据。 (1)按角分,分为:直角三角形、锐角三角形、钝角三角形,并了解其本质特征:三个角都是锐角的三角形是锐角三角形,有一个角是直角的三角形是直角三角形,有一个角是钝角的三角形是钝角三角形。 (2)按边分,分为:等腰三角形、等边三角形、任意三角形。有两条边相等的三角形是等腰三角形,三条边都相等的三角形是等边三角形。 2、通过分类,使学生弄清等腰三角形和等边三角形的关系:等边三角形是特殊 的等腰三角形。 三角形内角和 1、任意一个三角形内角和等于180度。 2、能应用三角形内角和的性质解决一些简单的问题。 三角形边的关系 1、三角形任意两边之和大于第三边。 2、根据上述知识点判断所给的已知长度的三条线段能否围成三角形。如果能围 成三角形,能围成一个什么样的三角形。 【公式概念】 1、围成三角形的条件:较短两条边长度的和一定大于第三条边。 2、从三角形的一个顶点到对边的垂直线段是三角形的高,这条对边是三角形的底。 3、三角形具有稳定性(也就是当一个三角形的三条边的长度确定后,这个三角形的形状和大小都不会改变),生活中很多物体利用了这样的特性。如:人字梁、斜拉桥、自行车车架。 4、三个角都是锐角的三角形是锐角三角形。(两个内角的和大于第三个内角。) 5、有一个角是直角的三角形是直角三角形。(两个内角的和等于第三个内角。两个锐角的和是90度。两条直角边互为底和高。) 6、有一个角是钝角的三角形是钝角三角形。(两个内角的和小于第三个内角。) 7、任意一个三角形至少有两个锐角,都有三条高,三角形的内角和都是180度。(锐角三角形的三条高都在三角形内;直角三角形有两条高落在两条直角边上;钝角三角形有两条高在三角形外)。 8、把一个三角形分成两个直角三角形就是画它的高。 9、两条边相等的三角形是等腰三角形,相等的两条边叫做腰,另外一条边叫做底,两条腰的夹角叫做顶角,底和腰的两个夹角叫做底角,它的两个底角也相等,是轴对称图形,有一条对称轴(跟底边高正好重合。)三条边都 第1页 相等的三角形是等边三角形,三条边都相等,三个角也都 相等(每个角都是60°,所有等边三角形的三个角都是60°。)

基于Matlab语言的按平面三角形单元划分的结构有限元程序设计

基于Matlab语言的按平面三角形单元划分的结构有限元程序设计 专业:建筑与土木工程 班级:建工研12-2 姓名:韩志强 学号: 471220580

基于Matlab语言的按平面三角形单元划分 结构有限元程序设计 一、有限单元发及Matlab语言概述 1. 有限单元法 随着现代工业、生产技术的发展,不断要求设计高质量、高水平的大型、复杂和精密的机械及工程结构。为此目的,人们必须预先通过有效的计算手段,确切的预测即将诞生的机械和工程结构,在未来工作时所发生的应力、应变和位移因此,需要寻求一种简单而又精确的数值分析方法。有限单元法正是适应这种要求而产生和发展起来的一种十分有效的数值计算方法。 有限元法把一个复杂的结构分解成相对简单的“单元”,各单元之间通过结点相互连接。单元内的物理量由单元结点上的物理量按一定的假设内插得到,这样就把一个复杂结构从无限多个自由度简化为有限个单元组成的结构。我们只要分析每个单元的力学特性,然后按照有限元法的规则把这些单元“拼装”成整体,就能够得到整体结构的力学特性。 有限单元法基本步骤如下: (1)结构离散:结构离散就是建立结构的有限元模型,又称为网格划分或单元划分,即将结构离散为由有限个单元组成的有限元模型。在该步骤中,需要根据结构的几何特性、载荷情况等确定单元体内任意一点的位移插值函数。 (2)单元分析:根据弹性力学的几何方程以及物理方程确定单元的刚度矩阵。 (3)整体分析:把各个单元按原来的结构重新连接起来,并在单元刚度矩阵的基础上确定结构的总刚度矩阵,形成如下式所示的整体有限元线性方程: {}[]{}δ F=① K 式中,{}F是载荷矩阵,[]K是整体结构的刚度矩阵,{}δ是节点位移矩阵。 (4)载荷移置:根据静力等效原理,将载荷移置到相应的节点上,形成节点载荷矩阵。 (5)边界条件处理:对式①所示的有限元线性方程进行边界条件处理。 (6)求解线性方程:求解式①所示的有限元线性方程,得到节点的位移。在该步骤中,若有限元模型的节点越多,则线性方程的数量就越多,随之有限元分析的计算量也将越大。 (7)求解单元应力及应变根据求出的节点位移求解单元的应力和应变。

平面图形的认识---三角形的认识综合提优(压轴题)

平面图形的认识---三角形的认识综合提优 如图,在△ABC中,AD平分∠BAC,P为线段AD上的一个动点,PE⊥AD交直线BC于点 E. (1)若∠B=35°,∠ACB=85°,求∠E的度数; (2)当P点在线段AD上运动时,猜想∠E与∠B、∠ACB的数量关系,写出结论无需证明。 已知如图,射线CB∥OA,∠C=∠OAB=100°,E、F在CB上,且满足∠FOB=∠AOB,OE 平分∠COF。 (1)求∠EOB的度数; (2)若平行移动AB,那么∠OBC∶∠OFC的值是否随之变化?若变化,找出变化规律;若不变,求出这个比值; (3)在平行移动AB的过程中,是否存在某种情况,使∠OEC=∠OBA?若存在,求出其度数;若不存在,说明理由。 如图,AD⊥BD,AE平分∠BAC,∠B=30°,∠ACE=110°.求∠AED的度数.

现有两块大小相同的直角三角板△ABC、△DEF,∠ACB=∠DFE=90°,∠A=∠D=30°. (1)将这两块三角板摆成如图①的形式,使B、F、E、A在同一条直线上,点C在边DF上,DE与AC相交于点G,试求∠AGD的度数; (2)将图①中的△ABC固定,把△DEF绕着点F逆时针旋转成如图②的形式,当旋转 的角度等于多少度时,DF∥AC?并说明理由. 如图,△ABC中,∠ABC=50°,∠ACB=70°,D为边BC上一点(D与B、C不重合),连接AD,∠ADB的平分线所在直线分别交直线AB、AC于点E、F. (1)求证:2∠AED-∠CAD=170°; (2)若∠ABC=∠ACB=n°,且D为射线CB上一点,(1)中其他条件不变,请直接写出∠AED与∠CAD的数量关系.(用含n的代数式表示)

matlab谐波分析程序

clc clear all; format long; Ns=1000; order=13; ! %**********************read the position and flux density************************ fid=fopen('','r'); %open the original file fidnew = fopen('','w'); %write the new file while feof(fid)==0 > tline = fgetl(fid); %tline if ~ischar(tline), break, end temp=abs(tline); Nlength=length(tline); isemptyline=0; % { if Nlength==0 isemptyline=1; end allspace=0; % 、 isspace=0; for i=1:Nlength T=temp(i); if T==32 isspace=isspace+1; % end if isspace==Nlength allspace=1; break end < end findalpha=0; % for j=1:Nlength T=temp(j); ! if ((T>=65)&(T>=90))|((T>=97)&(T>=122)) findalpha=1;

break; end end ) if (~findalpha)&(~allspace)&(isemptyline==0) % fprintf(fidnew,tline); fprintf(fidnew,'\n'); end - end fclose(fid); fclose(fidnew); fid1=fopen('','r'); · flux_position =fscanf(fid1,'%f',[2,Ns]); fclose(fid1); %********************************read file finish***************************************** flux_position=flux_position'; pos1=flux_position(:,1); { pos_delta=pos1(2); pos_length=length(pos1); pos_last=pos1(pos_length); for i=1:1:pos_length %copy and get another part of position pos2(i)=pos_last+i*pos_delta; ( end pos1=pos1'; flux1=flux_position(:,2); flux2=-flux_position(:,2); pos=[pos1,pos2];%combine and get all part of position > flux1=flux1'; flux2=flux2'; flux=[flux1,flux2];%combine and get all part of flux density value figure; plot(pos1,flux1,'r');%plot origional waveform " hold on; grid on; fft1=fft(flux,Ns);

平面三角形单元有限元程序设计

P 9 m 9 m 一、题目 如图1所示,一个厚度均匀的三角形薄板,在顶点作用沿板厚方向均匀分布的竖向载荷。已知:P=150N/m,E=200GPa,=,t=,忽略自重。试计算薄板的位移及应力分布。 要求: 1.编写有限元计算机程序,计算节点位移及单元应力。(划分三角形 单元,单元数不得少于30个); 2.采用有限元软件分析该问题(有限元软件网格与程序设计网格必 须一致),详细给出有限元软件每一步的操作过程,并将结果与程序计算结果进行对比(任选取三个点,对比位移值); 3.提交程序编写过程的详细报告及计算机程序; 4.所有同学参加答辩,并演示有限元计算程序。 有限元法中三节点三角形分析结构的步骤如下: 1)整理原始数据,如材料性质、荷载条件、约束条件等,离散结构并进行单元编码、结点编码、结点位移编码、选取坐标系。 2)单元分析,建立单元刚度矩阵。 3)整体分析,建立总刚矩阵。 4)建立整体结构的等效节点荷载和总荷载矩阵 5)边界条件处理。 6)解方程,求出节点位移。 7)求出各单元的单元应力。 8)计算结果整理。 一、程序设计

网格划分 如图,将薄板如图划分为6行,并建立坐标系,则 X Y P X Y P 节点编号 单元编号

刚度矩阵的集成 建立与总刚度矩阵等维数的空矩阵,已变单元刚度矩阵的集成。 由单元分析已知节点、单元的排布规律,继而通过循环计算求得每个单元对应的节点序号。 通过循环逐个计算:(1)每个单元对应2种单元刚度矩阵中的哪一种; (2)该单元对应总刚度矩阵的那几行哪几列 (3)将该单元的单元刚度矩阵加入总刚度矩阵的对应行列 循环又分为3层循环:(1)最外层:逐行计算 (2)中间层:该行逐个计算 (3)最里层:区分为第奇/偶数个计算 单元刚度的集成: [][] [][] [][] ' ' ' ' ' ' 2 1 56 56 6 6 56 56 2 6 6 2 56 56 1 6 6 1 e Z e e e Z e Z e e e e k k k K k k k k k k + ? + + = ? = ? = = ? = = ? = ? ? ? ? ? ? 边界约束的处理:划0置1法 适用:这种方法适用于边界节点位移分量为已知(含为0)的各种约束。 做法: (1)将总刚矩阵〔K〕中相应于已知位移行主对角线元素置1,其他元素改为零;同 时将载荷列阵{R}中相应元素用已知位移置换。 ◎这样,由该方程求得的此位移值一定等于已知量。 (2)将〔K〕中已知位移相应的列的非主对角成元素也置0,以保持〔K〕的对称性。 ◎当然,在已知位移分量不为零的情况下,这样做就改变了方程左端的数值,为 保证方程成立,须在方程右端减去已知位移对该方程的贡献——已知位移和相应总刚元素的乘积。◎若约束为零位移约束时,此步则可省去。 特点: (1)经以上处理同样可以消除刚性位移(约束足够的前提下),去掉未知约束反力。 (2)但这种方法不改变方程阶数,利于存贮。

相关文档
最新文档