MATLAB有限元分析与应用
matlab 程序 2d有限元方法
matlab 程序2d有限元方法全文共四篇示例,供读者参考第一篇示例:有限元方法是一种数值计算方法,旨在解决工程结构、力学和热力学等领域的复杂问题。
这种方法通过将一个连续的问题离散化为无限多的小单元,然后通过求解每个小单元的方程来逼近整个问题的解。
有限元方法在解决非线性、非定常、多物理场耦合等复杂问题上表现出色,因此在工程领域得到了广泛应用。
2D有限元方法是指在二维平面上建立有限元模型,然后求解其方程得到问题的解。
在MATLAB中,构建2D有限元模型的步骤大致分为三个阶段:几何建模、网格剖分和有限元分析。
首先是几何建模阶段,即对求解问题的几何形状进行建模。
这一步通常通过MATLAB中的绘图函数绘制图形,定义节点和单元信息。
这个阶段的难点在于如何准确表达问题的几何形状和边界条件,因为这将直接影响到后续的网格划分和求解结果的准确性。
接着是网格剖分阶段,即将几何形状离散化为小单元。
在MATLAB中,可以利用自带的网格生成函数或者第三方的网格生成工具箱来生成有限元网格。
网格的质量和密度对求解结果的准确性有很大影响,因此在网格剖分时需要谨慎选择参数和方法。
最后是有限元分析阶段,即对离散化后的有限元模型进行求解。
在MATLAB中,可以利用现成的有限元求解函数来求解线性或非线性方程。
在求解过程中,需要考虑边界条件的处理、材料参数的输入和求解精度的控制等因素,以保证求解的准确性和稳定性。
在实际应用中,2D有限元方法常用于解决板、壳结构的弯曲、扭转、振动等问题,以及流体动力学、电磁场等问题。
MATLAB提供了丰富的工具箱和函数库,使得有限元方法的实现更加简单和高效。
通过合理的建模、网格剖分和求解方法,我们可以快速地解决复杂的工程问题,提高工程设计的效率和精度。
2D有限元方法结合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有限元分析与应用有限元分析(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在有限元分析方法中的应用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
有限元方法步骤-MATLAB的简略使用指南
第1章引言这个简短的引言分为两部分,第一部分是对有限元方法步骤的概括介绍,第二部分是MATLAB的简略使用指南。
1.1 有限元方法的步骤有许多关于有限元分析的优秀教材,比如在参考文献[1-18]中列出的那些书目。
因此,本书不准备对有限元理论或有限元方程进行详细地阐述和推导。
每一章只总结概括主要的方程,这些章节都附有示例来说明这些方程。
此外,全书只讨论线弹性结构力学的问题。
有限元方法用于解决工程问题的数值计算过程。
本书假定所有的行为都是线弹性行为。
虽然本书的问题都与结构工程相关,但有限元方法也同样适用于工程的其他领域。
本书中使用有限元方法解决问题共包括6个步骤。
对有限元分析的6个步骤阐述如下:(1) 离散化域——这个步骤包括将域分解成单元和节点。
对于像桁架和刚架这类离散系统,已经离散化,这一步就不需要了。
此处获得的结果应该已经是精确的。
然而,对于连续系统,如板壳,这一步就变得至关重要,因为它只能得到近似的结果。
因此解决方案的精确度取决于所使用的离散化方法。
本书中,我们将手动完成这一步(对连续系统)。
(2) 写出单元刚度矩阵(element stiffness matrices)——写出域内每个单元的单元刚度矩阵。
在本书中,这个步骤通过MATLAB实现。
(3) 集成整体刚度矩阵(global stiffness matrices)——这一步用直接刚度法(direct stiffness approach)实现。
在本书中,该步骤借助于MATLAB实现。
(4) 引入边界条件——诸如支座(supports)、外加载荷(applied loads)和位移(displacements)等。
本书中手动实现这一步骤。
(5) 解方程——这一步骤分解整体刚度矩阵并用高斯消去法求解方程组。
在本书中,在用高斯消去法实现求解部分的时候需要手动分解矩阵。
(6) 后处理——得到额外的信息,如支反力、单元节点力和单元应力。
本书中这一步骤通过MATLAB实现。
有限元数值解法在MATLAB中的实现及可视化
有限元数值解法在MATLAB中的实现及可视化摘要:偏微分方程的数值解法在数值分析中占有很重要的地位,很多科学技术问题的数值计算包括了偏微分方程的数值解问题。
在学习初等函数时,总是先画出它们的图形,因为图形能帮助我们了解函数的性质。
而对于偏微分方程,画出它们的图形并不容易,尤其是没有解析解的偏微分方程,画图就显得更加不容易了。
为了从偏微分方程的数学表达式中看出其所表达的图形、函数值与自变量之间的关系,通过MATLAB编程,用有限元数值解法求解了偏微分方程,并将其结果可视化。
关键词:偏微分方程;MATLAB;有限元法;可视化1 引言(Introduction)偏微分方程的数值解法在数值分析中占有很重要的地位,很多科学技术问题的数值计算包括了偏微分方程的数值解问题。
近三十多年来,它的理论和方法都有了很大的发展,而且在各个科学技术的领域中应用也愈来愈广泛。
例如,核武器的研制要有理论设计和核试验。
但核反应和核爆炸的过程是在高温高压的条件下进行的,而且巨大的能量在极短的时间内释放出来,核装置内部的细致反应过程及各个物理量的变化是根本不能用仪器测量出来的,核试验只是提供综合的数据。
而描述核反应和爆炸物理过程的数学模型是一个很复杂的非线性偏微分方程组,也根本没有办法得到这个方程组理论上的精确解。
所以发展核武器的国家都在计算机上对核反应过程进行数值模拟,这也称为“数值核实验”,它可以大大减少核试验的次数,节约大量的经费,缩短研制的周期[1]。
在学习初等函数时,总是先画出它们的图形,因为图形能帮助我们了解函数的性质。
而对于偏微分方程,画出它们的图形并不容易,尤其是没有解析解的偏微分方程,画图就显得更加不容易了。
所以本文主要研究如何用MATLAB数值求解偏微分方程,并将其数值解绘制成三维图形的形式,从而可以从复杂的数学表达式中看出其所表达的图像、函数值与自变量之间的关系[2]。
2 有限元法(Finite element method)2.1 有限元法概述有限元法的基本思想是将结构离散化,用有限个容易分析的单元来表示复杂的对象,单元之间通过有限个节点相互连接,然后根据变形协调条件综合求解。
利用Matlab进行有限元分析结果的可视化显示
利用Matlab进行有限单元法计算结果的可视化显示摘要本文用一个简单的例子给出了用Matlab进行有限单元法计算结果可视化显示的方法。
采用Matlab进行可视化显示,可以在获得较好的可视化显示效果的基础上,节省科研人员的大量时间和精力。
关键字:有限元,后处理,可视化,Matlab有限单元法是工程数值分析的有力工具,可以应用于固体力学、结构分析、温度场模拟等诸多领域。
有限单元法一般可以分为前处理、计算以及后处理三部分,市场上现有的有限元商业软件都提供了这三部分功能模块。
但有时,由于各种原因,科研人员必须自行编写有限元分析程序,作者通过自身实践,认为Matlab可以较好的进行有限单元法计算结果的可视化显示。
Matlab由美国MathWorks公司开发,历经二十多年的发展,现已成为国际公认的优秀科技应用软件之一,在机械、航天、医药等多个科研、工程领域有着广泛的应用。
Matlab 本身具有丰富的可视化显示手段,但遗憾的是,目前对于Matlab的应用研究主要集中在其强大的科学计算能力方面,而对科学计算结果的可视化显示,尤其对由空间点云构成的形体的可视化显示研究涉及甚少,作者通过查阅相关资料,以及探索和实践,成功地进行了三维形体有限元分析结果的可视化显示。
1.准备数据针对Matlab对空间点云构成形体的数据格式要求,必须重新编排有限元分析中前处理部分以及计算部分所获得的数据。
下面以空间单位立方体为例,介绍Matlab对数据文件格式的要求。
若有空间单位正方体,将其划分为四面体网格,图1为该正方体的节点编号及其网格拓朴结构,表1为节点的坐标值以及节点处的有限元计算结果(此处为温度)。
表1:单位正方体顶点坐标及其温度图1:空间立方体顶点编号及其网格拓朴结构x y z顶点温度值(℃)顶点编号顶点坐标(,,)1 0, 0, 0 10002 1, 0, 0 8003 0, 0, 1 7004 1, 0, 1 3455 0, 1, 1 6646 1, 1, 1 2567 1, 1, 0 9878 0, 1, 0 907用Matlab进行可视化显示需要有3个文件:节点坐标文件、网格结构文件和有限元计算结果文件。
Matlab程序在有限元热分析中的应用
第35卷第3期2019年6月湖北理工学院学报JOURNAL OF HUBEI POLYTECHNIC UNIVERSITYVol.35No.3Jun.2019doi:10.3969/j.issn.2095-4565.2019.03.001Matlab程序在有限元热分析中的应用徐庆华夏冈『(1.湖北理工学院机电工程学院,湖北黄石435003;2.广州鑫照智控精密制造有限公司,广东广州511442)摘要:在工业生产及科学研究中,热分析具有十分重要的作用,被广泛应用于各个方面。
在采用有限元法分析热传导问题时,需要得到分析单元的特征矩阵。
借助Matlab的符号运算功能,编写了Mat-lab符号运算程序以获取平面三角形单元的导热矩阵,解决了手工运算过程复杂、计算冗长的问题,并且运算结果与推导结果完全一致。
该方法简单实用,可有效提高热分析的准确率和求解效率。
关键词:热分析;有限元;Matlab;符号运算;导热矩阵中图分类号:TG659文献标志码:A文章编号:2095-4565(2019)03-0001-04 Matlab Procedures in Thermal Analysis by Finite Element MethodXU Qinghua,XIA Gang1(1.School of Mechanical and Electronic Engineering,Hubei Polytechnic University,Huangshi Hubei435003;2.Guangzhou Xinzhao Intelligent Control and Precision Manufacturing Co.,Ltd.,Guangzhou Guangdong511442)Abstract:Thermal analysis is of great importance and has been widely conducted in a variety of industrial manufacturing and scientific research.The characteristic matrix of element will be needed when analyzing heat conduction with finite element method(FEM).The symbolic operation program for calculating heat transmission of planar triangle unit has been wriHen with symbolic operation function of MATLAB in this paper,by which complicated and long computation caused by manual deduction can be avoided and the computation result is highly consistent with the deduction result.This method is simple and useful,which can improve efficiency and accuracy when performing various thermal analyses.Key words:thermal analysis;FEM;Matlab;symbolic computation;heat transmission matrixo引言在工业生产及科学研究过程中,热分析广泛应用于各个方面,如计算某个系统或部件的温度分布、热量交换、热梯度、热流密度、热应力、相变等,所涉及的领域包括:能源、化工、冶金、建筑、电子、航空航天、制冷、农业、船舶等[1-3]0在机床精密加工过程中,动力源发热、运动副摩擦热与加工切削热导致温度场分布不均而产生热变形,因此需要得到工件的温度场分布,并对机床进行热特性、热模态、“热-结构”耦合等分析与求解[4-5]o对于重型模锻压力机⑷,其温度场分析对保障装备安全可收稿日期=2019-03-21基金项目:湖北省发改委项目(项目编号:2018ZYYD040)。
第三章+matlab有限元分析与应用
在满足一定约束条件下,寻找使某个或多个设 计指标达到最优的设计方案的过程。
目标函数
用于衡量设计方案优劣的数学表达式,通常是 最小化或最大化的某个性能指标。
约束条件
限制设计方案选择的条件,包括设计变量的上下界、设计变量的关系等。
基于Matlab的有限元优化设计方法
MATLAB优化工具箱
提供了一系列用于求解各种优化问题的函数和算法,包括线性规划、非线性规划、混合 整数规划等。
有限元模型
由一组离散化的元素组成,每个 元素代表系统的一部分,并具有 特定的属性和行为。
节点
元素之间的连接点,用于传递力 和位移。
有限元分析的基本步骤
前处理
01
建立有限元模型,包括定义元素类型、几何形状、材料属性、
边界条件和载荷等。
Байду номын сангаас求解
02
应用数学方程求解有限元模型的节点位移和应力分布。
后处理
03
对于一些复杂模型,如具有非线性、大变形、多 材料等特性,建模难度大,需要发展更高级的建 模方法和技术。
数据安全与隐私保护
在进行有限元分析时,需要处理大量的数据,如 何保证数据的安全和隐私保护是一个重要的问题 。需要采取有效的数据加密和保护措施来确保数 据的安全性和隐私性。
未来发展方向与展望
跨学科融合
结果后处理
显示结果
使用Matlab的图形功能,如`plot`、`mesh`等,绘制 结果的可视化图像。
分析结果
对结果进行详细的分析,如查看位移分布、应力分布 等。
结果优化
根据分析结果,对模型进行优化设计,以提高性能或 降低成本。
03
有限元分析实例
Chapter
MATLAB有限元分析与应用
MATLAB有限元分析与应用有限元分析是一种基于数值方法的结构分析技术,广泛应用于工程领域中各种结构的设计与优化。
MATLAB作为一种强大的计算软件,提供了丰富的数值计算、数据可视化和编程功能,成为了进行有限元分析与应用的首选工具之一MATLAB的有限元分析工具箱(FEA)提供了一系列函数和工具,用于构建、求解和分析有限元模型。
用户可以根据实际问题构建有限元模型,包括定义几何形状、材料属性、边界条件和加载情况等。
利用有限元分析工具箱提供的函数,用户可以生成刚度矩阵和负载向量,并求解有限元方程组,得到结构的位移、应力和应变等信息。
此外,MATLAB还提供了可视化工具,可以将计算结果以图形的形式展示出来,方便用户进行结果的分析和评估。
1.结构力学:有限元分析可用于评估结构的强度和刚度,进行结构的静力和动力响应分析。
例如,在设计建筑物和桥梁时,可以通过有限元分析评估结构的变形、应力和疲劳寿命,确保结构的安全性和稳定性。
2.流体力学:有限元分析可用于求解流体介质中的运动方程和温度分布,分析流体流动的特性。
例如,在航空航天领域中,可以使用有限元分析来计算飞机机翼的气动性能,并优化机翼的设计。
3.电磁场:有限元分析可用于求解电磁场的分布和场强,以及电磁场对物体的影响。
例如,在电力系统中,可以使用有限元分析来评估导线和电力设备的电磁场分布,预测设备的电磁辐射水平,以及优化电磁屏蔽设计。
4.热传导:有限元分析可用于求解热传导方程,分析物体的温度分布和热流量分布。
例如,在热管理领域中,可以使用有限元分析来优化散热器的设计,提高散热效率。
5.多物理场耦合:有限元分析可用于求解多个物理场的耦合问题,分析各个物理场之间的相互影响。
例如,在电动汽车的电池设计中,可以使用有限元分析来研究电池的温升、电动力学响应和热耦合效应。
总之,MATLAB的有限元分析与应用广泛应用于工程领域中各种结构的设计与优化。
它提供了方便的数值计算、数据可视化和编程功能,可用于求解各种结构的力学、热力学、电磁学等问题。
有限元的MATLAB解法
有限元的MATLAB解法1.打开MATLAB。
2.输入“pdetool”再回车,会跳出PDE Toolbox的窗口(PDE意为偏微分方程,是partial differential equations的缩写),需要的话可点击Options菜单下Grid命令,打开栅格。
3.完成平面几何模型:在PDE Toolbox的窗口中,点击工具栏下的矩形几何模型进行制作模型,可画矩形R,椭圆E,圆C,然后在Set formula栏进行编辑并(如双脊波导R1+R2+R3改为RI-R2-R3,设定a、b、s/a、d/b的值从而方便下步设定坐标)用算术运算符将图形对象名称连接起来,若还需要,可进行储存,形成M文件。
4.用左键双击矩形进行坐标设置:将大的矩形left和bottom都设为0,width是矩形波导的X轴的长度,height是矩形波导的y轴的长度,以大的矩形左下角点为原点坐标为参考设置其他矩形坐标。
5.进行边界设置:点击“Boundary”中的“Boundary Mode”,再点击“Boundary”中的“Specify Boundary Conditions”,选择符合的边界条件,Neumann为诺曼条件,Dirichlet为狄利克雷条件,边界颜色显示为红色。
6.进入PDE模式:点击"PDE"菜单下“PDE Mode”命令,进入PDE 模式,单击“PDE Specification”,设置方程类型,“Elliptic”为椭圆型,“Parabolic”为抛物型,“Hyperbolic”为双曲型,“Eigenmodes”为特征值问题。
7.对模型进行剖分:点击“Mesh”中“Initialize Mesh”进行初次剖分,若要剖的更细,再点击“Refine Mesh”进行网格加密。
8.进行计算:点击“Solve”中“Solve PDE”,解偏微分方程并显示图形解,u值即为Hz或者Ez。
9.单击“Plot”菜单下“Parameters”选项,打开“Plot Selection”对话框。
matlab有限元分析实例
matlab有限元分析实例问题描述:考虑一平面有界区域,设其边界为[。
我们求解泊松方程之狄利克雷边值问题。
问题的强形式为一椭圆型偏微分方程当之几何形状稍复杂时,一般无法求得其解析解。
我们可应用有限元法来求其数值解。
通常我们先写出该问题的抽象弱形式:求使得其中为检验函数为一适当索伯列夫空间(在本例中也是一希尔伯特空间)为一双线性型为一线性型。
其具体表达式为有限元空间离散我们采用最简单的二维单元离散单元即三节点线性三角形单元,其插值基函数(即形函数为一次多项式。
有限元之核心思想为:使用离散的函数空间来分片逼近连续的函数空间。
于是所求之近似解可写成基函数之线性组合其中为待求系数,常称为自由度。
将此近似解之表达式代入前述问题之弱形式,并取检验函数,可得写成矩阵形式,便成为常见之有限元方程由于历史原因,通常采用固体力学中的习惯命名:[公式] 为刚度矩阵,[公式] 为自由度向量,[公式] 为载荷向量。
由于空间已分片离散,上面的有限元方程只在各单元内部成立。
为了求解方便,通常我们将所有单元的有限元方程连立起来求解,于是需要将各单元之刚度矩阵组装成总体刚度矩阵。
求解器MATLAB 代码及简释本求解器之十行代码如下:function u=fem(nds,els,bcs)nnd=size(nds,1); u=zeros(nnd,1); K=zeros(nnd,nnd); f=zeros(nnd,1);for j=1:size(els,1)K(els(j,:),els(j,:))=K(els(j,:),els(j,:))+stima(nds(els(j,:),:));f(els(j,:))=f(els(j,:))+ones(3,1)*det([1,1,1;nds(els(j,:),:)'])/ 6;endfreends=setdiff(1:nnd,bcs);u(freends)=K(freends,freends)\f(freends);function stima=stima(vertices)ndim=size(vertices,2);J=[ones(1,ndim+1);vertices'];B=J\[zeros(1,ndim);eye(ndim)];stima=det(J).*B*B'/prod(1:ndim);输入数据格式:唯一的一个函数stima 用来计算各单元刚度矩阵。
Matlab语言及其在有限元编程中的应用_宋建辉
收稿日期:2003-08-11作者简介:宋建辉(1968-),女,浙江余姚人,广东湛江卫生学校电教中心讲师,从事计算机应用和教学研究. 2003年12月第24卷第6期湛江师范学院学报JOURNAL OF ZHANJI ANG NOR MAL COLLEGE Dec 1,2003Vol 124 No 16Matlab 语言及其在有限元编程中的应用宋建辉1,涂志刚2.3(11广东湛江卫生学校电教中心,广东湛江524037;21中山大学化学与化学工程学院,广东广州510275;31广东湛江包装材料企业有限公司,广东湛江524022)摘 要:通过运用Matlab 语言进行聚合物异型材口模挤出的三维流动计算机模拟,详细比较了Matlab 语言与其它高级语言进行有限元编程的优缺点,并讨论了用Matlab 语言进行有限元编程的方法及技巧,实践证明,Matlab 是进行有限元工程计算编程的高效编程工具.关键词:Matlab;有限元;编程中图分类号:O48415 文献标识码:A 文章编号:1006-4702(2003)06-0101-05Matlab 是美国Mathworks 公司推出的一种以矩阵为基本单位的高效数值计算语言,直观易学,其代码非常符合人们的思维习惯,被称为/演算纸式0编程语言.近年来,Matlab 在国内许多设计单位和科研机构特别是高校得到了广泛的应用,它主要应用于自动控制系统、数字信号处理、时间系列分析等方面.本文根据笔者运用Matlab 语言进行聚合物异型材口模挤出的三维流动计算机模拟研究的实践探索,从有限元工程计算方面讨论了用Matlab 语言编制程序的优缺点,并提供了有限元程序设计的方法及技巧.1 聚合物异型材口模挤出的三维罚有限元方法由于聚合物异型材挤出口模内高分子熔体流动状态的复杂性,在其流变学分析过程中,根据熔体的特点,作如下假设:稳态层流、壁面粘附、惯性力和重力不计,等温流动、熔体不可压缩.从上述假设可以得到高分子熔体在口模内流动的控制方程为[1,2]连续方程 ¨#U =0或div U =0(1)动量方程 -¨P +¨#S =0(2)式中U -速度矢量(m P s),S -应力张量(Pa),P-压力(Pa).¨-是一个微分算子,¨=D 199x +D 299y +D 399z,D i (i=1,2,3)-单位矢量;div 表示散度.研究中采用广义牛顿流体模型,其应力-应变关系如下S =2G (C #)C#(3)式中G -粘度(Pa #S),C #-形变速率张量.在这种情况下,对高分子熔体流动场进行流变学研究,实质上就是要求解式(1)~(3)组成的方程组.2 Matlab 应用于有限元程序设计的优缺点有限元方法是利用计算机求解数学物理或工程实际中的微分方程问题或偏微分方程问题的一种系统化的数值计算方法,有限元方法的一个显著特点是在迭代求解过程中涉及大量的矩阵计算.对于一个完善的有限元软件,它包括的基本模块有前置处理、求解器、后置处理,若用其它高级语言开发,如C 、C ++、Fortran 等,编程的工作量十分浩大,开发的周期很长,而利用Matlab 进行有限元设计有以下优点.2.1 语言简洁紧凑、使用方便灵活、库函数极其丰富,几乎包括有限元编程中的所有基础程序Matlab 是一个强大的数值计算软件,在数值计算方面,除了包括基本的数学函数、基本矩阵和数组运算函数以及多种插值函数之外,而且具有矩阵的求逆、LU 分解、QR 分解、矩阵指数运算等几乎所有的矩阵函数及矩阵分析函数;另外它还包括强大的稀疏矩阵的存储、初等变换、分解、特征值和奇异值的求解等功能,以及提供了系数阵为稀疏矩阵的线性方程组的各种解法.Matlab 提供的所有这些数值计算方面的功能,对有限元编程中的数据存储、单元刚度矩阵的生成、刚度矩阵的集成、线性方程组的求解等方面大有益处,根本无需编程人员去编制有限元中的基础程序,大大减少了工作量及提高了编程效率.2.2 可视化及强大的图形功能Matlab 可以给出数据的二维、三维、乃至四维等数据表现以及绘制一般科技绘图软件所能绘制的几乎所有图形,如曲线图、网格图、等直线图、表面图等,Matlab 这些功能为有限元模拟结果的可视化提供充分的表现力度,这往往是有限元数据处理中最为困难的事.除此之外,Matlab 具有较强的应用程序界面编制功能,而且提供了专门的界面编制工具(GUI Layout Tool),利用它可以编制理想的用户界面.2.3 含有多种学科的工具箱(ToolB ox)以及程序代码的公开性Matlab 提供的学科性工具箱可以使用户无需编写自己学科范围内的基础程序,大大节约编程时间.例如,Matlab 工具箱中的偏微分方程工具箱(PDE)就是利用Matlab 编制的有限元基础程序库.另外,Matlab 具有有限元中网格生成的计算几何学的各种基础程序,而且偏微分方程工具箱(PDE)中已具备三节点三角形网格生成功能.值得指出的是,现在很多大学及研究机构已开发出了各种工具箱,如伯明翰大学开发的GB T(Geometric Bounding Toolbox),它可以进行3D 或3D 以上的几何模型数据处理;康乃尔大学计算机科学部开发的含有二维和三维几何建模、网格生成以及有限元求解等功能的软件;所有这些基于Matlab 语言编制的工具箱软件,它的原代码几乎是全部公开的,任何编程用户都可以通过对原代码文件进行修改并加入自己的文件构成新的工具箱.2.4 程序可移植性好Matlab 几乎可以在各种机型和操作系统上运行,所以在可移植性和可扩充性上,Matlab 远远优于其它的高级编程语言.然而和其他的高级语言相比,由于Matlab 的程序不用编译等预处理,程序的执行速度比较慢,但如果能将Matlab 编制的程序生成可执行程序(*.dll 或*.exe),这一点将得到改观.Matlab 102湛江师范学院学报(自然科学) 第24卷除了本身自带的编译器(mcc v2.0)外,也能用其他的各种高级语言(如C,C ++,Fortran)编译器编译,另外已有很多商业化的Matlab 语言编译器,其中最为推崇的要数Matools 公司利用Matcom 技术编写了Mideva 工具软件,它可以借助于C++编译器将Matlab 下的m-文件转换成为可以被Visual C ++、Visual Basic 、E xecel 、Delphi 等调用的DLL(动态连接库)或者脱离Matlab 的独立的可执行文件,这大大提高了程序的执行速度和节约了计算机内存,同时也保证了程序代码的保密性.3 Matlab 有限元程序设计方法在开始进行有限元程序设计时,可以先打开Matlab 的程序编辑器(同时又是调试器)编写有限元的程序模块,Matlab 的编制函数形式为:function [outpar1,outpar2,,]=AdaptMesh(inpar1,inpar2,,)function-定义一个函数;[outpar1,ooutpar2,,]-函数的输出参数;AdaptMesh()-函数名;inpar1,inpar2-函数输入参数;函数的调试可以在Matlab 命令窗口或其调试器[medit.exe]中进行,调试方法包括设置断点、清除断点、运行当前行、变量检查等多种方法,其调试非常方便,而且它可以以报表(profile 命令)的形式提供程序中每条语句的运行所需时间,便于程序设计人员对程序优化,删除不必要的运算,采用省时的算法.而且Matlab 具有结构化的控制语句(如for 循环、while 循环、break 语句和if 语句),又有面向对象编程的特征(类和对象),同时它提供了Fortran 、C 和C++高级语言的接口,对于熟悉Fortran 、C 和C ++高级语言的工程人员可以采用混合编程的方法,为编程提供了广阔的空间,同时可以重复利用以前已编制好的Fortran 、C 和C++高级语言的源程序,减少重复性工作.Matlab 与其它高级语言的接口可参阅文献[3-5].由于Matlab 的基本数据为矩阵和向量,所以编程时,应尽量对向量和矩阵编程,而不是像其它高级语言编程对矩阵每个元素编程,通过向量化对Matlab 编程程序优化可以大大提高运算速度,节约内存[3].4 Matlab 有限元编程实例有限元方法最显著的特征是矩阵推导及运算,最后求解归结于对系数阵为稀疏矩阵的线性方程组的求解,下例是笔者开发的聚合物口模挤出有限元模拟系统中的一段程序,旨在说明Mat -lab 对有限元中数据存储及求解系数阵为稀疏矩阵的线性方程组方面的优势.function Result=SolveTC oeff(node,elem,bc ond)%node 为有限元中离散网格节点坐标(x ,y ,z );%ele m 为有限元中单元节点编号103第6期 宋建辉等:Matlab 语言及其在有限元编程中的应用%bcond 为有限元求解中的边界条件node num=length(node)P 3;%利用函数length 计算节点个数[TCoeffA,TcoeffB]=AssemElemCoeff(node,elem,bcond);%组装单元刚度矩阵%TC oeffA,TcoeffB 为函数返回的总体系数阵TCoeffA =sparse(TC oeffA);%把总体系数阵TCoeffA 转化为稀疏阵TCoeffB=sparse(TC oeffB);%把总体系数阵TCoeffB 转化为稀疏阵Result=TC oeffA \TCoeffB;%Matlab 根据TC oeffA 情况,采用最优化方法(Matlab%提供了4种高斯消去法或其变种,另外还提供了6个迭代法求解函数)求解系数阵为%稀疏矩阵的线性方程组从上面例子可以看出,Matlab 编程非常简洁紧凑,它不像高级语言C 、C ++牵涉复杂的指针问题,在对矩阵进行稀疏存储及运算时,若用高级语言C 或Fortran 编程,稀疏矩阵存储至少需要几十行语句.最麻烦的是对系数阵为稀疏矩阵的线性方程组求解,它需要对矩阵中的每个元素循环,而且要考虑算法的稳定性,其代码的调试更是不容易.而在Matlab 中,这些功能函数都是本领域的专家编写,用户不必担心函数的可靠性,直接利用方便简单,效率高.又比如聚合物口模挤出有限元模拟系统中其中一个后置处理模块的一段程序,它的主要功能是挤出口模内任一截面上速度分布处理,虽然语句不到20行,但实现了对有限元数据等值线,三维网格图可视化处理;在Matlab 中还有很多其它的函数,例如等值线色彩图(contourf)、表面图(surf)、矢量图(quiver 、quiver3)、流线图(Streamline)等,它们对有限元数据的可视化处理都很有用,如果这些函数都由研究工作者自己开发,工作量之大是可想而知,也很没有必要.以上两个例子只说明Matlab 在有限元编程中矩阵运算和后置处理方面的优势,其实Matlab 在有限元几何建模、网格离散、计算求解、后置处理等各个方面都有其它高级语言无法相比的优势.另外Matlab 具有动画制作功能,利用它可以把有限元计算结果动画显示.在聚合物口模挤出有限元模拟系统中,笔者利用Matlab 此项功能实现了动态观察聚合物熔体在异型材挤出口模中的流动过程.图1 聚合物熔体在异型材口模中的流动过程图Figure 1Fl ow of Polymer Melts in Profile Dies5 结束语Matlab 是以矩阵和向量为基本数据单位,集科学计算、图像处理、声音处理于一体的高度集成系统,程序可读性及编程效率远远超过其他的高级语言;而且提供了多种高级语言的编程接口,具有能和其他高级语言进行混合编程,强大的图像处理及可视化功能等优点而成为当今最为流行的科技数值计算软件.笔者结合聚合物口模挤出三维有限元模拟系统的开发,研究了Matlab 语言在有限元编程中的应用,并着重从Matlab 强大的矩阵运算及可视化处理两方面说明Matlab 在有限元编程中的巨大优越性.因此,利用Matlab 进行工程数值计算有限元编程或和其它高级语言混合编程,将是有限元编程工程人员的一个最好的选择.104湛江师范学院学报(自然科学) 第24卷参考文献:[1] 涂志刚1聚合物口模挤出三维流动研究[D]1南昌:南昌大学机电学院,2001.[2] 柳和生1罚有限元法在聚合物成型加工研究中的应用[J]1青岛化工学院学报,1995,16(4):376-381.[3] 肖志权1在VB5.0中使用和操作Matlab[J]1微型电脑应用,2000,(4):13-16.[4] 段晓君1Matab 函数转换为VB 可用的DLL[J]1微型机与应用,2000,(5):7-10.Matlab Language and Its Applicationin Finite Element ProgrammingSONG Jian-hui 1,TU Zhi-gang 2,3(11Center of Educati on Tec hnology,Zhanjiang Medical School,Zhanjiang,Guangdong 524037,Chi na;21School of Che mical and Chemical Engineering,SunYat-sen University,G uangzhou,Guangdong 510275,China;31Zhanjiang Packagi ng M ateri al Enterprises Ltd.,Zhanjiang,Guangdong 524022,Chi na)Abstract :This paper presents the advantages and disadvantages of Matlab for progra mming finite ele -ments in comparison with other advanced languages,and discusses the methods and techniques of Matlab langua ge including computer modeling of three-dimensional flow for polymer melts extrusion from profile dies.It is showed that Matlab language is the best tool for programming in engineering calculation with finite ele ment method.Key words :matlab;finite ele ment method;progra mming 105第6期宋建辉等:Matlab 语言及其在有限元编程中的应用。
matlab用有限元法求解偏微分方程组
matlab用有限元法求解偏微分方程组使用有限元法求解偏微分方程组是一种常见的数值计算方法,它在工程领域和科学研究中广泛应用。
本文将介绍如何利用MATLAB软件进行有限元法求解偏微分方程组的基本步骤和注意事项。
我们需要了解有限元法的基本原理。
有限元法是一种将连续问题离散化为有限个小区域,通过在每个小区域内建立适当的数学模型,然后将这些小区域连接起来形成整个问题的数学模型的方法。
在有限元法中,我们通常将问题的域分割成许多小的有限元,每个有限元都具有简单的几何形状,如线段、三角形或四边形。
然后,在每个有限元上建立适当的近似函数,通过对这些函数的系数进行求解,我们可以得到问题的近似解。
在MATLAB中,有限元法的求解过程可以分为以下几个步骤:1. 离散化域:根据问题的几何形状,将问题的域进行离散化处理。
离散化可以采用三角剖分法或四边形剖分法,将域分割成许多小的有限元。
2. 建立数学模型:在每个有限元上建立适当的数学模型。
这通常涉及选择适当的近似函数,并在每个有限元上求解这些函数的系数。
3. 组装方程:将每个有限元上的数学模型组装成整个问题的数学模型。
这涉及到将有限元之间的边界条件进行匹配,并建立整个问题的刚度矩阵和载荷向量。
4. 求解方程:利用线性代数求解方法,求解得到问题的近似解。
MATLAB提供了各种求解线性方程组的函数,如“\”运算符、LU 分解和共轭梯度法等。
5. 后处理:对求解结果进行后处理,包括绘制解的图形、计算问题的误差等。
在进行有限元法求解偏微分方程组时,需要注意以下几点:1. 网格剖分的合理性:网格剖分的精细程度对结果的精确性有很大影响。
网格过于粗糙可能导致结果的不准确,而网格过于细小则会增加计算的复杂性。
因此,需要根据问题的特点和计算资源的限制选择合适的网格剖分。
2. 近似函数的选择:近似函数的选择直接影响到结果的准确性和计算的效率。
一般情况下,近似函数的阶数越高,结果的准确性越高,但计算的复杂性也越大。
matlab有限元求解微分方程的本征值
一、概述Matlab是一种常用的数学软件,它提供了丰富的工具和函数,可用于解决各种数学问题。
其中,有限元法是一种常用的数值求解方法,它可用于求解微分方程的本征值问题。
本文将探讨如何使用Matlab进行有限元求解微分方程的本征值问题。
二、有限元法简介有限元法是一种数值分析方法,它通过将连续的物理问题离散化为有限数量的单元或网格,然后利用线性代数方法求解离散问题,从而得到原始的连续问题的近似解。
在微分方程的求解中,有限元法可用于求解微分方程的本征值问题,即确定微分方程的本征值和本征函数。
三、使用Matlab进行有限元求解微分方程的本征值问题1. 离散化微分方程需要将微分方程离散化为有限元形式。
这通常涉及将微分方程转化为一个矩阵形式的代数方程组。
对于一维问题,可以将区域离散化为一系列节点,并将微分方程表示为每个节点上的代数方程。
对于二维或三维问题,可以将区域离散化为网格或单元,并在每个单元中求解微分方程。
2. 构建刚度矩阵和质量矩阵一旦微分方程被离散化,就可以构建刚度矩阵和质量矩阵。
刚度矩阵描述了系统的刚度和连接性,质量矩阵描述了系统的质量和惯性。
这两个矩阵可以通过有限元方法和数值积分计算得到。
3. 求解本征值问题一旦刚度矩阵和质量矩阵被构建,就可以通过求解本征值问题来得到微分方程的本征值和本征函数。
这通常涉及求解特征值问题,即寻找一个非零向量,使得矩阵乘以该向量等于特征值乘以该向量。
4. 使用Matlab进行求解Matlab提供了丰富的工具和函数,可用于构建刚度矩阵和质量矩阵,并求解本征值问题。
使用Matlab的有限元工具箱或相关函数,可以方便地进行有限元求解微分方程的本征值问题。
四、案例分析下面通过一个简单的例子来说明如何使用Matlab进行有限元求解微分方程的本征值问题。
考虑一维弦的振动问题,其微分方程为:$$\frac{d^2u}{dx^2} +\omega^2u = 0$$其中$u$为弦的位移,$x$为弦的位置,$\omega$为本征频率。
matlab有限元分析实例
matlab有限元分析实例有限元是一种数值求解偏微分方程的方法。
基本过程大致是设置形函数,离散,形成求解矩阵,数值解矩阵,后处理之类的。
MATLAB要把这些过程均自己实现,不过在数值求解矩阵时可以调用已有函数。
可以理解为MATLAB是一个通用的计算器,当然它的功能远不止如此。
而ANSYS之类的叫做通用有限元软件,针对不同行业已经将上述过程封装,前后处理也比较漂亮,甚至不太了解有限元理论的人也能算些简单的东西,当然结果可靠性又另说了。
比较两者,ANSYS之类的用起来容易得多,但灵活性不如MATLAB。
MATLAB用起来很困难,也有人做了一些模块,但大多数只能解决一些相对简单的问题。
对于大多数工程问题,以及某些领域的物理问题,一般都用通用有限元软件,这些软件还能添加一些函数块,用以解决一些需要额外设置的东西。
但是对于非常特殊的问题,以及一般性方程的有限元解,那只能用MATLAB或C,Fortran之类的了。
matlab的优势是提供一个矩阵化的编程语言,matlab采用COO格式存储稀疏矩阵,在组装全局刚度阵的时候,可以由下标直接组装访问元素,处理单个单元的时候,对于二维模型,需要至少二重循环,加上对单元的遍历,至少循环层数较多。
众所周知,matlab在处理循环时速度较慢,特别是循环嵌套,速度更慢。
采用parfor,也不成熟。
优势就是在矩阵求解,雅可比矩阵与行列式求解的时候,有函数,又快又香。
对于C++,一般采用CSR格式存储稀疏阵,矩阵的行列,非零元,都要注意其存储位置。
编程求解比较费劲。
在处理单个单元的的时候行列式,小矩阵运算,都要自己编程,这个时候逻辑一定要清晰,代码相关的注释一定要写好。
否则编着编者,就把自己绕进去。
采用C++的福音是做并行时更容易控制,采用openmpi并行处理灵活。
在线性方程求解时,intel MKL是另外一个福音,intel的处理器还是intel理解,真的超级快,有机会你可以试一下,体会一下CPU 所有线程飙到100%的快感。
有限元的MATLAB解法
有限元的MATLAB解法1.打开MATLAB。
2.输入“pdetool”再回车,会跳出PDE Toolbox的窗口(PDE意为偏微分方程,是partial differential equations的缩写),需要的话可点击Options菜单下Grid命令,打开栅格。
3.完成平面几何模型:在PDE Toolbox的窗口中,点击工具栏下的矩形几何模型进行制作模型,可画矩形R,椭圆E,圆C,然后在Set formula栏进行编辑并(如双脊波导R1+R2+R3改为RI-R2-R3,设定a、b、s/a、d/b的值从而方便下步设定坐标)用算术运算符将图形对象名称连接起来,若还需要,可进行储存,形成M文件。
4.用左键双击矩形进行坐标设置:将大的矩形left和bottom都设为0,width是矩形波导的X轴的长度,height是矩形波导的y轴的长度,以大的矩形左下角点为原点坐标为参考设置其他矩形坐标。
5.进行边界设置:点击“Boundary”中的“Boundary Mode”,再点击“Boundary”中的“Specify Boundary Conditions”,选择符合的边界条件,Neumann为诺曼条件,Dirichlet为狄利克雷条件,边界颜色显示为红色。
6.进入PDE模式:点击"PDE"菜单下“PDE Mode”命令,进入PDE 模式,单击“PDE Specification”,设置方程类型,“Elliptic”为椭圆型,“Parabolic”为抛物型,“Hyperbolic”为双曲型,“Eigenmodes”为特征值问题。
7.对模型进行剖分:点击“Mesh”中“Initialize Mesh”进行初次剖分,若要剖的更细,再点击“Refine Mesh”进行网格加密。
8.进行计算:点击“Solve”中“Solve PDE”,解偏微分方程并显示图形解,u值即为Hz或者Ez。
9.单击“Plot”菜单下“Parameters”选项,打开“Plot Selection”对话框。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
调用 function y = SpringElementStiffness(k)函数
k1=SpringElementStiffness(100);
k1 =
100 -100 -100 100
k2=SpringElementStiffness(200);
k2 =
200 -200
L
总刚矩阵: n n
结构方程: KU F
22
单元节点力: f ku
2020/2/29
14
§3-2 线性杆元
2、MATLAB函数编写
2.1 单元刚度矩阵的形成
function y = LinearBarElementStiffness(E,A,L)
%LinearBarElementStiffness This function returns the element
2020/2/29
20
§3-2 线性杆元
3、实例计算分析应用
步骤3:集成整体刚度矩阵
调用 function y = LinearBarAssemble(K,k,i,j)函数
n=3; K = zeros(n,n)
K= 000 000 000
K = LinearBarAssemble (K,k1,1,2)
y = k * u/A;
2020/2/29
18
§3-2 线性杆元
3、实例计算分析应用
如图所示二线性杆元结构,假定E=210MPa,A=0.003m^2,P=10kN, 节点3的右位移为0.002m。
求:系统的整体刚度矩阵; 节点2的位移; 节点1、3的支反力; 每个杆件的应力
解:
步骤1:离散化域
2020/2/29
2020/2/29-200 200
8
§3-1 弹簧元
4、实例计算分析应用
步骤3:集成整体刚度矩阵
调用 function y = SpringAssemble(K,k,i,j)函数
n=3; K = zeros(n,n);
K= 000 000 000
K = SpringAssemble(K,k1,1,2)
0 200
UU12
F1 F2
200 U3 F3
已知边界条件: U1 0, F2 0, F3 15
100 100 0
100 300 200
0 200
0 U 2
F1 0
%
matrix k of the spring with nodes i and j into the
%
global stiffness matrix K.
%
This function returns the global stiffness matrix K
%
after the element stiffness matrix k is assembled.
%LinearBarElementStresses This function returns the element nodal
%
stress vector given the element stiffness
%
matrix k, the element nodal displacement
%
vector u, and the cross-sectional area A.
2020/2/29
22
§3-2 线性杆元 3、实例计算分析应用
步骤5:解方程
U=zeros(1,1); U3=0.002 F=[-10]; K = K(2,2)
y = k * u;
2020/2/29
6
§3-1 弹簧元
4、实例计算分析应用
如图所示二弹簧元结构,假定k1=100kN/m,k2=200kN/m,P=15kN。 求:系统的整体刚度矩阵;
节点2、3的位移; 节点1的支反力; 每个弹簧的内力
解:
步骤1:离散化域
2020/2/29
7
§3-1 弹簧元
4、实例计算分析应用
%
matrix k and the element nodal
%
displacement vector u.
y = k * u;
2020/2/29
17
§3-2 线性杆元
2、MATLAB函数编写
2.4 节点应力计算
function y = LinearBarElementStresses(k, u, A)
y = [E*A/L -E*A/L ; -E*A/L E*A/L];
2020/2/29
15
§3-2 线性杆元
2、MATLAB函数编写
2.2 整体刚度矩阵的形成
function y =LinearBarAssemble(K,k,i,j)
%LinearBarAssemble This function assembles the element stiffness
2.3 节点载荷计算
function y = LinearBarElementForces(k,u)
%LinearBarElementForces This function returns the element nodal
%
force vector given the element stiffness
%
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 2020/2/29 = K;
16
§3-2 线性杆元
2、MATLAB函数编写
n=3;
K=zeros(n,n);
K=SpringAssemble(K,k1,1,2);
K=SpringAssemble(K,k2,2,3);
U=zeros(2,1);
F=[0;15];
K = K(2:3,2:3);
KK=K;
U=K\F
U=[0;U];
F=K*U;
u1=U(1:2);
f1=SpringElementForces(k1,u1)
K = LinearBarAssemble (K,k2,2,3)
2020/2/29
21
§3-2 线性杆元
3、实例计算分析应用
步骤4:引入边界条件
420000 420000 0
420000 1050000 630000
0 630000
UU12
F1 F2
2
§3-1 弹簧元
2、基本方程
弹簧元是总体和局部坐标一致的一维有限单元 每个弹簧元有两个节点(node)
单刚矩阵为:
k
k k
k
k
总刚矩阵: n n
结构方程: KU F
22
单元节点力: f ku
2020/2/29
3
§3-1 弹簧元
3、MATLAB函数编写
f1 = 15.0000 15.0000
u2=U(2:3); f2=SpringElementForces(k2,u2);
f2 = -15.0000 15.0000
12
§3-1 弹簧元
5、实例计算分析应用
k1=SpringElementStiffness(100);
k2=SpringElementStiffness(200);
19
§3-2 线性杆元 3、实例计算分析应用
步骤2:形成单元刚度矩阵
调用 function y = LinearBarElementStiffness(E,A,L)函数 k1=LinearBarElementStiffness(E,A,L1)
k2=LinearBarElementStiffness(E,A,L2)
K= 100 -100 0 -100 100 0 0 00
K=
K = SpringAssemble(K,k2,2,3)
100 -100 0
2020/2/29
-100 300 -200
9
0 -200 200
§3-1 弹簧元
4、实例计算分析应用
步骤4:引入边界条件
100 100 0
100 300 200
%
stiffness matrix for a linear bar with
%
modulus of elasticity E, cross-sectional
%
area A, and length L. The size of the
%
element stiffness matrix is 2 x 2.
第三章 MATLAB有限元分析与应用
§3-1 弹簧元 §3-2 线性杆元 §3-3 二次杆元 §3-4 平面桁架元 §3-5 空间桁架元
§3-6 梁元
2020/2/29
1
§3-1 弹簧元 1、有限元方法的步骤:
离散化域 形成单刚矩阵 集成整体刚度矩阵 引入边界条件 求解方程 后处理
2020/2/29
%
matrix k of the linear bar with nodes i and j
%
into the global stiffness matrix K.
%
This function returns the global stiffness