FEM_SFT_程序目录
本书中的MATLAB程序主要用于结构的有限元分析,涵盖矩阵分析、弹性分析、弹塑性分析等多个方面。以下按照章节顺序提取各章的MATLAB程序:
第1章:MATLAB编程语言概述
用于展示二分法、牛顿-拉夫森法和使用高斯-牛顿算法进行非线性回归的编程示例,包括相关函数的定义和计算过程。
第2章:框架结构的矩阵分析
planetruss函数:用于提取平面桁架结构的刚度矩阵。输入参数包括弹性模量E、横截面积A、总自由度数Wd、单元数量element、单元连接矩阵elementcon、节点坐标xcord和ycord。通过循环计算每个单元的刚度矩阵,并根据节点连接关系将其组装到整体刚度矩阵中。
drawplanetruss函数:绘制平面桁架的变形形状。根据节点坐标和变形后的节点坐标,绘制出原始桁架和变形后的桁架图形。
trussforce函数:计算平面桁架成员的内力。根据节点位移和单元刚度矩阵,计算每个单元的内力。
spacetruss函数:提取空间桁架结构的刚度矩阵。与平面桁架类似,但考虑了空间坐标和旋转矩阵。
spacetrussforce函数:计算空间桁架成员的内力。
planeframe函数:计算平面框架结构的刚度矩阵。考虑了节点的旋转自由度,通过旋转矩阵将局部刚度矩阵转换为整体刚度矩阵。
drawplaneframe函数:绘制平面框架的变形形状。
spaceframe函数:计算空间框架结构的刚度矩阵。考虑了空间节点的六个自由度,根据节点连接关系和坐标计算刚度矩阵。
drawspaceframe函数:绘制空间框架的变形形状。
grid函数:计算网格结构的刚度矩阵。适用于承受垂直于结构平面荷载的平面框架,根据节点连接和坐标计算刚度矩阵。
drawgrid函数:绘制网格结构的变形形状。
nodeforces函数:将构件上的荷载转换为等效节点荷载。根据荷载类型和分布情况,计算等效节点荷载并添加到荷载向量中。
settle函数:计算由于支座沉降引起的等效节点力。根据支座沉降值和结构刚度矩阵,计算等效节点力并更新荷载向量。
temperature函数:计算由于温度变化引起的等效节点力。根据温度变化值和材料属性,计算等效节点力并更新荷载向量。
aberration函数:计算由于构件不匹配引起的等效节点力。根据构件不匹配的情况,计算等效节点力并更新荷载向量。
discon函数:处理具有释放端条件的构件。根据释放端的类型,修改刚度矩阵以考虑释放端的影响。
elasticframe函数:计算具有弹性支座的框架结构的刚度矩阵。在计算刚度矩阵时,将弹性支座的刚度添加到相应节点的刚度矩阵中。
第3章:使用有限元程序进行结构的弹性分析
gausslegendre函数:获取高斯积分点的坐标和权重。根据指定的积分点数量,返回相应的积分点坐标和权重。
shapeR函数:计算一维单元的插值(形状)函数及其导数。根据单元类型(两节点、三节点或四节点),返回插值函数及其导数。
多个用于计算不同类型结构(如平面应力、平面应变、轴对称、三维结构等)的刚度矩阵、等效节点力向量、应力等的函数,如continuum2d、continuumstress、tetrahex、axisym、mesh、mesh3d、StiffnessMatrix3d、nodeforces3d、nodeforcesGlobal3d、axinodeforcesGlobal、TimoBending、TimoShear、TimoForce、mindlinstiffness、mindlinforce等。这些函数根据结构的几何形状、材料属性、荷载情况等,通过数值积分等方法计算相应的力学量。
第4章:使用有限元程序进行结构的弹塑性分析
未明确提及新的独立MATLAB函数,但包含了与弹塑性分析相关的计算过程和算法,如应力积分、屈服准则判断、硬化定律应用等,这些计算过程可能在主程序中通过调用相关函数或直接编写代码实现。例如,在计算材料的弹塑性行为时,根据不同的硬化模型(如等向硬化、随动硬化、混合硬化等),使用相应的公式计算应力、应变和等效塑性应变等。同时,通过迭代方法(如牛顿-拉夫森法)求解非线性方程,以确定材料在弹塑性状态下的响应。
第5章:有限变形与超弹性
1.编程获取变形梯度、拉格朗日应变和第二Piola Kirchhoff应力
未明确给出完整独立函数,但在相关示例中可能涉及计算这些量的代码片段,如通过对位移场的求导等操作来计算变形梯度,再根据变形梯度计算拉格朗日应变和第二Piola Kirchhoff应力等,这些计算过程可能在主程序中根据具体问题实现。
2.有限应变分析相关编程
对于不同单元(如桁架单元等)在不同荷载(如拉伸荷载)下的有限应变分析,通过编写代码实现计算位移、应变和应力等。在计算过程中,根据结构的几何形状、材料参数以及荷载条件,利用相关理论公式(如基于特定的变形理论和本构关系)进行计算。例如,在处理桁架单元受拉时,根据节点位移计算单元的伸长量,进而计算应变和应力,可能涉及到对单元刚度矩阵的组装和方程求解等操作。
3. 超弹性材料相关编程
在处理超弹性材料的拟合问题时,编写代码实现将实验数据拟合到不同的超弹性模型(如neo Hookean模型、Mooney Rivlin模型、Yeoh模型、Ogden模型等)。具体操作可能包括定义模型函数,根据实验数据确定模型参数,通过优化算法(如最小二乘法等)使模型预测值与实验数据之间的误差最小化,从而得到合适的模型参数。例如,对于neo Hookean模型,根据其应力 应变关系公式,结合实验数据调整模型参数,使模型能够准确描述材料的力学行为。
第6章:有限应变
1.基于特定理论的有限应变分析编程
针对具有平面应变条件的结构在不同荷载下(如弯曲和牵引荷载)的有限应变分析,通过编写代码实现。在编程过程中,考虑结构的几何形状、材料特性以及荷载分布,运用有限元方法进行离散化处理。根据有限应变理论,计算变形梯度、应变张量等相关量,可能涉及到对不同积分方法(如TL和UL公式)的应用,以及对Jaumann应力率等应力率的计算。例如,在计算变形梯度时,根据节点位移和单元形状函数,通过求导计算得到变形梯度矩阵,进而计算应变张量。
2.有限变形弹塑性相关编程(如有)
可能涉及到对有限变形弹塑性问题的编程处理,包括根据弹塑性理论更新应力和应变,考虑材料的硬化行为(如等向硬化、随动硬化等),通过迭代方法求解非线性方程以得到结构在弹塑性状态下的响应。具体代码可能包括根据屈服准则判断材料是否进入塑性状态,计算塑性应变增量,更新应力和应变张量等操作,这些操作可能在主程序中根据具体问题逐步实现。
第7章:线性方程组和特征问题的求解
1.线性方程组求解相关编程
给出了多个用于求解线性方程组的函数,如mldivide(矩阵左除法)用于求解线性方程组Ax = B,qr函数用于进行QR分解,lu函数用于LU分解,chol函数用于Cholesky分解等。这些函数通过不同的算法实现对线性方程组的求解,用户可以根据矩阵的特点(如是否对称、正定等)选择合适的求解方法。例如,对于对称正定矩阵,Cholesky分解可能是一种高效的求解方法,通过chol函数可以得到矩阵的Cholesky分解因子,进而求解线性方程组。
2.特征问题求解相关编程
提供了一系列用于求解特征问题的函数,如eig函数用于计算矩阵的特征值和特征向量,jacobi方法相关函数用于实现雅可比方法求解特征问题,generalized jacobi方法相关函数用于广义雅可比方法,HQRI方法相关函数用于Householder QR迭代方法,vector inverse方法相关函数、forward iteration方法相关函数、shifted vector iteration方法相关函数、Rayleigh Quotient iteration方法相关函数(包括带Gram Schmidt方法的版本)、implicit polynomial iteration方法相关函数、Lanczos transformation方法相关函数(包括收敛检查函数)、subspace方法相关函数等。这些函数通过不同的迭代算法或变换方法求解矩阵的特征值和特征向量,适用于不同规模和特性的矩阵。例如,雅可比方法通过一系列的平面旋转将矩阵化为对角矩阵,从而得到特征值和特征向量,相关函数实现了该方法的具体计算过程。
浙公网安备 33010602011771号