基于MATLAB的有限元法求解EIT技术的正问题
2017-07-16 16:20
357 查看
有限元法(Finite Element Method)是基于!近代计算机的快速发展而发展起来的一种近似数值方法, 用来解决力学,数学中的带有特定边界条件的偏微分方程问题(PDE)。而这些偏微分方程是工程实践中常见的固体力学和流体力学问题的基础。有限元和计算机发展共同构成了现代计算力学 (Computational Mechanics)的基础。有限元法的核心思想是“数值近似”和“离散化”, 所以它在历史上的发展也是围绕着这两个点进行的。
作者:菲兹
链接:https://www.zhihu.com/question/27696855/answer/43989189
常常需要求解各类微分方程,而许多微分方程的解析解一般很难得到,使用有限元法将微分方程离散化后,可以编制程序,使用计算机辅助求解。有限元法在早期是以变分原理为基础发展起来的,所以它广泛地应用于以拉普拉斯方程和泊松方程所描述的各类物理场中(这类场与泛函的极值问题有着紧密的联系)。
求解EIT技术的正问题背景:圆形被测物,16个电极排列。
%利用网格划分工具箱将圆形分为多个三角形,并标记节点坐标与三角形单元编号。保存为txt文件为tri_in1.txt。
网格划分工具箱请看链接
这里写链接内容
然后读取文本的信息,%总结点数,单元数,受约束点数%COORD结点坐标数组 LNODS 单元定义数组 通过ASSEMBLE函数ASTIF=ASSEMBLE(NPOIN,NELEM,YOUNG,POISS,THICK,COORD,LNODS)调用单元刚度矩阵函数[ESTIF,SMATX]=FORMESTIF(i,COORD,LNODS)%i为当前所计算的单元号获得刚度矩阵的集成。
tri_in1.txt文档可以自己通过网格划分获取。
图像显示:
具体代码请留言!互相交流,或者点击链接
这里写链接内容
作者:菲兹
链接:https://www.zhihu.com/question/27696855/answer/43989189
常常需要求解各类微分方程,而许多微分方程的解析解一般很难得到,使用有限元法将微分方程离散化后,可以编制程序,使用计算机辅助求解。有限元法在早期是以变分原理为基础发展起来的,所以它广泛地应用于以拉普拉斯方程和泊松方程所描述的各类物理场中(这类场与泛函的极值问题有着紧密的联系)。
求解EIT技术的正问题背景:圆形被测物,16个电极排列。
%利用网格划分工具箱将圆形分为多个三角形,并标记节点坐标与三角形单元编号。保存为txt文件为tri_in1.txt。
网格划分工具箱请看链接
这里写链接内容
然后读取文本的信息,%总结点数,单元数,受约束点数%COORD结点坐标数组 LNODS 单元定义数组 通过ASSEMBLE函数ASTIF=ASSEMBLE(NPOIN,NELEM,YOUNG,POISS,THICK,COORD,LNODS)调用单元刚度矩阵函数[ESTIF,SMATX]=FORMESTIF(i,COORD,LNODS)%i为当前所计算的单元号获得刚度矩阵的集成。
%变量说明2008.11.10 %NPOIN NELEM NVFIX %总结点数,单元数,受约束点数 %COORD结点坐标数组 LNODS 单元定义数组 %FORCE?结点力数组(n,3) n:受力结点数,(n,1):作用结点号,(n,2):x方向,(n,3):y方向 %FIXED?约束信息数组(n,3) n:受约束结点数, (n,1):约束结点号, %(n,2)与(n,3):约束点x方向和y方向的约束情况,受约束为1,否则为0 %ASTIF总刚度矩阵,ASLOD总荷载向量 % format short e %设定输出类型 clear FP1=fopen('tri_in1.txt','rt'); %打开数据文件 FP1数据文件指针 %读入初始数据 NPOIN=fscanf(FP1,'%d',1); NELEM=fscanf(FP1,'%d',1);NFORCE=fscanf(FP1,'%d',1);NVFIX=fscanf(FP1,'%d',1); YOUNG=fscanf(FP1,'%e',1);POISS=fscanf(FP1,'%f',1);THICK=fscanf(FP1,'%f',1); LNODS=fscanf(FP1,'%f',[3,NELEM])';%单元定义数组 COORD=fscanf(FP1,'%f',[2,NPOIN])';%结点坐标数组 FORCE=fscanf(FP1,'%d',[3,NFORCE])';%结点力数组 FIXED=fscanf(FP1,'%d',[3,inf])';%?约束数组 ASTIF=ASSEMBLE(NPOIN,NELEM,YOUNG,POISS,THICK,COORD,LNODS);%?生成总刚 m=fix(NPOIN/4);%m输入电流节点 n=fix(NPOIN/3);c=fix(NPOIN/2);%n输出电流节点 ASTIF(1:c-1,c)=0; ASTIF(c+1,c)=0; ASTIF(c,c)=1;%c参考电势为0 b=zeros(NPOIN,1); b(m,1)=1; b(n,1)=-1; [Q1,Q2,Q3,Q4]=gaus(ASTIF,b); scatter(COORD(:,1),COORD(:,2),5,Q4);%散点图 [X,Y,Z]=griddata(COORD(:,1),COORD(:,2),Q4,linspace(-1,1,100)',linspace(-1,1,100),'v4'); figure(1) contourf(X,Y,Z,20); %等值线图 % figure(2) % pcolor(X,Y,Z);shading interp%伪彩色图 figure(3) surf(X,Y,Z);%三维曲面 figure(4) scatter(COORD(:,1),COORD(:,2),5,Q4);%散点图 fclose(FP1);%?关闭文件
tri_in1.txt文档可以自己通过网格划分获取。
图像显示:
具体代码请留言!互相交流,或者点击链接
这里写链接内容
相关文章推荐
- 遗传算法求解带非线性约束的单目标问题,matlab代码,基于K Deb的论文
- 基于MATLAB的模拟退火算法求解TSP问题
- matlab 求解线性规划问题
- 基于爬山算法求解TSP问题(JAVA)
- matlab求解非线性约束+线性规划+超定欠定普通方程组等优化问题
- matlab学习笔记之求解线性规划问题和二次型问题
- 基于边缘重组的遗传算法求解TSP问题
- 基于粒子群算法求解求解TSP问题(JAVA)
- 求解:基于docker搭建跨主机hadoop集群遇到的问题
- [MATLAB]Matlab求解积分问题探讨
- 面临的深度学习技术问题以及基于TensorFlow的开发实践
- 基于MATCOM的MATLAB与VC混合编程技术研究
- 基于自组网技术的智能无线抄表方案 现代生活中,水表、电表和煤气表的抄录和收费,是城市生活的一个大问题。人工入室抄表,扰民不说,还可能给居民带来不安全因素;对于各职能公司来说,派人上门抄表也无形中耗费了大量人力资源和时间。近年来,信息化社会在逐 步改变人们的
- 基于遗传算法求解TSP问题(C#界面)
- 基于遗传算法求解车辆路径问题
- 基于MATLAB利用模拟退火算法解决费马点问题
- 基于MATLAB的有限差分法解决二位瞬态导热问题
- matlab-求解最优化问题的函数fminbnd,fmincon,quadprog.....区别总结
- MATLAB求解线性规划(含整数规划和0-1规划)问题