X.4 二维平面应力

X.4 二维平面应力

前言

嗯!

背景

目前为止,我们已经学习了一维梁的应力。

接下来,我们考虑一个二维的膜,它在遭受z轴方向作用时产生的应力和应变。

架子鼓的鼓膜就是一个很好的参考。

控制方程

image

考虑对如图所示情况的控制方程,又名2D泊松方程(Poisson Equation):

\[\begin{equation}T\left(\frac{\partial^2w}{dx^2}+\frac{\partial^2w}{dy^2}\right)+f(x,y)=0 \end{equation} \]

我们定义:w为膜的挠度,x、y为膜的坐标,T是膜每单位长度受到的张力,f表示膜每单位面积受到的横向力。

该控制方程的边界条件类似1D,为:在边界\(\Gamma\)上,

  • 固定端(dirichlet boundary condition):\(w=0\),表示固定膜的边界;
  • 自由端(neumann boundary condition):\(\frac{dw}{dn}=0\),表示膜在边界上的法向斜率为0。

若拓展到三维,控制方程变成:

\[\begin{equation}\left(\frac{\partial^2w}{dx^2}+\frac{\partial^2w}{dy^2}+\frac{\partial^2w}{dz^2}\right)=-\frac{1}{T}f(x,y,z)=F(x,y,z) \end{equation} \]

下面逐步分析2D泊松方程的推导。其核心思想为:通过考虑微小的单元,在垂直方向上的力平衡,来构造方程。

  1. 对于位移\(w(x+dx,y)\)(x方向的位移增加量),使用一阶泰勒展开,结果为
    \(w(x,y)+\frac{\partial w(x,y)}{\partial x}dx\)
    这表示点\((x+dx,y)\)处的位移,可以近似等于\((x,y)\)点的位移,加上一个与dx成正比的增量,该增量由x方向的偏导数\(\frac{\partial w}{\partial x}\)决定;
    对位移\(w(x,y+dy)\)(即y方向的位移增加量),一阶泰勒展开的结果为
    \(w(x,y)+\frac{\partial w(x,y)}{\partial y}dy\)

  2. 对上述泰勒展开的结果分别求一阶导:

    • \(\frac{\partial w(x+dx,y)}{\partial x}=\frac{\partial w(x,y)}{\partial x}+\frac{\partial^2w(x,y)}{\partial x^2}dx\)
    • \(\frac{\partial w(x,y+dy)}{\partial y}=\frac{\partial w(x,y)}{\partial y}+\frac{\partial^2w(x,y)}{\partial y^2}dy\)
    • 这里需要注意,膜的张力产生的垂直分力,和膜的斜率有关。对于dxdy微小单元,如果左右两边的位移不同,膜会发生倾斜,斜率为\(\frac{\partial w}{\partial x}\),而x方向斜率和y方向的斜率分别由上述两个方程表示。
      膜的张力T将始终沿着膜的切线方向,当膜发生倾斜时,张力T将产生一个垂直于原平面的分力,该分力的大小会和张力T本身的大小,和膜的斜率有关,因为斜率意味着有角度存在。
      (这里可以参考一维梁控制方程的推导,本节不再重复)
  3. 构建力平衡方程:

    \[\begin{equation} \begin{aligned}&-T\frac{\partial w}{\partial x}dy +T(\frac{\partial w}{\partial x}+\frac{\partial^2w}{\partial x^2}dx)dy -T\frac{\partial w}{\partial y}dx \\&+T(\frac{\partial w}{\partial y} +\frac{\partial^2w}{\partial y^2}dy)dx+f(x,y)dxdy =0 \end{aligned} \end{equation} \]

    这个方程代表了微小单元dxdy在垂直方向的力平衡,其中:

    • \(-T\frac{\partial w}{\partial x}dy\)表示该单元左侧边在x方向上张力的垂直分量。
      我们假设挠度很小,斜率很小,因而\(\sin\theta\approx\tan\theta\approx\theta\),其中\(tan \theta = \frac{\partial w}{\partial x}\)就是斜率,\(\theta\)为膜的倾角。
      这里负号表示方向向下,原式应为\(-Tsin(\theta)\cdot dy\),这里乘以dy是因为T是膜每单位长度受到的张力,然后代入上述结论可得。
    • \(T(\frac{\partial w}{\partial x}+\frac{\partial^2w}{\partial x^2}dx)dy\)表示右侧边在x方向上张力的垂直分量,一样是
      \(T\times 斜率\times 单元边长\)
    • \(f(x,y)dxdy\)表示作用在微元体上,每单位体积的外力大小f,乘以微元体面积。
    • 根据牛顿第二定律,微元体在垂直方向上受到的合力为零,把所有力相加得式3。
  4. 对上述方程化简,并除以dxdy,可得控制方程。

热的传递:流动的冷却

image

如上图所示,考虑一个管道流动的一小段体积,已知管壁温度\(T_w\),对上述系统建立物理模型。

为简化问题,做出如下假设:

  1. 稳态流动,\(\frac{\partial T}{\partial t}=0\)​;
  2. 流体的速度分布(velocity profile)是平推流(plug flow)或理想流动,\(U\neq f(r,x)\)
    表示流体在管道的任何横截面上,都以相同的速度流动。
    这忽略了黏性作用导致的边界层效应,没有速度梯度。
  3. 流体的物理性质(密度、比热容、导热系数等)不变;
  4. 管道壁面的温度保持恒定;
  5. 在任何一个横截面上,温度都是均匀的,\(T\neq f(r)\)
  6. 沿管道轴向的热传导,和热对流相比,可以忽略不计。

构建方程:

\[热量积聚速度=产生热量速度+热流入的速度-热流出速度 \]

下面一项项来看。

  1. 热量积聚速度:由于稳态流动,\(A\Delta x \rho C_P \frac{d\bar{T}}{dt}=0\)
  2. 热产生的速度:\(\dot{q}=0\)
  3. 热流入的速度:\(AU_0\rho C_PT(x)\)
  4. 热流出的速度:\(AU_0\rho C_PT(x+\Delta x)+2\pi R\Delta xh(T-T_w)\),,其中第一项表示随着流体流动而流出的热,第二项表示通过管壁流出的热。

据此,我们可以构建方程如下:

\[\begin{equation}AU_0\rho C_PT(x)-AU_0\rho C_PT(x+\Delta x)-2\pi R\Delta xh(T-T_w)=0 \end{equation} \]

把上式除以\(AU_0\rho C_P \Delta x\),并求当\(\Delta x\)趋近于0时的极限:

\[\begin{equation}\lim_{\Delta x\to0}\left\{\frac{\left(T(x+\Delta x)-T(x)\right)}{\Delta x}+\frac{2\pi Rh}{AU_0\rho C_P}(T-T_w)\right\}=0 \end{equation} \]

\(\frac{2\pi Rh}{AU_0\rho C_P}=\lambda\),简化可得最后的公式:

\[\begin{equation}\frac{dT(x)}{dx}+\lambda(T-T_w)=0 \end{equation} \]

移项并积分,得:

\[\begin{equation}\int\frac{dT(x)}{T-T_w}=\int-\lambda dx \end{equation} \]

两边积分得:

\[\begin{equation}\ln(T-T_w)=-\lambda x+C \end{equation} \]

代入初始条件:当\(x=0\)时,\(T(0)=T_0\)

\[\begin{equation}\begin{array}{c}\ln(T_0-T_w)=-\lambda(0)+C\end{array},~C=\ln(T_0-T_w)=\ln(K) \end{equation} \]

回代:

\[\begin{equation}\begin{array}{l}\ln(T-T_w)=-\lambda x+\ln(T_0-T_w)\\\end{array} \end{equation} \]

把带ln的移到同一边,然后两边同时取以e为底的指数:

\[\begin{equation}\frac{T-T_w}{T_0-T_w}=e^{-\lambda x}=\Theta \end{equation} \]

该函数图像如下图所示:

image

上述推导是基于流体流动速度u在管道各处都是恒定的。

如果我们引入一个“抛物线”形的速度分布,如下图:

image

该速度分布可用如下公式描述:

\[\begin{equation}u=2u_0(1-(\frac{r}{R})^2) \end{equation} \]

考虑上述速度分布后,新的能量守恒方程变成:

\[\begin{equation}k\frac{\partial^2T}{\partial x^2}+k\frac{1}{r}\frac{\partial}{\partial r}\left(r\frac{\partial T}{\partial r}\right)=2u_0\rho C_p\left(1-\left(\frac{r}{R}\right)^2\right)\frac{\partial T}{\partial x} \end{equation} \]

image

接下来,基于上图中的灰色微元(内半径为r,厚度为\(\Delta r\),长度为\(\Delta x\)),详细解释上述能量守恒方程的推导过程。

考虑如下三种能量项:

  • 轴向热传导:

    1. 流入x侧面的热量:

      \[\begin{equation}q_x=-kA_x\frac{\partial T}{\partial x}|_x=-k(2\pi r\Delta r)\frac{\partial T}{\partial x}|_x \end{equation} \]

      其中,负号表示热量流入为正,k是热导率,单位W/(mK),\(A_x\)是x侧面的面积,\(\frac{\partial T}{\partial x}|_x\)表示在x方向处,温度沿x方向的梯度。

    2. 流出\(x+\Delta x\)侧面的热量:

      \[\begin{equation}q_{x+\Delta x}=-kA_{x+\Delta x}\frac{\partial T}{\partial x}|_{x+\Delta x}=-k(2\pi r\Delta r)\frac{\partial T}{\partial x}|_{x+\Delta x} \end{equation} \]

    3. \(q_x-q_{x+\Delta x}\)​可得轴向净热传导。

  • 径向热传导:

    1. 流入内表面的热量:

      \[\begin{equation}q_r=-kA_r\frac{\partial T}{\partial r}|_r=-k(2\pi r\Delta x)\frac{\partial T}{\partial r}|_r \end{equation} \]

    2. 流出外表面的热量:

      \[\begin{equation}q_{r+\Delta r}=-kA_{r+\Delta r}\frac{\partial T}{\partial r}|_{r+\Delta r}=-k(2\pi(r+\Delta r)\Delta x)\frac{\partial T}{\partial r}|_{r+\Delta r} \end{equation} \]

    3. \(q_r-q_{r+\Delta r}\)可得净径向热传导。

  • 对流:假设速度u只和r有关,而和x无关。

    1. 流入的热量:

      \[\begin{equation}q_{conv}=\dot{m}C_{p}T|_{x}=(\rho A_{x}u)C_{p}T|_{x}=\rho(2\pi r\Delta r)uC_{p}T|_{x} \end{equation} \]

      其中,\(\dot{m}=\rho A_x u\)是质量流量,\(C_[\)是比热容,\(T|_{x}\)表示x位置处的温度。

    2. 流出的热量:

      \[\begin{equation}q_{conv+\Delta x}=\dot{m}C_pT|_{x+\Delta x}=(\rho A_{x+\Delta x}u)C_pT|_{x+\Delta x}=\rho(2\pi r\Delta r)uC_pT|_{x+\Delta x} \end{equation} \]

    3. \(q_{conv}-q_{conv+\Delta x}\)可得对流带走的热量。

根据能量守恒,轴向轴向净热传导 + 径向净热传导 - 对流带走的热量 = 0

\[\begin{equation}\begin{aligned} &k(2\pi r\Delta r)[\frac{\partial T}{\partial x}|_{x+\Delta x}-\frac{\partial T}{\partial x}|_x] -k(2\pi r\Delta x)\frac{\partial T}{\partial r}|_r \\&+k(2\pi(r+\Delta r)\Delta x)\frac{\partial T}{\partial r}|_{r+\Delta r} -\rho(2\pi r\Delta r)uC_p[T|_{x+\Delta x}-T|_x]=0 \end{aligned} \end{equation} \]

具体化简步骤略,主要是把上式除以\(2\pi \Delta x \Delta r\),然后令\(\Delta x\)\(\Delta r\)趋近于0,得到几个能求极限的分式的极限,然后回代,再把u的表达式带进去,除以r,最后改写一下。

回顾一下对物理系统进行数学建模建模的重点:

  • 大多数物理系统的建模都会产生一阶或二阶偏微分方程。
  • 建模涉及通过简化物理系统来开发数学解释。
    这会产生具有边界/初始条件和明确参数值的合理确定性数学方程。
    模型将根据选定的边界条件/初始条件和参数值计算任何给定时刻的变量。
  • 相比之下,模拟则伴随着时间演化的混沌不确定性。
    对微观子系统相互作用导致宏观系统行为的演化研究可以大致描述为模拟。

有限元方法

通用步骤和公式

Finite Element Method,这里就是把一个二维平面离散为一个个网格,如下图所示的小三角形网格。

image

有限元法的基本步骤为:

  1. 从强形式(原始数学模型、控制方程)开始构建公式

  2. 根据强形式推导出弱形式(乘以了测试函数,二阶导变一阶导)

  3. 单元近似

  4. 选择权重函数

  5. 构建公式:

    \[\begin{equation}[\mathbb{K}]\{\mathrm{u}\}{=}\{\mathbb{F}\} \end{equation} \]

  6. 据公式和各类边界条件求解未知数。

考虑一个热传导问题,其强形式可能为:

  • 控制方程:在区域\(\Omega\)内,有\(\frac{d}{dx}(kA\frac{dT}{dx})+Q=0\)
  • 边界条件:在x=0处,\(-\frac{d}{dx}kT=h\);在\(x=L\)处,\(T=g\)

强形式要求,场变量T必须连续,其导数也必须连续。

通过将上述控制方程乘以一个权重函数v,然后在整个区域\(\Omega\)上积分,可得:

\[\begin{equation}\int_\Omega v[\frac{d}{dx}(kA\frac{dT}{dx})+Q]dx=0 \end{equation} \]

使用分部积分,易得:

\[\begin{equation}-\int_\Omega\frac{dv}{dx}kA\frac{dT}{dx}dx+[vAh]_{x=0}+\int_\Omega vQdx=0 \end{equation} \]

使用弱形式的好处是,它降低了对解的光滑性/连续性要求,只需要解的不连续性是可积分的即可,因此更容易找到近似解。

那么,如何利用弱形式构建近似解呢?

设有如下二阶常微分方程:

\[\begin{equation}\frac{d^2u}{dx^2}+4u=8x^2 \end{equation} \]

给定\(0<x<\frac{\pi}{4}\),边界条件\(u(0)=u(\frac{\pi}{4})=0\)

作为参考,其解析解为:\(u(x)=\cos(2x)+(1+\frac{\pi^2}{8})\sin(2x)+2x^2-1\)

假设U是该方程的解,我们可以假设一个近似解的形式,称为试函数(trial function):

\[\begin{equation}U(x)=\varphi(x)=a_1\varphi_1+a_2\varphi_2+...+a_n\varphi_n=\sum_{i=0}^na_i\varphi_i \end{equation} \]

这里,\(a_i\)是待定的系数,而\(\varphi_i\)是已知的、我们自行定义的基函数,通常选择多项式函数。

这里,选择\(\varphi(x)=\sum_{i=1}^{n}a_{i}x^{i}(\frac{\pi}{4}-x)\)作为基函数。

下一步,使用伽辽金法(Galerkin's Method),选择一组已知的基函数\(\varphi_i (x)\)来构建试函数,并选择相同的基函数构建权函数,即令权函数(weight function)\(v(x)\)和试函数\(U(x)\)相同,使得\(v(x)=U(x)=\varphi(x)\)

把试函数U代入原微分方程,得到残差:

\[\begin{equation}\varepsilon=|\frac{d^2U}{dx^2}+4U-8x^2| \end{equation} \]

这个残差实际上就是把原来函数的\(8x^2\)移动到左边了。如果U是精确解,那么代入U的残差计算结果就应当为0。

把上述残差乘以权重函数v,并在整个区域上积分,得到加权残差积分:

\[\begin{equation}R(x)=\int_0^{\pi/4}v(x)[\frac{d^2U}{dx^2}+4U-8x^2]dx \end{equation} \]

分部积分处理后的结果为:(因边界条件为0,忽略边界项)

\[\begin{equation}R(x)=\int_0^{\pi/4}(4vU-\frac{dv}{dx}\frac{dU}{dx}-8vx^2)dx \end{equation} \]

我们的目标是找到一组待定系数\(a_i\),使得上述加权残差几分\(R(x)\)最小。由于我们使用了伽辽金法,令权函数v(x)=试函数U(x),这意味着\(R(x)\)\(a_i\)的函数,记作\(R(a_i)\)

为最小化\(R_{ai}\),需要求解\(\frac{dR(a_i)}{da_i}=0\)

把试函数\(U(x)=\sum_{i=0}^na_i\varphi_i\)和权函数\(v(x)=U(x)\)代入上述\(R(x)\)的表达式,并求解\(\frac{dR(a_i)}{da_i}=0\),得到一个关于待定系数\(a_i\)的线性方程组:

\[\begin{equation}[K]\{u\}=\{f\} \end{equation} \]

求解即可。

试函数的注意事项

  • 完整性(completeness):它必须能表示场变量的梯度,必须能表示场变量的任意常数值
  • 兼容性(compatibility):单元边界上的近似值必须是连续的。

收敛=完整性+兼容性

二维控制方程的正式推导

弱形式

设有如图所示的2D域,离散为许多个小的三角形网格。

image

原二维控制方程为:

\[\begin{equation}T\left(\frac{\partial^2w}{dx^2}+\frac{\partial^2w}{dy^2}\right)+f(x,y)=0 \end{equation} \]

接下来,选择一个测试函数(或基函数)\(\phi_j (x,y)\),把上面的强形式方程乘以该测试函数,然后对区域A做积分。

\[\begin{equation}\int_A\left[T\left(\frac{\partial^2w}{\partial x^2}+\frac{\partial^2w}{\partial y^2}\right)+f(x,y)\right]\phi_j(x,y)\mathrm{d}A=0 \end{equation} \]

该式中,最关键的步骤是,对\(\int_AT\left(\frac{\partial^2w}{\partial x^2}+\frac{\partial^2w}{\partial y^2}\right)\phi_j\mathrm{d}A\)做积分。

为简洁,先令\(\Delta w=\frac{\partial^2w}{\partial x^2}+\frac{\partial^2w}{\partial y^2}\),故该部分变成\(\int_AT\Delta w\phi_j\mathrm{d}A\)

在1D问题中,可以直接使用分部积分转化,但二维需要用散度定理。

二维散度定理简写为:

\[\begin{equation}\int_A\nabla\cdot\mathbf{F}\mathrm{d}A=\int_\Gamma\mathbf{F}\cdot\mathbf{n}\mathrm{d}S \end{equation} \]

其中,\(\mathbf{n}=(n_x,n_y)\)是边界\(\Gamma\)的法外向。

注意,该公式和PPT里给的公式是等效的:

\[\begin{equation}\int_{A}\left(\frac{\partial G_{x}}{\partial x}+\frac{\partial G_{y}}{\partial y}\right)dA=\oint_{\Gamma}(G_{x}n_{x}+G_{y}n_{y})dS \end{equation} \]

这里,对二维散度定理进行详细分析:

通过闭合曲线\(\Gamma\)的流体的总通量(净流出量),等于该曲线所包围的区域A内所有源和汇的总和,即向量场\(\mathbf{F}\)的散度在区域A上的积分。

一项项分析:

  • \(\mathbf{F}\)是一个二维向量场,可写为\(\mathbf{F}(x,y)=\begin{pmatrix}F_x(x,y)\\F_y(x,y)\end{pmatrix}\),其中\(F_x\)\(F_y\)是标量函数。

  • \(\nabla\cdot\mathbf{F}\)是向量场\(\mathbf{F}\)的散度,衡量向量场在给定点处“源”或“汇”的强度,其计算公式为:

    \[\begin{equation}\nabla\cdot\mathbf{F}=\frac{\partial F_x}{\partial x}+\frac{\partial F_y}{\partial y} \end{equation} \]

  • \(\int_A\nabla\cdot\mathbf{F}\mathrm{d}A\)表示在区域A上,对向量场\(\mathbf{F}\)的散度做面积分,即闭合曲线\(\Gamma\)所包围的区域A内,所有源和汇的总和。

  • \(\mathbf{F}\cdot\mathbf{n}\):向量场\(\mathbf{F}\)和单位法向量\(\mathbf{n}\)的点积,表示\(\mathbf{F}\)在法向量上的分量,或垂直于曲线\(\Gamma\)的分量,可写作\(F_xn_x+F_yn_y\)

  • \(\int_\Gamma\mathbf{F}\cdot\mathbf{n}\mathrm{d}S\)表示沿着闭合曲线\(\Gamma\)做线积分,即通过该闭合曲线\(\Gamma\)的流体的净流出量。

下一步,我们把\(\Delta w\phi_j\)用散度形式表示:

\[\begin{equation}\Delta w\phi_j=\nabla\cdot(\phi_j\nabla w)-\nabla\phi_j\cdot\nabla w \end{equation} \]

具体推导过程如下:

IMG_202412364_233153197

把上述等式代入\(\int_AT\Delta w\phi_j\mathrm{d}A\),可得:

\[\begin{equation}\int_AT\Delta w\phi_jdA=\int_AT[\nabla\cdot(\phi_j\nabla w)-\nabla\phi_j\cdot\nabla w]dA \end{equation} \]

把该积分拆成两部分,然后对第一部分使用二维散度定理,把向量场\(\mathbf{F}\)替换为\(\phi_j \nabla w\)

\[\begin{equation}T\int_A\nabla\cdot(\phi_j\nabla w)dA=T\oint_\Gamma(\phi_j\nabla w)\cdot\mathbf{n}dS \end{equation} \]

把两部分结合起来,得到表达式:

\[\begin{equation}\int_AT\Delta w\phi_j\mathrm{d}A=T\int_\Gamma\left(\nabla w\cdot\mathbf{n}\right)\phi_j\mathrm{d}S-T\int_A\left(\nabla w\cdot\nabla\phi_j\right)\mathrm{d}A \end{equation} \]

其中,\(\frac{\partial w}{\partial n}=\nabla w\cdot\mathbf{n}=\frac{\partial w}{\partial x}n_x+\frac{\partial w}{\partial y}n_y\)是w沿着边界\(\mathbf{n}\)(法外向)的方向导数。

PPT当中的公式是把式38拆开:

\[\begin{equation} \begin{aligned}&\int_{A}T(\frac{\partial^{2}w}{dx^{2}}+\frac{\partial^{2}w}{dy^{2}})\phi_{j}(x,y)dA \\&=T\oint_{\Gamma}\left(\frac{\partial w}{\partial x}n_{x}+\frac{\partial w}{\partial y}n_{y}\right)\phi_{j}dS -T\int_{A}\left(\frac{\partial w}{\partial x}\frac{\partial\phi_{j}}{\partial x}+\frac{\partial w}{\partial y}\frac{\partial\phi_{j}}{\partial y}\right)dA \end{aligned} \end{equation} \]

这里出现了一个边界项:\(\int_\Gamma\left(\nabla w\cdot\mathbf{n}\right)\phi_j\mathrm{d}S=\oint_\Gamma\left(\frac{\partial w}{\partial x}n_x+\frac{\partial w}{\partial y}n_y\right)\phi_jdS\)

应用Dirichlet或Neumann边界条件,这里不再讨论,直接令这一项=0。

这样,我们就能得到最终的弱形式表达式:

\[\begin{equation}\int_A\left(T\left(\frac{\partial w}{\partial x}\frac{\partial\phi_j}{\partial x}+\frac{\partial w}{\partial y}\frac{\partial\phi_j}{\partial y}\right)-f(x,y)\phi_j(x,y)\right)dA=0 \end{equation} \]

域的离散和形函数

三角形网格由其节点函数值决定。

构建位移函数:

\[\begin{equation}w(x,y)=ax+by+c \end{equation} \]

代入形函数,根据网格节点函数值线性插值:

\[\begin{equation}w(x,y)=N_1(x,y)w_1+N_2(x,y)w_2+N_3w_3(x,y) \end{equation} \]

代入上图所示的各节点坐标值,构建矩阵:

\[\begin{equation}\begin{bmatrix}x_1&y_1&1\\x_2&y_2&1\\x_3&y_3&1\end{bmatrix}\begin{Bmatrix} a \\b\\ c \end{Bmatrix}=\begin{Bmatrix} w_1 \\w_2\\ w_3 \end{Bmatrix} \end{equation} \]

下一步,我们把三角形网格的面积表示为顶点坐标:

\[\begin{equation} \begin{aligned}A^e&=\frac{1}{2}\begin{bmatrix}x_1&y_1&1\\x_2&y_2&1\\x_3&y_3&1\end{bmatrix} \\&=\frac{1}{2}\left((x_2-x_1)(y_3-y_1)-(x_3-x_1)(y_2-y_1)\right)\neq0 \end{aligned} \end{equation} \]

这个面积公式是从把三角形的两条边表示为向量,然后求叉积,再除以2得到的。

接下来,应用克莱姆法则(Cramer's Rule):

\[\begin{equation}x_i=\frac{\det(\mathbf{A}_i)}{\det(\mathbf{A})} \end{equation} \]

其中det(A)是系数矩阵A的行列式,\(A_i\)是通过把A的第i列替换为常数向量b得到的矩阵。

这样,获得三个参数:

\[\begin{equation}a=\frac{1}{2A^e}\begin{vmatrix}w_1&y_1&1\\w_2&y_2&1\\w_3&y_3&1\end{vmatrix},~b=\frac{1}{2A^e}\begin{vmatrix}x_1&w_1&1\\x_2&w_2&1\\x_3&w_3&1\end{vmatrix},~c=\frac{1}{2A^e}\begin{vmatrix}x_1&y_1&w_1\\x_2&y_2&w_2\\x_3&y_3&w_3\end{vmatrix} \end{equation} \]

把上述行列式展开(乘出来),回代到场变量的原始方程(式30),然后改写成形函数N的形式:

\[\begin{equation}\begin{gathered}N_{1}(x,y)=\frac{1}{2A^e}[(y_2-y_3)x+(x_3-x_2)y+(x_2y_3-x_3y_2)]\\N_{2}(x,y)=\frac{1}{2A^e}[(y_3-y_1)x+(x_1-x_3)y+(x_3y_1-x_1y_3)]\\N_{3}(x,y)=\frac{1}{2A^{e}}[(y_{1}-y_{2})x+(x_{2}-x_{1})y+(x_{1}y_{2}-x_{2}y_{1})]\end{gathered} \end{equation} \]

image

这个图表示,形函数\(N_i\)在对应节点i处为1,减小直到在非对应节点处为0。

下一步,对位移分别关于x和y求导,可得:

\[\begin{equation}\begin{Bmatrix}\frac{\partial w}{\partial x}\\\frac{\partial w}{\partial y}\end{Bmatrix}=\begin{bmatrix}\frac{\partial N_1}{\partial x}&\frac{\partial N_2}{\partial x}&\frac{\partial N_3}{\partial x}\\\frac{\partial N_1}{\partial y}&\frac{\partial N_2}{\partial y}&\frac{\partial N_3}{\partial y}\end{bmatrix}\begin{Bmatrix}w_1\\w_2\\w_3\end{Bmatrix}=[B]\{\Delta\}^e \end{equation} \]

这里,运动方程(kinematic matrix)[B]:

\[\begin{equation}[B]=\begin{bmatrix}\frac{\partial N_1}{\partial x}&\frac{\partial N_2}{\partial x}&\frac{\partial N_3}{\partial x}\\\frac{\partial N_1}{\partial y}&\frac{\partial N_2}{\partial y}&\frac{\partial N_3}{\partial y}\end{bmatrix}=\frac{1}{2A^e}\begin{bmatrix}(y_2-y_3)&(y_3-y_1)&(y_1-y_2)\\(x_3-x_2)&(x_1-x_3)&(x_2-x_1)\end{bmatrix} \end{equation} \]

刚度矩阵

回顾弱形式表达式,我们把它变成网格化累加,并采用矩阵形式:

\[\begin{equation} \begin{aligned}&\int_A\left(T\left(\frac{\partial w}{\partial x}\frac{\partial\phi_j}{\partial x}+\frac{\partial w}{\partial y}\frac{\partial\phi_j}{\partial y}\right)-f(x,y)\phi_j(x,y)\right)dA \\&=\sum_{e=1}^n\int_{A^e}\left(T\left(\frac{\partial w}{\partial x}\frac{\partial\phi_j}{\partial x}+\frac{\partial w}{\partial y}\frac{\partial\phi_j}{\partial y}\right)-f(x,y)\phi_j(x,y)\right)dA \\&=\left.\int_A\left(\begin{bmatrix}\frac{\partial\phi_j}{\partial x}\frac{\partial\phi_j}{\partial y}\end{bmatrix}T\begin{Bmatrix}\frac{\partial w}{\partial x}\\\frac{\partial w}{\partial y}\end{Bmatrix} \right)-f(x,y)\phi_j(x,y)\right)dA=0 \end{aligned} \end{equation} \]

老规矩,令形函数=测试函数,然后令\(\begin{Bmatrix}\frac{\partial w}{\partial x}\\\frac{\partial w}{\partial y}\end{Bmatrix}=[B]\{\Delta\}^e\)(对插值公式\(w(x,y)=\sum_{i=1}^nN_i(x,y)w_i\)求偏导数),则上式等于:

\[\begin{equation}\int_{A}\left(\left[\frac{\partial\phi_{j}}{\partial x}\quad\frac{\partial\phi_{j}}{\partial y}\right]T[B]\{\Delta\}^{e}-f\phi_{j}\right)dA \end{equation} \]

考虑\(j=1,2,3\)三个节点,使用上述式子,叠加一下得:

\[\begin{equation}\int_A\left(\begin{bmatrix}\frac{\partial N_1}{\partial x}&\frac{\partial N_1}{\partial y}\\\frac{\partial N_2}{\partial x}&\frac{\partial N_2}{\partial y}\\\frac{\partial N_3}{\partial x}&\frac{\partial N_3}{\partial y}\end{bmatrix}T[B]\{\Delta\}^e-\begin{Bmatrix}N_1\\N_2\\N_3\end{Bmatrix}f(x,y)\right)dA \end{equation} \]

代入一下运动矩阵[B]和形函数矩阵[S]:

\[\begin{equation}\int_{A^e}([B]^TT[B]dA)\{\Delta\}^e-\int_{A^e}([S]^Tf(x,y)dA) \end{equation} \]

这样,我们就推导出了:

\[\begin{equation}[K]^e\{\Delta\}^e-\{F\}^e \end{equation} \]

刚度矩阵*位移=力,其中:

\[\begin{equation}[K]^{e}=\int_{A^{e}}([B]^{T}T[B]dA)\quad\{F\}^{e}=\int_{A^{e}}[S]^{T}f(x,y)dA \end{equation} \]

首先讨论刚度矩阵。

把上式简化一下:

\[\begin{equation}[K]^e=\int_{A^e}([B]^TT[B]dA)=[B]^TT[B]\int_{A^e}(dA)=A^eT[B]^T[B] \end{equation} \]

把运动矩阵[B]带进去,易得:

\[\begin{equation}[K]^e=\frac{T}{4A^e}\begin{bmatrix}(x_3-x_2)^2+(y_2-y_3)^2&(x_3-x_2)(x_1-x_3)+(y_2-y_3)(y_3-y_1)&(x_3-x_2)(x_2-x_1)+(y_2-y_3)(y_1-y_2)\\(x_3-x_2)(x_1-x_3)+(y_2-y_3)(y_3-y_1)&(x_1-x_3)^2+(y_3-y_1)^2&(x_1-x_3)(x_2-x_1)+(y_3-y_1)(y_1-y_2)\\(x_3-x_2)(x_2-x_1)+(y_2-y_3)(y_1-y_2)&(x_1-x_3)(x_2-x_1)+(y_3-y_1)(y_1-y_2)&(x_2-x_1)^2+(y_1-y_2)^2\end{bmatrix} \end{equation} \]

image

节点力

\[\{F\}^{e}=\int_{A^{e}}[S]^{T}f(x,y)dA \]

类似地,用形函数插值顶点值,来表示网格面内任一点所受的力:

\[\begin{equation}f(x,y)\approx[N_1\quad N_2\quad N_3]\begin{pmatrix}f_1\\f_2\\f_3\end{pmatrix}=[S]\{f\}^e \end{equation} \]

\[\begin{equation}\{f\}^e=\begin{Bmatrix}f_1\\f_2\\f_3\end{Bmatrix}=\begin{Bmatrix}f_1(x_1,y_1)\\f_2(x_2,y_2)\\f_3(x_3,y_3)\end{Bmatrix} \end{equation} \]

回代入原式:

\[\begin{equation}\{F\}^e=\left(\int_{A^e}[S]^T[S]dA\right)\{f\}^e=[H]\{f\}^e \end{equation} \]

其中:

\[\begin{equation} \begin{aligned}[H]&=\int_{A^e}[S]^T[S]dA=\int_{A^e}\begin{Bmatrix}N_1\\N_2\\N_3\end{Bmatrix}[N_1\quad N_2\quad N_3]dA \\&\approx\int_{A^{e}}\begin{Bmatrix}{N_{1}}^{c}\\{N_{2}}^{c}\\{N_{3}}^{c}\end{Bmatrix}[{N_{1}}^{c}\quad{N_{2}}^{c}\quad{N_{3}}^{c}]dA \\&=A^e\begin{Bmatrix}N_1^c\\N_2^c\\N_3^c\end{Bmatrix}[N_1^c\quad N_2^c\quad N_3^c]=\frac{1}{A^e}\begin{Bmatrix}\overline{N_1}^c\\\overline{N_2}^c\\\overline{N_3}^c\end{Bmatrix}\begin{bmatrix}\overline{N_1}^c&\overline{N_2}^c&\overline{N3}^c\end{bmatrix} \end{aligned} \end{equation} \]

这一步注意角标的变化,这是如何做到的呢?

首先,注意到网格中心点的坐标可以这么表示:

\[\begin{equation}\begin{aligned} x_{c} & = \frac{1}{3}\left(x_{1}+x_{2}+x_{3}\right)\\y_{c}&= \frac{1}{3}\left(y_{1}+y_{2}+y_{3}\right) \end{aligned} \end{equation} \]

然后,我们把\(N_i (x,y)\)在单元中心点\((x_c, y_c)\)处取值,再令\(\overline{N_i}^c=A^e N_i^c\),这样做是为了后续在面积\(A^e\)上积分方便,一乘就把系数干掉了。

可变积分函数(矩阵)用单元中心处的值来近似。如果单元尺寸足够小,这种近似是相当合理的。更严格的数学证明可在数值积分中找到,但超出了本模块的范围。

组装

节点处的连续性意味着由于单元内的线性插值,单元之间的连续性。

\[\begin{equation}\sum_{e=1}^n\int_A\left(T\left(\frac{\partial w}{\partial x}\frac{\partial\phi_j}{\partial x}+\frac{\partial w}{\partial y}\frac{\partial\phi_j}{\partial y}\right)-f(x,y)\phi_j(x,y)\right)dA \end{equation} \]

\[\begin{equation}\sum_{e=1}^{n}\left([K]^{e}\{\Delta\}^{e}-\{F\}^{e}\right)=[K]\{\Delta\}-\{F\}=0 \end{equation} \]

线性形函数可以保证单元之间的连续性,即在相邻单元的公共边上,函数值是连续的。

这是因为共享边的两个三角形单元,在这条边上的值,均由这两个顶点唯一确定,而形函数又是线性的,所以两个单元共享的边上的函数值分布是相同的。

吐槽

真多啊,写的累,凌晨十二点半了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/861091.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MP4视频分割、分差工具a MP4Box GUI-Yamb介绍

摘自:https://www.cnblogs.com/ciey/archive/2010/08/05/1792803.html Yamb - Yet Another MP4Box User Interface for Windows Users Yamb是MP4BOX的一个前端界面程序,省去了繁琐的MP4BOX命令行操作,只需通过程序向导就可轻松的完成合并、分割MP4的功能。 Yamb俗称大脚丫,…

wxGauge 改变颜色

wxWidgets 的进度条控件没有提供改变颜色的接口,在Windows中,我们实际上可以通过向控件发送消息来间接的实现这个功能 Windows自己的进度条控件有以下三种状态用类似下面的代码即可控制进度条显示绿红黄三种颜色 SendMessage(m_gauge1->GetHWND(), PBM_SETSTATE, PBST_NOR…

第10章 LINQ to XML

第10章 LINQ to XML 10.1 架构概述——DOM 和 LINQ to XML 的 DOM XML 文档可以用一棵对象树完整的表示,这称为“文档对象模型(document object model)” LINQ to XML 由两部分组成:XML DOM,简称为 X-DOM 大约 10 个查询运算符LINQ 也可以用于查询 W3C 标准的旧 DOM,不过…

不同充电协议的 iPhone 无线充电器对比分析 All In One

不同充电协议的 iPhone 无线充电器对比分析 All In One不同充电协议的 iPhone 无线充电器对比分析 All In OneiPhone 12 Pro 使用 7.5W 无线充电器,从 0% ~ 100% 充满需要多少时间MagSafe 充电器 RMB 329https://www.apple.com.cn/shop/product/MWQX3CH/AMagicSafe iPhone 16…

第8章 LINQ 查询

第8章 LINQ 查询 8.2 流式语法 8.2.2 使用 Lambda 表达式 常用运算符 Where() 筛选器 Order() 排序器 Select() 映射器 Take() 获取前 x 个元素 Skip() 跳过前 x 个元素 Reverse() 反转所有元素 First() 获取第一个元素 Last() 获取最后一个元素 ElementAt() 获取第 x 个元素 C…

团队作业4—项目冲刺

这个作业属于哪个课程 计科22级34班这个作业要求在哪里 作业要求这个作业的目标 项目冲刺,进行为期7天的敏捷开发团队成员:姓名 学号张嘉敏 3222004893张嘉乐 3122004544赵衍锴 3122004502唐学鹏 3119005703各个成员在Alpha阶段认领的任务成员 任务唐学鹏 需求分析,调整系统…

又写了一个大一新生的期末作业

#include <stdio.h> #include <string.h> #include <math.h>// 定义学生结构体 struct Student {char id[20]; // 学号char className[20]; // 班级char name[20]; // 姓名int startHour; // 上机开始时间(小时)int startMinute; // 上机…

word中自带插入公式,实现换行和对齐

word自带公式输入很是难用,尤其是不能在公式内回车换行。网上有方法说用(shift+回车)方法,亲测不可用。通过多方查找资料,终于找到如何实现word自带公式的换行和对齐的解决方法。先看看最终效果。首先,我们需要观测到word公式输入的模式,在插入公式操作中,公式工具左上…

INFINI Console 指标采集优化

前言 在 Easysearch / Elasticsearch / Opensearch 管理系统中,对于不同集群不同指标数据进行采集是一个常规任务。但是采集过程中不仅会对采集系统 CPU 和访问性能造成不少压力,也会对 Easysearch / Elasticsearch / Opensearch 集群造成资源消耗,从而影响集群本身的健康运…

费心劳神但又收获满满——软件工程个人总结作业

学期回顾 回顾对于软件工程课程的想象 在学期初时刚上软件工程这门课程时,问我本以为它和以前的专业课一样,以理论为主,并不会占用自己很多时间。但之后这个想法就改变了,我发现软件工程这门课程理论与实践紧密结合,有着各种任务,每个任务背景几乎是之前没有了解过的,需要…

终于结束啦!

一、学期回顾 1.1 回顾你对于软件工程课程的想象 这学期的软工课程,我一开始既充满了期待,也充满了不安。期待是因为这门课程能够让我实在地编写代码并开发项目,而不安同样也来自于此。我的代码能力并不强,我很害怕在这门课的作业中做不出能够通过的东西。不过这些问题都在…

2024-2025-1 20241406刘书含 第十四周学习总结

一、教材学习内容 (一)第十四章模拟、图形学、游戏以及其他应用 《计算机科学概论》第十四章主要探讨了模拟、图形学、游戏以及其他应用。以下是该章节的总结: 模拟: 模拟是计算的一个重要领域,它涉及为复杂系统构建计算机模型,并用模型进行实验以观察结果。模型是对真实…