# Python和MATLAB微机电健康推导算法和系统模拟优化设计

{% hint style="info" %}
Python | MATLAB | 物理 | 数学 | 力学 | 惯性单元 | 健康推导 | 算法 | 卷积网络 | 自由度 | 姿态 | 导航系统 | 微机电系统
{% endhint %}

{% embed url="https://viadean.notion.site/Python-MATLAB-d9a8c97bab5543c2a8e47ac88fa380c8" %}

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](../zhi-dian-mi-jin-brief)
{% endcontent-ref %}

### 🎯要点

🎯惯性测量身体活动特征推导健康状态算法 | 🎯卷积网络算法学习惯性测量数据估计六自由度姿态 | 🎯全球导航卫星系统模拟，及惯性测量动态测斜仪算法、动态倾斜算法、融合算法 | 🎯微机电系统加速度计陀螺仪模拟优化 | 🎯微机电系统模拟优化设计

#### 🍪语言内容分比

{% @mermaid/diagram content="pie title 语言分比
"Python":90
"MATLAB":90
"C++":40" %}

{% @mermaid/diagram content="pie title 内容分比
 "物理":90
 "数学":60
 "微机电系统":80
 "算法":30
 "卷积神经网络":20
 "6自由度姿态":10
 "惯性测量单元":50
 "惯性导航":20" %}

### 🍇MATLAB静电驱动微机电器件

微机电系统器件通常由悬挂在固定电极上方的可移动细梁或具有高纵横比的电极组成。驱动、切换和其他信号和信息处理功能可以利用在可移动电极和固定电极之间施加电压而引起的电极变形。最常见的微机电系统器件是悬挂在接地电极上方的一系列悬臂梁开关。

此示例使用以下几何结构来模拟微机电系统开关。顶部电极的长度为 $$150 \mu m$$，厚度为 $$2 \mu m$$。杨氏模量 E 为 $$170 GPa$$，泊松比 $$u$$ 为 0.34 。底部电极的长度为 $$50 \mu m$$，厚度为 $$2 \mu m$$，距离顶部电极最左端 $$100 \mu m$$。顶部和底部电极之间的间隙为$$2μm$$​​。

在顶部电极和接地平面之间施加的电压会在导体表面感应出静电荷，进而导致静电力垂直作用于导体表面。由于接地平面是固定的，静电力只会使顶部电极变形。当梁变形时，电荷会在导体表面重新分布。由此产生的静电力和梁的变形也会发生变化。这个过程一直持续到系统达到平衡状态。

为简单起见，本示例使用基于松弛的算法而不是牛顿方法来耦合静电域和机械域。该示例遵循以下步骤：

1. 使用可移动电极上的恒定电势 $$V_0$$ 解决非变形几何结构中的静电有限元分析问题。
2. 使用沿可移动电极计算的电荷密度值计算机械解决方案的负载和边界条件。可动电极上的静电压力由下式给出

$$P=\frac{1}{2 e}|D|^2$$,其中，$$|D|$$ 是电通量密度的大小，$$\epsilon$$ 是可移动电极旁边的介电常数。

3. 通过求解机械有限元分析问题来计算可移动电极的变形。
4. 使用计算出的可移动电极的位移来更新沿可移动电极的电荷密度，

$$\left|D_{ def }(x)\right| \approx\left|D_0(x)\right| \frac{G}{G-v(x)}$$，其中$$\left|D_{\text {def }}(x)\right|$$是变形电极中电通量密度的大小，$$\left|D_0(x)\right|$$是变形电极中电通量密度的大小未变形电极中的电通量密度，G 是在没有驱动的情况下可移动电极和固定电极之间的距离，$$v(x)$$是可移动电极在位置 $$x$$ 处沿其轴的位移。

5. 重复步骤2-4，直到最后两次迭代中的电极变形值收敛。

在此示例的静电分析部分中，将计算电极周围的电势。首先，使用构造实体几何建模方法创建悬臂开关几何体。用于静电分析的几何体由三个矩形组成，用矩阵表示。矩阵的每一列描述了一种基本形状。

```matlab
 rect_domain = [3 4 1.75e-4 1.75e-4 -1.75e-4 -1.75e-4 ...
                   -1.7e-5 1.3e-5 1.3e-5 -1.7e-5]';
 rect_movable = [3 4 7.5e-5 7.5e-5 -7.5e-5 -7.5e-5 ...
                     2.0e-6 4.0e-6 4.0e-6 2.0e-6]';
 rect_fixed = [3 4 7.5e-5 7.5e-5 2.5e-5 2.5e-5 -2.0e-6 0 0 -2.0e-6]';
 gd = [rect_domain,rect_movable,rect_fixed];
```

为每个基本形状创建一个名称。将名称指定为矩阵，其列包含基本形状矩阵中相应列的名称。

```
 ns = char('rect_domain','rect_movable','rect_fixed');
 ns = ns';
```

创建一个描述基本形状的并集和交集的公式。

```matlab
 sf = 'rect_domain-(rect_movable+rect_fixed)';
```

使用 decsg 函数创建几何图形。

```matlab
 dl = decsg(gd,sf,ns);
```

创建 PDE 模型并将几何包含在模型中。

```matlab
 model = createpde;
 geometryFromEdges(model,dl);
```

绘制几何图形。

```matlab
 pdegplot(model,"EdgeLabels","on","FaceLabels","on")
 xlabel("x-coordinate, meters")
 ylabel("y-coordinate, meters")
 axis([-2e-4,2e-4,-4e-5,4e-5])
 axis square
```

该几何图形中的边数为：

* 可动电极：E3、E7、E11、E12
* 固定电极：E4、E8、E9、E10
* 域边界：E1、E2、E5、E6

将可移动电极设置为 20 V 的恒定电势值，将固定电极和域边界设置为 0 V。

```python
 V0 = 0;
 V1 = 20;
 applyBoundaryCondition(model,"dirichlet", ...
                              "Edge",[4,8,9,10],"u",V0);
 applyBoundaryCondition(model,"dirichlet", ...
                              "Edge",[1,2,5,6],"u",V0);
 applyBoundaryCondition(model,"dirichlet", ...
                              "Edge",[3,7,11,12],"u",V1);
```

控制这个问题的偏微分方程是泊松方程，\


$$
-\nabla \cdot(\epsilon \nabla V)=\rho
$$

其中$$\epsilon$$是介电常数系数，$$\rho$$是电荷密度。只要介电常数恒定，介电常数就不会影响本例中的结果。假设域中不存在电荷，可以将泊松方程简化为拉普拉斯方程，

$$
\Delta V=0
$$

#### 📜[泊松方程用例：Python低溫半导体电子束量子波算法计算](../shu-xue-math/python-di-wen-ban-dao-ti-dian-zi-shu-liang-zi-bo-suan-fa-ji-suan)

#### 📜[拉普拉斯方程用例：Python高压电容导电体和水文椭圆微分](../shu-xue-math/python-gao-ya-dian-rong-dao-dian-ti-he-shui-wen-tuo-yuan-wei-fen)

指定系数。

```matlab
 specifyCoefficients(model,"m",0,"d",0,"c",1,"a",0,"f",0);
```

生成相对细的网格。

```matlab
 hmax = 5e-6;
 generateMesh(model,"Hmax",hmax);
 pdeplot(model)
 xlabel("x-coordinate, meters")
 ylabel("y-coordinate, meters")
 axis([-2e-4, 2e-4,-4e-5, 4e-5])
 axis square
```

求解模型

```matlab
 results = solvepde(model);
```

绘制外域的电势。

```matlab
 u = results.NodalSolution;
 figure
 pdeplot(model,"XYData",results.NodalSolution, ...
               "ColorMap","jet");
 ​
 title("Electric Potential");
 xlabel("x-coordinate, meters")
 ylabel("y-coordinate, meters")
 axis([-2e-4,2e-4,-4e-5,4e-5])
 axis square
```

在此示例的机械分析部分中，将计算可移动电极的变形。
