MATLABによる無限長直線導体周りの電界シミュレーション手法

無限長直線導体周辺の電界・電位分布を解析・数値計算する際、用途や境界条件に応じてアプローチを使い分けることが重要です。ここでは、解析解法、鏡像法、および偏微分方程式(PDE)ソルバーを用いた3つの手法をMATLABで実装します。

1. 解析解法(基本公式による計算)

電荷線密度 $ \lambda $ を持つ無限長直線導体において、電位 $ \phi $ および電界 $ E $ は以下の式で表されます。

% パラメータ設定
lambda = 1e-9;      % 線電荷密度 (C/m)
eps0 = 8.854e-12;   % 真空の誘電率
grid_range = -5:0.2:5;

[X, Y] = meshgrid(grid_range);
dist = sqrt(X.^2 + Y.^2);
dist(dist < 0.1) = 0.1; % 原点の特異点回避

% 電位の計算
potential = -lambda / (2 * pi * eps0) * log(dist);
% 勾配計算による電界ベクトル
[Ex, Ey] = gradient(-potential);

% 描画
contour(X, Y, potential, 20); hold on;
quiver(X, Y, Ex, Ey, 2);
title('電位分布と電界ベクトル');
axis equal;
    

2. 鏡像法(接地導体平面の影響)

導体が接地された導電性平面の近くにある場合、平面を鏡像電荷($-q$)に置き換えることで境界条件を満足させます。

% パラメータ設定
q_val = 1e-9;
h = 0.2; % 平面からの距離
[X, Y] = meshgrid(-0.8:0.04:0.8, 0:0.04:0.8);

% 鏡像電荷を用いた電位計算
r_source = sqrt(X.^2 + (Y - h).^2);
r_image  = sqrt(X.^2 + (Y + h).^2);
V_field = (q_val / (4 * pi * eps0)) * (1./r_source - 1./r_image);

% 描画
contourf(X, Y, V_field, 40, 'LineStyle', 'none');
colorbar;
    

3. PDE数値解法(有限要素法)

複雑な形状や不均質な環境では、Poisson方程式 $\nabla^2 \phi = -\rho/\epsilon$ をPDE Toolboxで解くのが一般的です。

% モデルの構築
fem_model = createpde();
rect = [3, 4, -1, 1, 1, -1, -1, -1, 1, 1]'; % 矩形領域定義
geometryFromEdges(fem_model, decsg(rect));

% 境界条件設定(導線を1V、周囲を0Vに設定)
applyBoundaryCondition(fem_model, 'dirichlet', 'Edge', 1, 'u', 1);
applyBoundaryCondition(fem_model, 'dirichlet', 'Edge', 2:4, 'u', 0);

% 偏微分方程式の係数指定
specifyCoefficients(fem_model, 'm', 0, 'd', 0, 'c', 1, 'a', 0, 'f', 0);

% メッシュ生成と求解
generateMesh(fem_model, 'Hmax', 0.02);
result = solvepde(fem_model);
pdeplot(fem_model, 'XYData', result.NodalSolution, 'Contour', 'on');
    

手法比較まとめ

  • 解析法: 自由空間での計算に最適。非常に高速かつ高精度。
  • 鏡像法: 平面状の導体が存在する場合に有用。幾何学的な直観が得やすい。
  • PDE数値解法: 複雑な境界条件や誘電体分布がある場合に強力。汎用性が高い。

シミュレーション実行時は、計算対象の原点付近(導体中心)で計算が発散しないよう、空間分解能を適切に制御することをお勧めします。

タグ: MATLAB 電磁気学 有限要素法 数値解析 シミュレーション

6月11日 18:19 投稿