【问题标题】:How to setup MATLAB shape function solver如何设置 MATLAB 形状函数求解器
【发布时间】:2022-10-07 00:49:13
【问题描述】:

我试图在 MATLAB 中找到有限元分析问题的形状函数。基本形状函数看起来像,左边是边界条件。在 Ni=N1,x=x1,y=y1(节点 1 的坐标)处,形函数等于 1,当 Ni=N1 时,x=x2,y=y2(节点 2 的坐标),形状函数将为 0,依此类推,在 Ni=N2,N3 等处类似。我使用一个名为 A 的符号 16*16 矩阵来表示四个形状函数的 4 个系数。

这是我的代码,用于查找从 N1 到 N4 的四个方程(总共 16 个未知数)的 alpha、beta、gamma 和最后一个希腊字母:

A = sym(\'A\', [4 4]);
eqns = zeros(4,4);
coorx = sym(\'coorx\', [1 4]);
coory = sym(\'coory\', [1 4]);
for i=1:4
    for j=1:4
        if j==i
           eqns(i,j)=A(i,1)+A(i,2)*coorx(j)+A(i,3)*coory(j)+A(i,4)*coorx(j)*coory(j)==1;
        else
           eqns(i,j)=A(i,1)+A(i,2)*coorx(j)+A(i,3)*coory(j)+A(i,4)*coorx(j)*coory(j)==0;
        end
    end
end
tst=solve(eqns,A);
tst.A4_4

我测试了很多输出,但是当我应该获得类似 coorx(j)-coory(j) 之类的函数时,我得到的唯一值是 0。你能告诉我为什么吗?

    标签: matlab finite-element-analysis


    【解决方案1】:

    如果您使用参数坐标和形状函数,这些很容易编写。通常的顺序是从左下角开始逆时针方向进行:

    -1 <= a <= +1
    -1 <= b <= +1
    
    h1(a, b) = (1-a)*(1-b)/4.0
    h2(a, b) = (1+a)*(1-b)/4.0
    h3(a, b) = (1+a)*(1+b)/4.0
    h4(a, b) = (1-a)*(1+b)/4.0
    

    您使用雅可比矩阵从参数坐标映射到全局坐标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多