MatLab在有限元刚度矩阵推导中的应用
MATLAB在线性四面体有限元分析中的应用

Matlab在线性立体有限元分析中的应用摘要:Matlab具有强大的运算功能,本文以线性四面体元为例,详细介绍MATLAB在刚度矩阵推导,静力结构等有限元分析中的具体应用,编写了刚度矩阵,引用边界条件以及后处理各步骤的程序,该方法可以进一步推广到其他单元甚至更复杂的结构分析中。
关键词:Matlab 有限元刚度矩阵0 引言Matlab是美国MathWork公司开发的用于数值计算,算法研究,建模仿真,实时实现的理想集成环境,因其完整的专业体系和强大的运算功能已广泛应用于工业、电子、信号处理、控制、建筑、教学等各个领域。
有限元是近代数值计算最有效方法之一.有限元法的基础是单元划分以及刚度矩阵的推导,目前,有限元分析已有一个相对固定的模式,而烦琐、复杂的矩阵运算、微分、积分是分析过程中的主要内容.通常,这种矩阵运算是由手工来完成的,工作量大,而且极易出错.利用MatLab丰富的符号运算功能,构建有限单元模型,完成刚度矩阵推导及后处理过程中的运算,不但速度快,而且准确性高。
利用Matlab编写函数M文件并在运算过程中调用,能够依据具体问题对模型进行分析运算,并能在类似问题中得到推广应用。
1 线性四面体有限元分析中的基本方程线性四面体(立体)元(liner tetrahedral(solid)element)是既有局部坐标又有总体坐标的三维有限元,用线性函数描述。
线性四面体元的系数有弹性模量E 和泊松比ν,每个线性四面体与元有四个节点并且每个节点有三个自由度,如图1所示。
这四个节点的总体坐标用111x (,y ,z )、222x (,y ,z )、333x (,y ,z )、444x (,y ,z )表示。
单元刚度矩阵给定如下:[][][][]T k V B D B = (1.1)式中V 是单元的体积,由下式给出:11122233344411611x y z x y z V x y z x y z =(1.2)图1 线性四面体(立体)元 矩阵[]B 由下式(1.3)确定:[]312431243124331122443311224431122000000000000000000000000000000000x x x x y y y y z z z z y x y x y x y x z y z y z y z y zxzxN N N N N N N N N N N N B N N N N N N N N N N N N N N N N N N N N N ∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂=∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂∂3440zxzx N N N ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥∂∂∂⎢⎥⎢⎥∂∂∂⎣⎦在方程(1.3)中,形函数由下式给出:111111()6N x y z V αβγδ=+++222221()6N x y z V αβγδ=+++333331()6N x y z Vαβγδ=+++444441()6N x y z Vαβγδ=+++ (1.4)在方程(1.1)中,矩阵[]D 由下式(1.5)确定:[]10001000100012000002(1)(12)120000021200002E D νννννννννννννν-⎡⎤⎢⎥-⎢⎥⎢⎥-⎢⎥-⎢⎥=⎢⎥+-⎢⎥-⎢⎥⎢⎥⎢⎥-⎢⎥⎣⎦2 建立的Matlab 函数TetrahedronElementV olume(x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4),该函数根据给出的第一个节点坐标111(,,)x y z ,第二个节点坐标222(,,)x y z ,第三个节点坐标333(,,)x y z 和第四个节点坐标444(,,)x y z 返回单元的体积。
MATLAB有限元分析与应用精选全文完整版

%SpringElementForces This function returns the element nodal force
%
vector given the element stiffness matrix k
%
and the element nodal displacement vector u.
2019/11/28
§2-1 弹簧元
u1=U(1:2); f1=SpringElementForces(k1,u1);
f1 = -15.0000 15.0000
u2=U(2:3); f2=SpringElementForces(k2,u2);
f2 = -15.0000 15.0000
12
§3-1 弹簧元
%
modulus of elasticity E, cross-sectional
%
area A, and length L. The size of the
%
element stiffness matrix is 2 x 2.
y = [E*A/L -E*A/L ; -E*A/L E*A/L];
2019/11/28
3.1 单元刚度矩阵的形成
function y = SpringElementStiffness(k)
%SpringElementStiffness This function returns the element stiffness %matrix for a spring with stiffness k. %The size of the element stiffness matrix is 2 x 2.
matlab有限元刚度矩阵编程

一、概述有限元方法是工程学和科学领域中常用的数值分析工具,用于求解复杂的结构力学问题。
在有限元分析中,刚度矩阵是一个重要的概念,它描述了结构的刚度性质,并可以用于求解结构的位移、应力和应变分布。
MATLAB是一款功能强大的数学软件,它提供了丰富的工具和函数,可以用于编程求解有限元刚度矩阵。
本文将介绍如何使用MATLAB编程求解有限元刚度矩阵,并给出详细的步骤和代码示例。
二、有限元刚度矩阵的理论基础有限元分析的基本思想是将一个复杂的结构分解成许多小的单元,每个单元都可以用简单的数学方程描述。
在有限元分析中,每个单元都有一个刚度矩阵,它描述了单元的刚度性质。
结构的总刚度矩阵可以通过合并所有单元的刚度矩阵得到。
总刚度矩阵可以用于求解结构的位移、应力和应变分布,是有限元分析的核心之一。
三、MATLAB编程求解有限元刚度矩阵的步骤在MATLAB中,可以通过以下步骤编程求解有限元刚度矩阵:1. 定义结构的几何形状和材料性质,确定结构的边界条件和加载条件。
2. 将结构分解成有限元单元,根据单元的几何形状和材料性质建立单元的刚度矩阵。
3. 合并所有单元的刚度矩阵,得到结构的总刚度矩阵。
4. 根据边界条件和加载条件,求解结构的位移。
5. 根据结构的总刚度矩阵和位移,计算结构的应力和应变分布。
四、MATLAB编程求解有限元刚度矩阵的代码示例以下是一个简单的MATLAB代码示例,用于求解一维弹簧元的刚度矩阵:```MATLAB定义弹簧元的长度和弹性模量L = 1;E = 1;计算弹簧元的刚度矩阵k = E * A / L;K = [k, -k; -k, k];```以上代码示例中,我们首先定义了弹簧元的长度L和弹性模量E,然后通过公式计算了弹簧元的刚度矩阵K。
这是一个简单的一维情况,实际工程中可能涉及到更复杂的二维、三维情况,但基本的求解步骤是相似的。
五、总结MATLAB是一个强大的数学软件,可以用于编程求解有限元刚度矩阵。
工程构件受力和刚度计算的MATLAB分析法

工程构件受力和刚度计算的MATLAB分析法工程构件受力和刚度计算是结构设计和分析中非常重要的一部分,它涉及到对构件受力和刚度进行计算的理论基础和方法。
而MATLAB作为一种广泛应用于科学计算和工程领域的软件工具,其强大的数学和算法功能使得其成为进行工程构件受力和刚度计算的理想选择。
在进行工程构件的受力和刚度计算时,首先需要建立合适的受力与形变模型。
其次,需要根据受到的外力和形变条件,建立构件的力平衡方程和形变方程。
最后,利用MATLAB的数值计算功能,对这些方程进行求解,以获得构件的受力和刚度。
在进行受力计算时,常用的方法包括静力方法、动力方法和有限元方法等。
其中,静力方法基于构件的受力平衡条件,通过求解受力方程组得到构件的受力分布。
动力方法则基于构件的振动特性,利用动力学方程求解得到构件的受力状态。
而有限元方法则是将结构离散为有限数量的单元,通过求解单元的刚度矩阵和载荷矩阵得到整个结构的受力情况。
在进行刚度计算时,常用的方法包括弹性刚度法和刚度矩阵法等。
其中,弹性刚度法是基于构件材料的弹性行为,通过求解弹性力学方程得到构件的刚度。
刚度矩阵法则是将结构离散为有限数量的节点,通过求解节点的刚度矩阵和载荷矩阵得到整个结构的刚度。
利用MATLAB进行工程构件受力和刚度计算时,用户可以编写自定义的函数和脚本来实现对受力和刚度方程的求解。
MATLAB提供了丰富的数学函数和工具箱,包括线性方程组的求解、特征值和特征向量的计算、矩阵运算等功能,这些功能可以大大简化受力和刚度计算的过程。
用户可以使用MATLAB的函数库来进行构件的受力和刚度计算,也可以根据实际需要进行函数的编写和修改。
总之,MATLAB分析法在工程构件受力和刚度计算中具有广泛的应用前景。
它通过提供强大的数学和算法功能,简化了受力和刚度计算的过程,并且可以根据实际需要进行函数的编写和修改。
工程师和科研人员可以利用MATLAB进行受力和刚度计算,以实现对工程构件的准确设计和分析。
Matlab有限元分析操作基础

Matlab有限元分析操作基础Matlab 有限元分析20140226为了用Matlab 进行有限元分析,首先要学会Matlab 基本操作,还要学会使用Matlab 进行有限元分析的基本操作。
1. 复习:上节课分析了弹簧系统x 推导了系统刚度矩阵1122121200k k k k k k k k ----+??2. Matlab有限元分析的基本操作(1)单元划分(选择何种单元,分成多少个单元,标号)(2)构造单元刚度矩阵(列出…)(3)组装系统刚度矩阵(集成整体刚度矩阵)(4)引入边界条件(消除冗余方程)(5)解方程(6)后处理(扩展计算)3. Matlab有限元分析实战【实例1】分析:步骤一:单元划分步骤二:构造单元刚度矩阵>>k1=SpringElementStiffness(100) >>…?步骤三:构造系统刚度矩阵a) 分析SpringAssemble库函数function y = SpringAssemble(K,k,i,j)% This function assembles the element stiffness% matrix k of the spring with nodes i and j into the % global stiffness matrix K.% function returns the global stiffness matrix K% after the element stiffness matrix k is assembled. K(i,i) = K(i,i) + k(1,1);K(i,j) = K(i,j) + k(1,2);K(j,i) = K(j,i) + k(2,1);K(j,j) = K(j,j) + k(2,2);y = K;b) K是多大矩阵?今天的系统刚度矩阵是什么?因为11221212k kk kk k k k----+所以10001000200200 100200300----c) K=SpringAssemble(K,k1,1,2) function y = SpringAssemble(K,k,i,j) K(i,i) = K(i,i) + k(1,1);K(i,j) = K(i,j) + k(1,2);K(j,i) = K(j,i) + k(2,1);K(j,j) = K(j,j) + k(2,2); 1100100100100k -??=??-??10010001001000000K -??=-??K=SpringAssemble(K,k2,2,3) 1200200200200k -??10010001003002000200200K -??=---??1001000100010010030020002002000200200100200300----≠----步骤四:引入边界条件,消除冗余方程>>k=K(2:3,2:3)%构造不含冗余的方程>>f=[0;15]%构造外力列阵步骤五:解方程引例:已知1212u 31u u u +=??-=?,求 12u u 和解:类似求解KU=F ,输入下列Matlab 命令:>> K=[1 1;1,-1]>> F=[3;1]>> U=inv(K)*F>> U=K \F(继续弹簧系统求解)>>u=k \f %使用高斯消去法求解>>U=[0 ; u]%构造原方程组>>F=K*U %求出所有外力,含多余计算步骤六:后处理、扩展计算>>u1=[0;U(2)]%构造单元位移>>f1=SpringElementForces(k1,u1)%求单元1内力>>u2=[U(2) ; U(3)]%构造单元2位移>>f2=SpringElementForces(k2,u2)%求单元2内力4. 总结clck1=SpringElementStiffness(100)%创建单元刚度矩阵 1 k2=SpringElementStiffness(200)%创建单元刚度矩阵 2 K=zeros(3,3)%创建空白整体刚度矩阵K=SpringAssemble(K,k1,1,2)%按节点装入单元矩阵 1 K=SpringAssemble(K,k2,2,3)%按节点装入单元矩阵2 k=K(2:3,2:3)%构造不含冗余的方程f=[0;15]%构造外力列阵u=k\f%使用高斯消去法求解U=[0 ; u]%构造系统节点位移列阵F=K*U%求出所有外力,含多余计算u1=[0;U(2)]%构造单元位移f1=SpringElementForces(k1,u1)%求单元1内力u2=[U(2) ; U(3)]%构造单元2位移f2=SpringElementForces(k2,u2)%求单元2内力5. 练习1 Danyi 132 dan 34 3dan 35 4dan 35 dan5 54 dan6 42。
第三章MATLAB有限元分析与应用

第三章MATLAB有限元分析与应用有限元分析(Finite Element Analysis, FEA)是一种工程计算方法,用于解决结构力学和流体力学等问题。
它将一个复杂的结构分割成多个简单的离散单元,通过建立数学模型和求解方程组,得到结构的力学、热力学和流体力学等性能参数。
MATLAB是一种功能强大的数学计算软件,具有直观的用户界面和丰富的工具箱,可以方便地进行有限元分析。
本章将介绍在MATLAB中进行有限元分析的基本步骤和方法,以及一些常见的应用例子。
首先,进行有限元分析需要将结构进行离散化。
常用的离散化方法有节点法和单元法。
节点法是将结构的几何形状划分为小的节点,并在节点上进行计算。
单元法是将结构划分为多个小的单元,并在每个单元内进行计算。
在MATLAB中,可以通过创建节点和单元的矩阵来描述结构和单元的关系。
例如,创建一个2D结构形式的节点矩阵:nodes = [0 0; 1 0; 0 1; 1 1];然后,通过创建描述节点连接关系的矩阵,来定义结构的单元:elements = [1 2 3; 2 4 3];这里的每一行代表一个单元,数字表示节点的编号。
接下来,需要定义材料的力学参数和边界条件。
材料的力学参数包括弹性模量、泊松比等。
边界条件包括支座约束和加载条件。
在MATLAB中,可以通过定义力学参数和边界条件的向量来描述。
例如,定义弹性模量和泊松比的向量:E=[200e9200e9];%弹性模量nu = [0.3 0.3]; % 泊松比定义支座约束的向量(1表示固定,0表示自由):constraints = [1 1; 0 0; 0 1; 0 1];定义加载条件的向量(包括点力和面力):最后,通过求解方程组得到结构的应力和位移等结果。
在MATLAB中,可以利用有限元分析工具箱中的函数进行计算。
例如,可以使用“assem”函数将节点和单元的信息组装成方程组,并使用“solveq”函数求解方程组。
matlab有限元切线刚度矩阵编程

题目:使用MATLAB编程实现有限元切线刚度矩阵计算一、引言有限元法是一种用于求解复杂工程问题的数值分析方法,它将连续介质划分为许多小的单元,通过对每个单元进行离散化处理,再用数学方法对这些单元进行组装,最终得到整个结构的解。
在有限元方法中,刚度矩阵是求解结构问题的关键步骤之一,而有限元切线刚度矩阵的计算则是其中的重要内容之一。
本文将介绍如何使用MATLAB编程实现有限元切线刚度矩阵的计算。
二、有限元切线刚度矩阵的基本概念1. 切线刚度矩阵在有限元方法中,切线刚度矩阵是描述结构对外部载荷作用下的应变-应力关系的重要矩阵。
它描述了结构在外部载荷下的变形行为,是求解结构变形和应力的重要工具。
2. 切线刚度矩阵的计算切线刚度矩阵的计算是通过对单元的局部坐标系进行刚度矩阵的求解,并进行坐标变换得到全局坐标系下的切线刚度矩阵。
在实际计算中,需要考虑单元的几何形状、材料性质等因素,以及在单元上施加的外部载荷。
三、MATLAB编程实现有限元切线刚度矩阵的基本步骤1. 单元刚度矩阵的计算我们需要编写MATLAB函数来实现对单元刚度矩阵的计算。
这个函数需要考虑单元的几何形状、材料性质等因素,以及在单元上施加的外部载荷。
通常情况下,我们可以利用数值积分的方法来进行刚度矩阵的计算。
2. 坐标变换矩阵的计算在得到单元刚度矩阵之后,我们需要计算坐标变换矩阵,将单元刚度矩阵从局部坐标系变换到全局坐标系。
这也需要编写一个MATLAB函数来实现坐标变换矩阵的计算。
3. 矩阵组装我们需要将所有单元的切线刚度矩阵组装成整体刚度矩阵。
这通常需要考虑到单元之间的连接关系,以及边界条件等因素。
在MATLAB中,我们可以利用矩阵的组合和相加等运算来实现整体刚度矩阵的计算。
四、编程实例这里我们以一个简单的弹簧-弹簧系统为例,介绍如何使用MATLAB编程实现有限元切线刚度矩阵的计算。
我们需要定义系统的几何形状、材料性质等参数,然后编写MATLAB函数来进行刚度矩阵的计算,坐标变换矩阵的计算,以及矩阵的组装,最终得到整体刚度矩阵,并求解系统的变形和应力。
最新MATLAB在有限元分析方法中的应用PPT

PlaneFrameElementStiffness:
PlaneFrameAssemble:
PlaneFrameElementForces:
PlaneFrameElementAxialDiagram:
PlaneFrameElementShearDiagram PlaneFrameElementMomentDiagram PlaneFrameInclinedSupport——(T) ............
2、可视化及强大的图形功能。
(1)绘图 (2)界面编制
3、含有多种学科的工具箱[ToolBox]以及 程序代码的公开性。
4、程序可移植性好。
二、有限元方法的步骤:
一、离散化域 二、形成单元刚度矩阵 三、集成整体刚度矩阵 四、引入边界条件 五、求解方程 六、后处理
2020/11/11
8
简例: ——平面刚架元
实例:如图所示刚架, 已知各杆EI及A均相同, 且 A=2*10-2m2, I=5*10-5m4,E=210GPa.
PlaneFrameElementStiffness:
PlaneFrameAssemble:
整体刚度矩阵:
引入边界条件:
KUF
后处理:
四、结论和展望
Simple,Powerful and free
结束语
谢谢大家聆听!!!
39
MATLAB在有限元分析方法 中的应用PPT
一、“MATLAB”
1、前置处理 2、求解器 3、后置处理
Simple,Powerful and free
有限元软件的基本模块: 1、前置处理 2、求解器 3、后置处理
C、C++、Fortran等/MATLAB
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第26卷第2期重庆交通学院学报v01.26No.22007年4月JOURNALOFCHONGQING:姒07rONGUNⅣERSrrYApr..2007·____I____目一rr自目l_==日日一MatLab在有限元刚度矩阵推导中的应用周水兴1’2,陈山林1(1.重庆大学,重庆400045;2.重庆交通大学土木建筑学院,重庆400074)摘要:MatLab具有强大的符号运算功能.以平面梁单元刚度矩阵为例,详细介绍MatLab在单元刚度矩阵推导中的具体应用,编写了平面梁单元刚度符号运算程序,运算结果与手工推导完全一致,该方法可进一步推广到其它单元甚至到更复杂非线性单元刚度矩阵推导中.关键词:MatLab;符号运算;刚度矩阵;推导中图分类号:0242.21文献标识码:A文章编号:1001.716X(2007)02.0029.03MatLabApplicationtotheMatrixDeductionofFiniteElementStiffnessZHOUShui—xin91..。
CHENShan.1inl(1.ChongqingUniversity,Chongqing400045,China;2.SchoolofCivilEngineering&Architecture,ChongqingJiaotongUniversity,Chongqing400074,China)Abstract:MatLabhasstrongsymbolicoperationfunction.Withtheexampleofstiffnessmatrixofplanebeamelement,theapplicationofdeducingelementstiffnessmatrixisintroducedindetailforthefirsttime,andthesymbolicoperationprocedureofplanebeamelementisdevdoped,andtheoperationresultiscompletelyinaccordancewiththehandicraftdeduction.Thismethodcanfurtherexpandtheapplicationofdeducingmatrixtootherelementsmorecomplicatednonlinearelement.KeywordsiMatl.ab,symbolicoperation,elementstiffnessmatrix,deduceMatLab是美国MathWork公司开发的用于数值计算、概念设计、算法研究、建模仿真、实时实现理想的集成环境,因其完整的专业体系和强大的运算功能,已广泛应用于工业、电子、信号处理、控制、医疗、建筑、教学等各个领域….MatLab本意是矩阵实验室(MatrixLaboratory),以向量和矩阵运算为基础,强大的数值计算功能是其最具代表性的特点.MatLab的数学计算包括数值计算和符号计算,前者主要用于矩阵、向量的各种数值计算;后者主要是计算式中带有符号变量、表达式的运算.该运算符由符号数学工具箱提供支持,有复合、简化、微分、积分及求解代数方程和微分方程的工具.MatLab符号数学工具箱中的工具建立在功能强大的Maple软件基础上.有限元是近代数值计算最有效方法之一.有限元法的基础是单元刚度矩阵的推导,目前,刚度矩阵推导已有一个相对固定的模式,而烦琐、复杂的矩阵运算、微分、积分是刚度矩阵推导中的主要内容.通常,这种矩阵运算是由手工来完成的,工作量大,而且极易出错.利用MatLab丰富的符号运算功能,完成刚度矩阵推导过程中的符号运算,不但速度快,而且准确性高.Maflab的命令和函数相当多,本文仅就涉及到MatLab符号运算作一些简要介绍,然后结合平面梁单元刚度矩阵的推导,用MatLab完成该单元刚度矩阵的符号运算,结果完全一致.1MatLab符号运算的一般规定1.1符号标变量和表达式的创建收稿日期:2006-02-07;修订日期:2006-02-23基金项目:重庆市教委项目(KJ050407);交通部西部交通建设科技项目(20033188142024)作者简介:周水兴(1967-),男,浙江嘉兴人,教授,主要从事桥梁设计理论研究.e-mall:shuixingzhou@cquc.edu.cn30重庆交通学院学报第26卷MatLab中符号标量、变量和表达式是通过命令sym、syms来创建的.如:>>x=sym(’x’);>>abc=sym(’alpha’)>>fun=sym(’a宰x'2+b'lcX+c’)这里,>>是MatLab命令提示符,上述命令中前两个创建符号标量x,alpha,最后一个创建符号表达式a木x2+b半x+c.对符号表达式,还需指定表达式中的各个标量,如a,b,C,X.MatLab中,除了上面介绍的方法外,还提供了一种简洁的方法,syms命令,如:>>symsabCX1.2符号矩阵在MatLab中,符号矩阵的元素为符号表达式,可用函数sym产生,如:>>S=sym(’[x,Y,z;a,b,c;u,v,W]’)该命令等价于:>>symsxYzabcuVW>>S=[x,Y,z;a,b,c;u,v,w]两者效果是一致的.对数值矩阵,也可以用sym把数值矩阵转换为符号形式.在转换过程中,函数sym尽可能地把数值矩阵中的非整元素指定为小的整数之比,以有理方式表示,如果元素是无理数,则在符号形式中sym将用符号浮点数表示元素.1.3符号矩阵的化简和格式化符号运算后,符号表达式有时非常复杂,为此,MatLab提供了能够化简复杂符号表达式的诸多命令,有pretty(用于将符号表达式以常用方式显示)、collect(用于将表达式中同类项合并、合并后的多项式以变量的幂次方按大小依次排列)、expand(用于展开符号表达式中的各项子式)、factor(用于符号分解)、subs(较长子表达式的置换)、simplify(用于符号表达式中进行等式的恒等替换)、simple等.1.4符号微积分Matlab符号工具箱中提供了多种符号表达式的微分diff和积分int函数形式,有:diff(f),diff(f,’t’),dill(f,n),diff(f,’t’n),int(f),int(f,’t’),int(f,a,b),int(f,’t’,a,b)和int(f,’m’,’n’).有关微分diff和积分int的详细内容可参考MatLab教程,这里不再赘述.2平面梁单元刚度矩阵为便于读者更好的理解MatLab在单元刚度矩阵推导中的应用,文中简要列出了平面梁单元刚度矩阵的推导过程.2.1平面梁单元位移模式‘21对平面梁单元,单元的位移模式为Ⅱ=ao+aI石(1)秽=bo+bl省+62菇2+bsx3(2)单元节点位移列向量:…。
=[u;吼0i叶吩岛]7利用单元ij的边界条件,解出上述系数,有u=[(1一x/1)00x/l00]{6}。
=札(髫){艿}。
(3)tJ=[0(1—3x2/12+2戈3/Z3)(%一2x2/l+菇3/22)0(3x2/12—2x3/13)(一搿2/Z+戈3/Z2)]{艿}。
=[^L(菇)]{6}。
(4)2.2用结点位移表示应变和应力忽略剪切影响,梁单元受到拉压和弯曲变形后的线应变为:…=hdu/d…x:)=一■…。
=[B]{艿}。
(5)式中,[日]:∥引,1L一∥:(髫)J(6)[B]为应变矩阵.由胡克定律,单元中的应力表达式为:{矿}=[D]{占}=[D][B]{艿}‘(7)2.3梁单元刚度矩阵根据虚位移原理,梁单元刚度矩阵为[k]=『JJ[B]’[D][B]dy(8)3符号矩阵的运算3.1应变矩阵[B]的计算应变矩阵中,有两个形函数表达式[札(菇)]、[见(石)]的微分,在Matlab中定义应变矩阵和微分的程序段如下:Nu=[1一x/L00x/L00]%定义形函数矩阵NuNv=[01—3,lcx'2/L'2+2,lcx'3/L3戈一2拳x'2/L+x^3/L'203’lcx'2/L"2—2木x^3/L^3一x'2/L+x^3/L'。
2]B=[diff(Nu,’菇’,1);一Y术diff(Nv,’戈’,2)]%两个形函数分别进行变量戈一阶微分,然后形成第2期周水兴等:MatLab在有限元刚度矩阵推导中的应用31应变矩阵[B]上述3个语句已经形成应变矩阵[B],接下来就可以对刚度矩阵[K]进行积分.从语句B=[diff(Nu,’并’,1);一Y水diff(Ⅳ匆,’茁’,2)]可以看出,MatLab由低维矩阵组成高维矩阵的方法非常简单,而且在形式上没有变化,容易被初学者理解,可见其卓越的功能.3.2刚度矩阵【K]积分和化简D=[E0;OE]%定义弹性矩阵K=B’枣D木B%矩阵相乘[B]+[D][B]K=int(K,’x’,’O’,’L’)%对矩阵K中的每个元素沿长度方向积分K=int(K,’Y’,’一h/2’,’h/2’)%矩阵K沿截面高度y方向积分K=int(K,’K’,’一W/2’,’W/2’)%矩阵K沿截面宽度积分K=subs(K,’h‘3,lcW’,’12乖I’)%将矩阵中的h3木W用121替换K=subs(K,’h水W’,’A’)%将矩阵中的h宰W用A替换K=simplify(K)%积分后作恒等变换结果如下:[1/L枣E球A,0,0,一1/L水E木A,0,0J[0。
12/L^3术E书I,6/L‘2书EjlcI,O,一12/L^3,IcE术I,6/L'2'lcE,lcI]~[0,6/L'2水E冰I,4/L木E木I,0,一6/L‘2水E,IcI,2/L,IcE木I]K=.[一1/L木E,I‘A,0,0,1/L水E,IcA,0,0][0,一12/L^3水EjIcI,一6/L。
2木E木I,0,12/L^3术E宰I,一6/L‘2=lcE水I][0,6/L"2术E木I,2/L宰E木I,0,一6/L。
‘2水EI,4/Ljl:E木I]运算结果与平面梁单元刚度矩阵完全一致心].用该方法,已经成功地导出了空间梁单元几何非线同理,只需再增加几个语句,就可以快速地推导出等性大位移矩阵、初应力矩阵,为编写有限元程序奠定效荷载矩阵.了基础.特别指出的是,空间梁单元几何非线性中的上述程序可以用M文件保存,稍加修改可应用大位移矩阵,由于符号运算工作量巨大,在目前的书到其它单元刚度矩阵的推导中.籍中只介绍其理论,没有给出其显式刚度矩阵.对4结语此,我们将另文作专门介绍.本文以平面梁单元为例,详细介绍了MatLab在有限元刚度矩阵推导中的应用,不但为工程技术人员节省了大量的时间和精力,而且极大提高工作效率,对初学者深刻理解和运用有限元非常具有帮助.虽然文中以平面梁单元为例介绍其方法,但其中的原理和方法可十分方便地推广到其它单元刚度矩阵,甚至是非线性刚度矩阵的推导中,对此,我们利参考文献:[1]飞思科技产品研发中心.MatLab7基础与提高[M].北京:电子工业出版社,2005.[2]谢贻权,何福保.弹性和塑性力学中的有限单元法[M].北京:机械工业出版社,1981.●●●-●-……-_●-…-,-●-一●--●●…一…-……--●●-_●-●●-●●一●●_-●-●●-●-…●●●-●。