matlab有限元工具箱计算+python绘图

之前介绍过由裴博士基于python的feon有限元库,下载链接在前面,这边补充下feon的网站

https://github.com/YaoyaoBae/Feon,想要了解的可以去购买他2017年编写的'python与有限元'。


相对的这次介绍的是matlab上的一个有限元库,年代比较悠久,但内容非常全面就是操手动作还是有些麻烦。
图1是一个用py进行的简单绘图的平面钢架结构,虽然很简单,我们尝试用matlab求解出底部节点的支反力。

先是图片代码

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D


n1=(0,0)
n2=(0,3)
n3=(4,3)
n4=(4,0)
nds=[n1,n2,n3,n4]
k1=(-0.25,0)
k2=(0.25,0)
kds=[k1,k2]
k3=(4.25,0)
k4=(3.75,0)
kds2=[k3,k4]
#创建图标
fig=plt.figure()

ax=fig.add_subplot(111,aspect='equal')

ax.set_xlim(-1,5)
ax.set_ylim(-1,5)
ax.set_xticks([])
ax.set_yticks([])

    #绘制直线
for i in range(3):
    x,y=[nds[i][0],nds[i+1][0]],[nds[i][1],nds[i+1][1]]
    line=Line2D(x,y,color='k',linewidth=1.5,marker='o',markeredgecolor='w',ms='6')
    ax.add_line(line)

for i in range(1):
    x1, y1 = [kds[i][0], kds[i + 1][0]], [kds[i][1], kds[i + 1][1]]
    line = Line2D(x1, y1, color='k', linewidth=1.5,  markeredgecolor='w', ms=6)
    ax.add_line(line)

for i in range(1):
    x2, y2 = [kds2[i][0], kds2[i + 1][0]], [kds2[i][1], kds2[i + 1][1]]
    line = Line2D(x2, y2, color='k', linewidth=1.5, markeredgecolor='w', ms=6)
    ax.add_line(line)
    #绘制支座
ax.plot(n1[0],n1[1],'gs',ms=2)
ax.plot(n4[0],n4[1],'gs',ms=2)

plt.text(-0.5,3.25, r'20kN')
plt.text(4.25,3.25, r'20kN')
    #绘制箭头
ax.arrow(4,3.6,0,-0.5,length_includes_head=True,head_length=0.1,head_width=0.05,color='r')
ax.arrow(0,3,-0.5,0,length_includes_head=True,head_length=0.1,head_width=0.05,color='r')
ax.arrow(0,0,-0.1,-0.1,length_includes_head=False,)
ax.arrow(0.25,0,-0.1,-0.1,length_includes_head=False,)
ax.arrow(-0.25,0,-0.1,-0.1,length_includes_head=False,)
ax.arrow(4,0,-0.1,-0.1,length_includes_head=False,)
ax.arrow(4.25,0,-0.1,-0.1,length_includes_head=False,)
ax.arrow(3.75,0,-0.1,-0.1,length_includes_head=False,)
plt.show()

接下来我们先创建脚本基本信息
E=210e6;A=2e-2;I=5e-5;L1=3;L2=4;L3=3;
这些图上没有标注因为太麻烦了,果然还是用专业的画图软件画会比较好。。。hhhh

接下来附上整体代码

addpath D:\matlab\toolbox\M-Files
%基本信息,
E=210e6;
A=2e-2;
I=5e-5;
L1=3;
L2=4;
L3=3;
%单根刚度计算
k1=PlaneFrameElementStiffness(E,A,I,L1,90);
k2=PlaneFrameElementStiffness(E,A,I,L2,0);
k3=PlaneFrameElementStiffness(E,A,I,L3,270);
%建立整体刚度矩阵
K=zeros(12,12);
K=PlaneFrameAssemble(K,k1,1,2);
K=PlaneFrameAssemble(K,k2,2,3);
K=PlaneFrameAssemble(K,k3,3,4)
%引入边界条件,如图每个力为20kN,支座固支
k=K(4:9,4:9)
f=[-20;0;0;0;-20;0]
u=k\f
%后处理
U=[0;0;0;u;0;0;0]
F=K*U

一个简单的前处理+后处理过程
首先我们得到的第一个就是刚度矩阵

是一个12*12的矩阵,因为4个点分别包括平面xy加上转角

求出了支点的位移

再根据F=K*U
求出了所有支点的受力情况。其实后处理还有很多功能,包括求单元力,以及绘制剪力弯矩图,这次就介绍到这,下次会用feon和abaqus软件进行计算对比。

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MATLAB 有限元工具箱是一款在MATLAB软件上的扩展工具包,用于进行有限元分析。有限元分析是一种数值计算方法,用于解决实际工程问题的复杂数学模型。该工具箱提供了一系列函数和工具,帮助工程师和科学家进行结构力学、固体力学、流体力学和热传导等领域的分析。 MATLAB 有限元工具箱具有以下特点和功能: 1.模型创建:该工具箱允许用户从基本的几何形状创建复杂的有限元模型。用户可以定义结构的几何形状、材料性质和加载条件。 2.网格划分:工具箱提供了各种自动生成网格的功能,以及对现有网格进行编辑的能力。网格的划分决定了模型的准确性和计算效率。 3.材料属性:用户可以定义不同材料的力学性质,如杨氏模量、泊松比和密度等。这些属性对于分析结构的响应至关重要。 4.边界条件:工具箱允许用户定义各种边界条件,如固支、自由端和施加的力和位移等。这些条件对于模型的准确性和仿真的真实性至关重要。 5.求解器:MATLAB 有限元工具箱支持各种求解器,如矩阵求解器和迭代求解器,用于求解大规模线性和非线性方程组。这些求解器可用于计算模型的应力、应变和位移。 6.结果分析:工具箱提供了各种可视化和分析工具,以帮助用户理解和解释模型的结果。用户可以绘制应力和位移云图、进行应力和应变分布的剖面分析,以及计算结构的度和振动特性等。 总之,MATLAB 有限元工具箱是一个强大而灵活的工具,可帮助用户对各种结构和材料进行有限元分析。它可以提供准确和可靠的结果,为工程师和科学家提供了一个全面的解决方案,用于研究和优化现有结构的设计和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值