为何编写《有限单元法:编程与软件应用》这本书?

目前市面上,关于FEM理论(有限元理论)及FEM编程的书有许多,关于FEM软件应用的书也有许多,但关于两者之间结合的书比较少,这是目前市面书籍的gap,也是很多有限元初学者学习过程中存在的gap,因此我们写作了本书。本书将FEM基础理论、编程、及软件应用结合起来,讲完FEM基础理论,然后编程,最后采用结构工程师常用的几个软件进行同一个案例的分析并将分析结果与编程结果进行对比,当看到自己编写的FEM代码与商业软件的计算结果5个小数点内重合时,理论、编程、应用之间的gap自然而然就消除了。这正是我们编书的初衷,也是作者本人学习FEM基础理论,学习软件所采用的思路及方法。

因此这不仅仅是一本讲FEM,讲FEM编程或者讲FEM软件应用的书,而背后更重要的是,讲述作者推荐的一种学习FEM,学习软件的方法及思考过程,并不是纯粹的编著或者某些已有书籍的翻版。对于结构工程师及其他FEM理论应用者,十分重要的一点是在理解FEM基础理论的情况下灵活地运用FEM软件于实际问题。因此作者认为该书对于有限单元法的初学者及应用FEM解决实际工程问题的工程师有一定的用处。商品时代,给客户多一点选择。

[软件笔记] www.jdcui.com的软件笔记汇总贴

花了点时间,整理了一下 www.jdcui.com的软件笔记,并汇总到以下这个页面,有需要的小伙伴可以收藏一下,持续更新。链接:http://www.jdcui.com/?page_id=2850。Abauqs,Ansys,ETABS,SAP2000,MIDAS,YJK,PKPM,XTRACT,MATLAB,ATUOCAD,PERFORM-3D,OPENSEES,HYPERMESH

[FEM][MATLAB][有限元][编程] 压杆稳定问题MATLAB有限元编程 (《有限单元法-编程与软件应用》章节节选)

坚持实干、坚持一线、坚持积累、坚持思考,坚持创新。 接着博文《[力学][有限元][FEM]Basics of Buckling Analysis [曲屈分析基础]》继续介绍经典材料力学或结构力学课本上介绍的压杆稳定问题。该部分内容也是 书本 《有限单元法:编程与软件应用》屈曲分析章节的部分内容节选。 11.5 屈曲分析3:压杆稳定 作为屈曲分析的补充,本节讨论一下压杆稳定问题。 图 11‑10 压杆支座情况 算例结构为一根等截面轴心受压直杆,直杆材料为钢管,钢管外径100mm,管厚5mm,高5m。一共考虑了5种约束情况,分别为:1.两端铰接;2.一端铰接、一端嵌固;3.两端嵌固;4.一端嵌固、一端滑动;5.一端嵌固、一端自由。针对每种约束情况,分别将压杆划分为1个、2个、5个、10个、20个梁单元,进行屈曲分析。 11.5.1 MATLAB代码与注释 本节以底端嵌固、上端自由、划分20个单元的情况为例,给出进行屈曲分析所需的主要代码。 % Pressed Bar Buckling Analysis % Author : JiDong Cui(崔济东),Xuelong Shen(沈雪龙) % Website : …

[FEM][MATLAB][有限元] FEM Modal Analysis Programming with MATLAB (Frame Elements) (框架单元模态分析编程)

坚持实干、坚持一线、坚持积累、坚持思考,坚持创新。 接着博文《[动力学] 模态分析基础 (Basics of modal analysis)》继续介绍框架单元用于模态分析的方法。该部分内容也是 书本 《有限单元法:编程与软件应用》模态分析章节的部分内容节选。 10.3.1 梁单元质量矩阵 集中质量矩阵(局部坐标) 设杆材料密度为 ,单元长度为 ,截面积为 ,每个节点分担单元1/2的平动质量,无转动惯量,则单元质量矩阵            (10.3‑1) 10.3.2 算例:2D框架模态分析 算例采用与2D框架结构静力分析中相同的结构,采用欧拉梁单元,材料密度为2.5493e-9t/mm3,采用集中质量矩阵,将单元质量集中于两端节点,且不考虑集中质量后的节点转动质量。 由于算例模态分析的Matlab代码与前面章节中静力分析的Matlab代码大体相同,因此这里仅给进行模态分析所需的新增代码。 % Truss 2D modal analysis …

[FEM][MATLAB][有限元] FEM Modal Analysis Programming with MATLAB (Truss Element) (桁架单元模态分析编程)

坚持实干、坚持一线、坚持积累、坚持思考,坚持创新。 接着博文《[动力学] 模态分析基础 (Basics of modal analysis)》继续介绍桁架单元用于模态分析的方法。该部分内容也是 书本 《有限单元法:编程与软件应用》模态分析章节的部分内容节选。 10.2 2D桁架结构模态分析 模态分析需要的参数主要有结构的刚度矩阵和质量矩阵,其中的刚度矩阵与静力分析中的刚度矩阵相同,这里仅给出进行模态分析所需的质量矩阵等其他条件。 10.2.1 桁架单元质量矩阵 集中质量矩阵(局部坐标) 设杆材料密度为 ,单元长度为 ,截面积为 ,每个节点分担单元1/2质量,则单元质量矩阵                 (10.2‑1) 整体坐标下的质量矩阵转换 整体坐标下单元一致质量矩阵为    …

[FEM][有限元][编程][Matlab][Code by myself] 4节点四面体单元 (C3D4)

  (业余时间 和小伙伴一起写写有限元程序 ) 程序作者 ( Author ) JiDong Cui (崔济东) 1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所;2.华南理工大学建筑设计研究院 基本概念 ( Concept ) 4节点四面体线性“完全积分”单元,用Abaqus中的命名规则,即 C3D4。 问题描述( Problem Description) 悬臂梁,悬臂长度2.0m,梁高0.5m,梁宽0.2m。梁左端嵌固,受重力作用。材料弹性模量E=200000MPa,材料泊松比为0.3。 基于MATLAB编程实现该悬臂梁的弹性静力分析,采用C3D4单元进行模拟,并将MATLAB的计算结果与Abaqus、midas Gen分析结果进行对比。 MATLAB 编程 model disp stress …

[FEM][有限元][编程][Matlab][Code by myself] 平面6节点二次“完全积分”单元(CPS6)

程序作者 ( Author ) JiDong Cui (崔济东) 1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所; 2.华南理工大学建筑设计研究院 基本概念 ( Concept ) 平面6节点二次“完全积分”单元,用Abaqus中的命名规则,即CPS6。 问题描述( Problem Description) XZ平面内的悬臂梁,悬臂长度2.0m,梁高0.5m,梁宽0.2m。梁左端嵌固,右端受到-z方向的集中力1000kN。材料弹性模量E=200000MPa,材料泊松比为0.3。 MATLAB编程实现该悬臂梁的弹性静力分析,采用CPS6单元进行模拟,并将MATLAB的计算结果与Abaqus分析结果进行对比。 MATLAB 编程 disp stress Abaqus Model stress 单元应力对比 (MATLAB …

[FEM][有限元][编程][Matlab][Code by myself] 8节点六面体单元(C3D8)(8-node linear brick)

  (业余时间 和小伙伴一起写写有限元程序 ) 程序作者 ( Author ) JiDong Cui (崔济东) 1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所;2.华南理工大学建筑设计研究院 基本概念 ( Concept ) 8节点六面体线性“完全积分”单元,用Abaqus中的命名规则,即 C3D8。 问题描述( Problem Description) 悬臂梁,悬臂长度2.0m,梁高0.5m,梁宽0.2m。梁左端嵌固,受重力作用。材料弹性模量E=200000MPa,材料泊松比为0.3。 基于MATLAB编程实现该悬臂梁的弹性静力分析,采用C3D8单元进行模拟,并将MATLAB的计算结果与SAP2000、midas Gen分析结果进行对比。 MATLAB 编程 disp stress SAP2000 …

[FEM][有限元][编程][Matlab][Code by myself] 平面4节点线性“完全积分”单元(CPS4)

  (业余时间 和小伙伴一起写写有限元程序 ) 程序作者 ( Author ) JiDong Cui (崔济东) 1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所; 2.华南理工大学建筑设计研究院 基本概念 ( Concept ) 平面4节点线性“完全积分”单元,用Abaqus中的命名规则,即CPS4。 问题描述( Problem Description) XZ平面内的悬臂梁,悬臂长度2.0m,梁高0.5m,梁宽0.2m。梁左端嵌固,右端受到-z方向的集中力1000kN。材料弹性模量E=200000MPa,材料泊松比为0.3。 MATLAB编程实现该悬臂梁的弹性静力分析,采用Q4平面单元进行模拟,并将MATLAB的计算结果与SAP2000、midas Gen分析结果进行对比。 MATLAB 编程 disp stress SAP2000 …

[FEM][有限元][编程][Matlab][Code by myself] Constant Stress Triangle Element 三角形常应变单元(CST)

(  业余时间 和小伙伴一起写写有限元程序 ) 程序作者 ( Author ) JiDong Cui (崔济东) 1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所;2.华南理工大学建筑设计研究院 基本概念 ( Concept ) 三节点三角形单元有三个节点和三个直边,单元内应力为常数,因此称为常应变三角形单元,即Constant Stress Triangle Element(常应力三角形单元),简称CST单元。 问题描述( Problem Description) 平面内的悬臂梁,悬臂长度2.0m,梁高0.5m,梁宽0.2m。梁左端嵌固,右端受到-z方向的集中力1000kN。材料弹性模量E=200000MPa,材料泊松比为0.3。 基于MATLAB编程实现该悬臂梁的弹性静力分析,采用CST平面单元进行模拟,并将MATLAB的计算结果与SAP2000、Midas Gen分析结果进行对比。 MATLAB 编程 mesh …

[FEM][有限元][编程][Matlab][Code by myself] 2D Timoshenko梁单元

(  有空和小伙伴一起写写有限元程序 ) 程序作者 ( Author ) JiDong Cui (崔济东) 1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所;2.华南理工大学建筑设计研究院 基本概念 ( Concept ) 欧拉梁单元基于一定的假设(Kirchhoff假设),在梁的高度远小于其跨度的时候,可以忽略梁的横向剪切变形,此时采用欧拉梁单元进行模拟,能够得到较为满意的结果。但对于跨高比较小的深梁,梁的剪切变形将引起附加挠度,使得原来垂直于轴线的截面在变形后将不再与轴线垂直,且发生翘曲。此时需采用能够考虑横向剪切变形的梁单元进行模拟。 考虑剪切变形修正的经典梁单元和Timoshenko梁单元是两种较为常用的能够考虑梁剪切变形的梁单元,但这两种梁单元仍假定原来垂直于中面的截面在梁变形后仍保持为平面。 在列式方面,Timoshenko梁的基本特点是将挠度和截面转角分别插值。Timoshenko梁单元应用广泛,也容易据此推广到板壳单元 问题描述( Problem Description) 一榀XZ平面内的刚架结构,结构几何信息如图所示;节点1、5处为固定支座,节点4处受到+x方向P=200kN的集中力作用。结构中各杆件采用相同的材料,弹性模量E=30000MPa,梁、柱截面面积分别为0.08m2和0.16m2,梁、柱截面惯性矩分别为0.0128/12m4和0.0256/12m4,梁柱抗剪面积分别为0.0667m2和0.1333m2,材料泊松比为0.2。 基于MATLAB编程实现该框架结构的弹性静力分析,所有构件采用剪切修正梁单元进行模拟,并将基于MATLAB编程计算的结果与Abaqus分析结果进行对比。 MATLAB 编程 Abaqus 位移结果对比: 支座反力对比: 可以看出,MATLAB编程计算结果是和Abaqus计算结果是完全一致的。 …

[FEM][有限元][编程][Matlab][Code by myself] FEM Analysis: 2D Truss Element [有限元分析: 2D桁架单元]

(和小伙伴,一起给大家带来有限元编程案例。) 程序作者 ( Author) JiDong Cui (崔济东) 1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所;2.华南理工大学建筑设计研究院 问题描述( Problem Description) 节点1处为固定铰支座,节点4处为滑动铰支座,节点5、6、7处分别受到-y方向P=100000N的集中力作用;结构中各杆件采用相同的规格,其中弹性模量E=200000MPa,截面积A=4532mm2。 基于MATLAB编程实现该桁架结构的弹性静力分析,并将MATLAB的计算结果与SAP2000、Midas Gen分析结果进行对比。 MATLAB 编程 SAP2000 Midas Gen ABAQUS   可以看出,MATLAB编程计算结果是和 SAP2000,MidasGen 及 Abaqus计算结果是完全一致的。 注释 ( Comments ) …

[FEM][有限元][编程][Matlab][Code by myself] FEM Analysis: 2D Euler Beam Element [有限元分析: 2D欧拉梁单元]

(  有空和小伙伴一起写写有限元程序 ) 程序作者 ( Author) JiDong Cui (崔济东) 1, XueLong Shen (沈雪龙)2 1.广州容柏生建筑结构设计事务所;2.华南理工大学建筑设计研究院 问题描述( Problem Description) 节点1、5处为固定支座,节点4处受到+x方向P=200kN的集中力作用。结构中各杆件采用相同的材料,弹性模量E=30000MPa,梁、柱截面面积分别为0.08m2和0.16m2,梁、柱截面惯性矩分别为0.0128/12 m4和0.0256/12 m4。 基于MATLAB编程实现该框架结构的弹性静力分析,所有构件采用欧拉梁单元进行模拟,并将MATLAB的计算结果与SAP2000、midas Gen分析结果进行对比。 MATLAB 编程结果 SAP2000 计算结果 Midas Gen计算结果 注释 ( Comments ) 源代码已经收录到新书《有限单元法:编程与软件应用》,详见链接:http://www.jdcui.com/?page_id=9731   ( 如果您发现有错误,欢迎批评指正。邮箱:jidong_cui@163.com …

有趣的数学3D曲面

数学是个很好玩的东西。高等数学中,我们学过很多二次曲面,它们都有很漂亮的3D效果,如下图: 1.椭圆锥面 (公式:z^2=(x^2)/(a^2)+(y^2)/(b^2)) 2.双曲抛物面(传说中的马鞍面)真的很像马鞍,哈哈。(公式:z=(x^2)/(a^2)-(y^2)/(b^2)) 3.椭圆抛物面 (公式:z=(x^2)/(a^2)+(y^2)/(b^2)) 4.椭球面,有点像外星巨蛋,可爱,哈哈。(公式:(x^2)/(a^2)+(y^2)/(b^2)+(z^2)/(c^2)=1) 5.单叶双曲面 (公式:(x^2)/(a^2)+(y^2)/(b^2)-(z^2)/(c^2)=1) 6.双叶双曲面 (公式:(x^2)/(a^2)-(y^2)/(b^2)-(z^2)/(c^2)=1) 7.这个不知道怎么称呼,但是经常见到 (公式:(z^2)*sqrt(x^2+y^2)=a*sin(sqrt(x^2+y^2))^2) 8.不知道叫什么名称,网上找的。(公式:z=a*((Sin(x^2) + Sin(y^2))/Exp(x^2 + y^2)) 9.函数类似matlab中的peak函数,初学matlab的绘图一般都讲这个函数 (公式:z=a*x*exp(-(x^2+y^2))) 10.由sin(x)和cos(y)组成的函数,我想说很像章鱼小丸子。哈哈。 (公式:z=a*cos(x/b)*sin(y/c)) 小结: 1.数学很美。 2.上面的曲面可以很简单的在MATLAB中实现,如果你喜欢,不妨去试一试。