等 参 单 元

本文详细介绍了等参元的概念及其在平面应变问题中的应用。通过坐标变换,将规则母单元转换为所需子单元,简化了形函数的构造和积分过程。文中展示了利用等参元计算刚度矩阵的步骤,包括雅克比矩阵的求解和局部坐标下的形函数导数。最后,给出了一个四边形四节点单元的Matlab程序示例,用于计算刚度矩阵。
摘要由CSDN通过智能技术生成

前言:本文是作者对于等参数元学习的一些理解和看法,有不对的地方欢迎批评指正,对于不同的见解也欢迎交流。

等参变换

等参元主要涉及到坐标变换:将规则的几何形状看做为母单元,之后可由母单元变换成所需要的各种子单元。我们可以假定这种变换为 ( x , y ) = f ( ξ , η ) (x,y) = f(\xi,\eta) (x,y)=f(ξ,η) (不需要知道变换关系的具体表达,只是为了便于理解假定存在这种变换。)

在这里插入图片描述

​ 在母单元构造形函数 N i ′ ( ξ , η ) N_i'(\xi,\eta) Ni(ξ,η),由坐标变换可知:在任意子单元中存在形函数 N i ( x , y ) N_i(x,y) Ni(x,y)与之相对应。在局部坐标中形函数满足:
ξ = ∑ i = 1 m N i ′ ξ i η = ∑ i = 1 m N i ′ η i (1) \xi = \sum _{i=1} ^m N_i' \xi_i \quad \eta = \sum _{i=1} ^m N_i' \eta_i \tag{1} ξ=i=1mNiξiη=i=1mNiηi(1)
相应子单元的形函数也满足:
x = ∑ i = 1 m N i x i y = ∑ i = 1 m N i y i (2) x = \sum _{i=1} ^m N_i x_i \quad y= \sum _{i=1} ^m N_iy_i \tag{2} x=i=1mNixiy=i=1mNiyi(2)
  由坐标变换可知:自变量一一对应,因变量值并不发生改变,只是函数关系发生改变而已。

所以式(2)可改写为
x = ∑ i = 1 m N i ′ ( ξ , η ) x i y = ∑ i = 1 m N i ′ ( ξ , η ) y i (3) x = \sum _{i=1} ^m N_i'(\xi,\eta) x_i \quad y= \sum _{i=1} ^m N_i'(\xi,\eta)y_i \tag{3} x=i=1mNi(ξ,η)xiy=i=1mNi(ξ,η)yi(3)
(3)其实也就是之前假设变换关系的插值函数的形式。

​   经过以上的推论,得到了坐标变换的插值函数形式,由于母单元形函数是比较容易求得的,所以也就比较轻松的得到了坐标变换关系,便于之后在积分时进行换元和求雅克比矩阵,利于程序化,这也是等参元的优势。

   上述坐标变换的插值形式中所利用到的节点数目为 m m m,在表达场函数时,也是利用节点进行插值表达,假设此时利用的节点数目为 n n n。如果两者采用相同的节点,且插值函数相同,那么称为等参变换,此时 m = n m=n m=n。若 m > n m>n m>n,为超参; m < n m<n m<n,为次(亚)参。

应用

平面应变问题中,在整体坐标下,单元矩阵的表达为:
k = ∫ Ω B ( N i , x , N i , y ) D B d x d y k = \int_{\Omega}B(N_{i,x},N_{i,y})DBdxdy k=ΩB(Ni,x,Ni,y)DBdxdy
利用换元到局部坐标:
k = ∬ Ω ′ B ( N i , x ′ , N i , y ′ ) D B ∣ J ∣ d ξ d η k = \iint_{\Omega'}B(N_{i,x}',N_{i,y}')DB|J|d\xi d\eta k=ΩB(Ni,x,Ni,y)DBJdξdη
雅克比矩阵:
J = ∂ ( x , y ) ∂ ( ξ , η ) = [ ∑ i = 1 m ∂ N i ′ ∂ ξ x i ∑ i = 1 m ∂ N i ′ ∂ ξ y i ∑ i = 1 m ∂ N i ′ ∂ ξ x i ∑ i = 1 m ∂ N i ′ ∂ ξ y i ] = [ ∂ N 1 ′ ∂ ξ ∂ N 2 ′ ∂ ξ … ∂ N m ′ ∂ ξ ∂ N 1 ′ ∂ η ∂ N 2 ′ ∂ η … ∂ N m ′ ∂ η ] [ x 1 y 1 x 2 y 2 ⋮ ⋮ x m y m ] J = \frac{\partial(x,y)}{\partial(\xi,\eta)} =\begin{bmatrix} \sum_{i=1}^{m} \frac{\partial N_i'}{\partial \xi}x_i & \sum_{i=1}^{m} \frac{\partial N_i'}{\partial \xi}yi \\\sum_{i=1}^{m} \frac{\partial N_i'}{\partial \xi}x_i & \sum_{i=1}^{m} \frac{\partial N_i'}{\partial \xi}yi \end{bmatrix} \\ = \begin{bmatrix} \frac{\partial N_1'}{\partial \xi} & \frac{\partial N_2'}{\partial \xi} & \ldots & \frac{\partial N_m'}{\partial \xi} \\ \frac{\partial N_1'}{\partial \eta} & \frac{\partial N_2'}{\partial \eta} & \ldots & \frac{\partial N_m'}{\partial \eta} \end{bmatrix} \begin{bmatrix} x_1 & y_1 \\ x_2 & y_2 \\ \vdots & \vdots \\ x_m & y_m \end{bmatrix} J=(ξ,η)(x,y)=[i=1mξNixii=1mξNixii=1mξNiyii=1mξNiyi]=[ξN1ηN1ξN2ηN2ξNmηNm]x1x2xmy1y2ym

[ ∂ N i ′ ∂ ξ ∂ N i ′ ∂ η ] = [ ∂ x ∂ ξ ∂ y ∂ ξ ∂ x ∂ η ∂ x ∂ η ] [ ∂ N i ′ ∂ x ∂ N i ′ ∂ y ] = J [ ∂ N i ′ ∂ x ∂ N i ′ ∂ y ] \begin{bmatrix} \frac{\partial N_i'}{\partial \xi} \\ \frac{\partial N_i'}{\partial \eta} \end{bmatrix} = \begin{bmatrix} \frac{\partial x}{\partial \xi} & \frac{\partial y }{\partial \xi} \\ \frac{\partial x}{\partial \eta} & \frac{\partial x}{\partial \eta} \end{bmatrix} \begin{bmatrix} \frac{\partial N_i'}{\partial x} \\ \frac{\partial N_i'}{\partial y} \end{bmatrix} =J \begin{bmatrix} \frac{\partial N_i'}{\partial x} \\ \frac{\partial N_i'}{\partial y} \end{bmatrix} [ξNiηNi]=[ξxηxξyηx][xNiyNi]=J[xNiyNi]

[ ∂ N i ′ ∂ x ∂ N i ′ ∂ y ] = J − 1 [ ∂ N i ′ ∂ ξ ∂ N i ′ ∂ η ] \begin{bmatrix} \frac{\partial N_i'}{\partial x} \\ \frac{\partial N_i'}{\partial y} \end{bmatrix} = J^{-1} \begin{bmatrix} \frac{\partial N_i'}{\partial \xi} \\ \frac{\partial N_i'}{\partial \eta} \end{bmatrix} [xNiyNi]=J1[ξNiηNi]

采用Lagrange单元,所以四节点单元的形函数表达为:
N ′ = 1 4 ( 1 + ξ i ξ ) ( 1 + η i η ) N' = \frac{1}{4}(1+\xi_i \xi)(1+\eta_i \eta) N=41(1+ξiξ)(1+ηiη)
形函数的偏导
[ ∂ N ′ ∂ ξ ∂ N ′ ∂ η ] = 1 4 [ ξ i ( 1 + η i η ) ( 1 + ξ i ξ ) η i ] \begin{bmatrix} \frac{\partial N'}{\partial \xi} \\ \frac{\partial N'}{\partial \eta} \end{bmatrix} = \frac{1}{4} \begin{bmatrix} \xi_i (1+\eta_i \eta) \\ (1+\xi_i \xi)\eta_i \end{bmatrix} [ξNηN]=41[ξi(1+ηiη)(1+ξiξ)ηi]

  • 四边形四节点单元应用等参元计算刚度矩阵的Matlab程序
function K = Stiffness(gElement,gNode,E,nu)

% 本例每个方向上取4个高斯点
Guass = [-0.861136311594052575224  0.347854845137453857373
         -0.339981043584856264803  0.652145154862546142627
         0.339981043584856264803  0.652145154862546142627
         0.861136311594052575224  0.347854845137453857373];

D = E/(1-nu^2)*[1 nu 0; nu 1 0; 0 0 (1-nu)/2]; % 弹性矩阵

K = zeros(2*size(gNode,1));               % 刚度矩阵预定义
for iel = 1 : size(gElement,1)      % 对单元进行循环
    Coor_SU = gNode(gElement(iel,:),:);    % 整体坐标       [x,y]
    Coor_PU = [-1,-1;1,-1;1,1;-1,1];            %  局部坐标     【xi,eta】
    
    k = zeros(8);
    for i = 1:4
        for  j = 1 : 4
            % 雅克比矩阵
            dNdxe = zeros(2,4);   % 用于储存高斯点处,形函数的偏导值   第一行: 对xi的偏导   第二行: 对eta的偏导
            for m = 1 : 4
                dNdxe(1,m) = Coor_PU(m,1)*(1+Coor_PU(m,2)*Guass(j,1)) /4;      
                dNdxe(2,m) = (1+Coor_PU(m,1)*Guass(i,1))*Coor_PU(m,2) /4;
            end
            Jacob = dNdxe*Coor_SU;
            
            dNdxy = Jacob\dNdxe;  % 插值函数对x y的偏导矩阵
            
            % 应变矩阵
            B = zeros(3,8);
            for  k = 1 : 4
                B(1,2*k-1) = dNdxy(1,k);B(2,2*k) = dNdxy(2,k);
                B(3,2*k-1) = dNdxy(2,k);B(3,2*k) = dNdxy(1,k);
            end
            
            k = k + B'*D*B*det(Jacob)*Guass(i,2)*Guass(j,2);
        end
    end
    
    % 组装刚度矩阵
    for m = 1 : 4
        for n = 1 : 4
            kmn = k(2*m-1:2*m,2*n-1:2*n);
            I = gElement(iel,m); J = gElement(iel,n);
            K(2*I-1:2*I,2*J-1:2*J) = K(2*I-1:2*I,2*J-1:2*J)+ kmn;
        end
    end
end

参考文献:
[王勖成. 有限单元法[M]. 清华大学出版社, 2003.]
[徐荣桥. 结构分析的有限元法与MATLAB程序设计[M]. 人民交通出版社, 2006.]

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值