Matlab有限元分析操作基础
- 格式:doc
- 大小:416.55 KB
- 文档页数:13
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的有限元分析工具箱(FEATool)。
以下是一个简单的步骤:
1.建立模型:首先,使用FEATool创建圆柱绕流的模型。
这包括
定义流体区域、边界条件、初始条件等。
2.划分网格:使用FEATool对模型进行网格划分,以便进行有限
元分析。
3.设置材料属性:为流体和圆柱设置相应的物理属性,如密度、
粘度等。
4.设置边界条件和载荷:定义流体的入口和出口速度,以及任何
作用在圆柱上的力或力矩。
5.运行分析:使用FEATool进行有限元分析,这可能涉及到求解
流场的动量方程和连续性方程等。
6.后处理:使用FEA Tool的结果可视化功能,查看流场的速度、
压力等分布,以及圆柱受到的力或力矩等。
请注意,这只是一个非常基础的概述。
实际操作中,可能需要考虑更多的因素,如湍流模型的选择、边界条件的详细设置等。
另外,由于有限元分析是一个计算密集型任务,可能需要高性能计算资源。
第三章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”函数求解方程组。
第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 有限元基础一、什么是有限元分析?有限元分析(Finite Element Analysis,FEA)是一种数值计算方法,用于解决复杂的工程和科学问题。
它将连续的物理系统分解成离散的有限元素,通过求解线性或非线性方程组来计算系统的行为。
有限元分析可以用于求解结构、流体力学、热传导等领域中的问题。
二、Matlab 有限元基础1. Matlab 基础知识Matlab 是一个数值计算软件,它提供了强大的矩阵运算能力和丰富的绘图功能。
在进行有限元分析时,Matlab 可以用于构建模型、求解方程组和可视化结果。
2. 有限元模型构建在进行有限元分析之前,需要先构建模型。
通常情况下,模型可以通过 CAD 软件进行建模,并导出为 STL 格式。
然后使用 Matlab 中的importGeometry 函数将 STL 文件导入到 Matlab 中,并使用pdegeometry 函数创建几何体对象。
3. 生成网格生成网格是指将几何体对象分割成小块的过程。
在 Matlab 中,可以使用 generateMesh 函数生成简单形状网格或使用 PDE 工具箱中的自动网格生成器生成更复杂形状的网格。
4. 定义边界条件在进行有限元分析时,需要定义边界条件。
边界条件包括约束和载荷。
约束是指物体的运动被限制的方式,载荷是施加在物体上的力或压力。
5. 求解方程组在定义好模型、网格和边界条件后,可以使用 Matlab 中的 pdepe 函数求解偏微分方程组。
pdepe 函数使用有限元方法求解偏微分方程组,并返回解向量。
6. 可视化结果最后一步是可视化结果。
Matlab 提供了丰富的绘图函数,可以用于绘制网格、位移、应力等结果。
三、有限元分析中常用的 Matlab 工具箱1. PDE 工具箱PDE 工具箱是一个专门用于求解偏微分方程问题的工具箱。
它提供了自动网格生成器、求解器和可视化工具,可以用于求解结构、流体力学和热传导等问题。
有限元数值解法在MATLAB中的实现及可视化摘要:偏微分方程的数值解法在数值分析中占有很重要的地位,很多科学技术问题的数值计算包括了偏微分方程的数值解问题。
在学习初等函数时,总是先画出它们的图形,因为图形能帮助我们了解函数的性质。
而对于偏微分方程,画出它们的图形并不容易,尤其是没有解析解的偏微分方程,画图就显得更加不容易了。
为了从偏微分方程的数学表达式中看出其所表达的图形、函数值与自变量之间的关系,通过MATLAB编程,用有限元数值解法求解了偏微分方程,并将其结果可视化。
关键词:偏微分方程;MATLAB;有限元法;可视化1 引言(Introduction)偏微分方程的数值解法在数值分析中占有很重要的地位,很多科学技术问题的数值计算包括了偏微分方程的数值解问题。
近三十多年来,它的理论和方法都有了很大的发展,而且在各个科学技术的领域中应用也愈来愈广泛。
例如,核武器的研制要有理论设计和核试验。
但核反应和核爆炸的过程是在高温高压的条件下进行的,而且巨大的能量在极短的时间内释放出来,核装置内部的细致反应过程及各个物理量的变化是根本不能用仪器测量出来的,核试验只是提供综合的数据。
而描述核反应和爆炸物理过程的数学模型是一个很复杂的非线性偏微分方程组,也根本没有办法得到这个方程组理论上的精确解。
所以发展核武器的国家都在计算机上对核反应过程进行数值模拟,这也称为“数值核实验”,它可以大大减少核试验的次数,节约大量的经费,缩短研制的周期[1]。
在学习初等函数时,总是先画出它们的图形,因为图形能帮助我们了解函数的性质。
而对于偏微分方程,画出它们的图形并不容易,尤其是没有解析解的偏微分方程,画图就显得更加不容易了。
所以本文主要研究如何用MATLAB数值求解偏微分方程,并将其数值解绘制成三维图形的形式,从而可以从复杂的数学表达式中看出其所表达的图像、函数值与自变量之间的关系[2]。
2 有限元法(Finite element method)2.1 有限元法概述有限元法的基本思想是将结构离散化,用有限个容易分析的单元来表示复杂的对象,单元之间通过有限个节点相互连接,然后根据变形协调条件综合求解。
有限元的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 有限元基础什么是有限元法有限元法(Finite Element Method,FEM)是一种数值计算方法,常被用于工程和科学领域中的结构力学、流体力学、热传导等问题的求解。
有限元法通过将复杂的实际问题离散化为有限个简单的单元,利用数学模型和计算方法来近似求解问题。
有限元法的基本思想是将计算域划分为有限个小单元,每个小单元的物理性质通过节点上的数学函数进行近似描述。
通过对这些小单元的数学模型进行积分计算,得到整个计算域的方程,并通过求解这些方程来得到问题的近似解。
Matlab 在有限元分析中的应用Matlab作为一种功能强大的数值计算和编程软件,被广泛应用于有限元分析中。
它提供了丰富的数学和计算工具,能够方便地实现有限元法的建模、求解和分析。
有限元法的建模在Matlab中,有限元法的建模主要包括以下几个步骤:1.创建几何模型:通过定义节点和单元来描述计算域的几何形状。
可以使用Matlab提供的图形界面工具或者编程方式来创建几何模型。
2.定义边界条件:根据实际问题的边界条件,为模型的节点或单元指定相应的约束条件。
这些条件通常包括位移、力和温度等。
3.定义材料性质:根据实际问题的材料性质,为模型的节点或单元定义相应的材料参数。
这些参数包括弹性模量、泊松比和热导率等。
4.网格划分:将计算域划分为有限个小单元,形成离散化的网格结构。
在Matlab中,可以使用自带的网格划分工具或者自定义的算法进行网格划分。
5.构建刚度矩阵和载荷向量:根据节点的约束条件和单元的材料性质,利用数学公式和计算方法构建刚度矩阵和载荷向量。
有限元法的求解有限元法的求解主要包括以下几个步骤:1.组装系统方程:根据刚度矩阵和载荷向量,将节点的位移和载荷进行组合,形成整个系统的方程。
2.施加边界条件:将已知的位移和载荷应用于系统方程中的相应位置,形成含有未知位移的方程。
3.求解方程:使用Matlab提供的线性代数求解函数,求解含有未知位移的系统方程,得到位移的近似解。
Matlab 有限元分析20140226
为了用Matlab 进行有限元分析,首先要学会Matlab 基本操作,还要学会使用Matlab 进行有限元分析的基本操作。
1. 复习:上节课分析了弹簧系统
x 推导了系统刚度矩阵
11221
21200k 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是多大矩阵?
今天的系统刚度矩阵是什么?
因为
11
22
1212
k k
k k
k k k k
-
⎡⎤
⎢⎥
-
⎢⎥⎢⎥--+
⎣⎦
所以
1000100
0200200 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]%构造外力列阵
步骤五:解方程
引例:已知1212
u 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. 总结
clc
clear
k1=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 13
2 dan 34 3dan 35 4dan 35 dan5 54 dan6 42。