有限差分法求导体槽的静电场
有限差分法中的迭代法求解接地金属槽内电位分布
一、实验原理
有限差分法是基于差分原理的一种数值计算法。其基本思想想是将场域离散成很多许多小的网格,应用差分原理,将求解连续函数的柏松方程问题转换为求解网格节点上的差分方程组问题。
1.1 二维柏松方程的差分格式
图1 有限差分法的网格划分
导体槽中静电场的边值问题的拉普拉斯方程为:
为简单起见,将场域分成足够小的正方形网格,网格线之间的距离为h,。节点0、1、2、3、4上的电位分别用、、、和表示。点1、点3在x0处可微,沿x方向在x0处的泰勒级数展开式为
点2、点4在y0处可微,沿y方向在y0处的泰勒级数展开式为
忽略高次项
稍作变化得到拉普拉斯方程的五点差分格式:
可通过迭代法求解以上差分方程。
1.2 高斯—赛德尔迭代法
进行迭代时可写为
,为行数,,为列数,为迭代次数,为前次迭代的结果,为当次迭代的结果,由于迭代从第一行、第一列开始,()、()点的迭代较()点进行得早,顾可使用当次迭代的结果。直到所有的点电位满足(为所设定精度)时迭代停止。
以上迭代收敛较慢,迭代次数多,因此还可以使用超松弛迭代法。
1.3 超松弛迭代法
式中(1<<2)为加速收敛的因子,影响着迭代的收敛,
最佳收敛因子的经验公式
其中为每边的节点数减去1。
二、程序框图:
三、实验内容:
3.1内容及要求:
用高斯—赛德尔迭代法求解接地金属槽内点位分布,精度,行数M、列数N自己定义。
3.2 实验思路:
由超松弛迭代法,将网格分成M*N列,边界点正好都是网格的节点,对所有的节点进行编号,并记录节点的坐标位置,并用一个二维数组进行表示u1[M][N],此数组表示的是迭代后的值。考虑到迭代前后的数值不一样,再用一个二维数组表示迭代之前的数值u2[M][N]。
运用C++或MATLAB的知识在计算机上将边界值和内节点进行赋值,即将节点离散化。然后开始迭代。迭代开始之前将另一个数组b赋值,用数组a给其赋值,表示迭代之前的值,好用于后面精度的比较。开始进行迭代时,根据超松弛公式将迭代方程编写输入。每次迭代结束后将数组a和数组b对应的值进行比较,即是精度的计算。如果误差大于所规定的误差0.00001,将a的值赋给b,然后继续进行迭代。直到当迭代前后数值误差小于所规定的误差时停止迭代。并比较迭代因子的大小对收敛次数的影响,选取最烧收敛次数的迭代因子作为实验最后的输出结果。
最后输出最适合迭代因子、迭代的次数和迭代后各点的电位值。
3.3 编写程序
用C语言或MATLAB语言编写差分法程序,打印出迭代次数和每一点的电位值。