0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「磁石の謎を解く鍵は"履歴"にあった」— 磁気ヒステリシスシミュレーターで理解する電磁気学

0
Posted at

みなさん、電磁気学の教科書で見たあの「B-Hループ」、正直「何が嬉しいの?」と思ったことありませんか?

実はあのループ、磁性材料の「個性」をすべて語っているんです。

しかも、たった3つのパラメータ(飽和磁化・保磁力・残留磁束密度)で、材料の振る舞いを99%予測できる。今回はその仕組みを、ブラウザで動く本物のシミュレーターと、ゼロから書いた実装コードで徹底解説します。


ざっくり本質 — 磁石の「頑固さ」と「記憶力」

磁性体の中を覗いてみましょう。中には 「磁区」 と呼ばれる小さな磁石の部屋が無数にあります。外部から磁界 $H$ をかけると、この磁区の壁(磁壁)が動いて全体が磁化します。

しかし、材料中には不純物や結晶の欠陥があり、磁壁がそこに**引っかかる(ピン留め)**んです。

「磁気ヒステリシスとは、磁壁の『引っかかり癖』が生む遅れの軌跡である」

これがすべて。磁界を強くしても磁束密度がすぐ追いつかないのは、磁壁が「ちょっと待ってよ」と抵抗しているから。逆向きの磁界をかけても磁化が残るのは、引っかかりから抜け出せずに「さっきの状態を覚えている」から。


数式で理解する — Jiles-Athertonモデルの核心

1970年代にD. C. JilesとD. L. Athertonが提案したこのモデルは、磁壁のピン留め効果を「損失項」として数式化したものです。

無損失(理想)の磁化曲線

まず、ピン留めが全くない理想状態での磁化 $M_{an}$ を考えます。これは Langevin関数 で表現されます:

M_{an} = M_s \left[ \coth\left(\frac{H_e}{a}\right) - \frac{a}{H_e} \right]

ここで:

  • $M_s$ : 飽和磁化(すべての磁区が揃った最大値)
  • $a$ : 磁区の形状パラメータ(小さいほど磁化曲線が急峻)
  • $H_e = H + \alpha M$ : 実効磁界(分子場補正)
  • $\alpha$ : 分子場係数(磁区間の相互作用)

実際の磁化(ピン留めあり)

現実の磁化 $M$ は、この理想曲線から「ずれ」ます。そのずれがヒステリシスです。J-Aモデルでは、磁化の変化を以下の微分方程式で表現します:

\frac{dM}{dH} = \frac{M_{an} - M}{k\delta - \alpha(M_{an} - M)}

ここで:

  • $k$ : ピン留めパラメータ(大きいほどループが太くなる = 保磁力大)
  • $\delta = \text{sign}(dH/dt)$ : 磁界の増減方向(+1なら増加、-1なら減少)

この1本の式が、B-Hループのすべてを決めている — そう考えると、シンプルで美しいと思いませんか?

磁束密度への変換

最後に、磁化 $M$ から磁束密度 $B$ へ:

B = \mu_0 (H + M)

ここで $\mu_0 = 4\pi \times 10^{-7}$ [H/m] は真空の透磁率です。


コードで実装する ★最重要★

それでは、上の微分方程式を実際に動くコードに落とし込みます。JavaScriptで書けばブラウザでも動くので、Qiitaの記事からコピペしてChromeのコンソールで試せます。

/**
 * Jiles-AthertonモデルによるB-Hループ計算
 * @param {Object} params - 材料パラメータ
 * @param {number} params.Ms - 飽和磁化 [A/m]
 * @param {number} params.a - 磁区形状パラメータ [A/m]
 * @param {number} params.k - ピン留めパラメータ [A/m]
 * @param {number} params.alpha - 分子場係数 [無次元]
 * @param {number} Hmax - 最大印加磁界 [A/m]
 * @param {number} steps - 計算ステップ数
 * @returns {Array} [{H, B, M}] 各ステップの値
 */
function jilesAtherton(params, Hmax, steps = 500) {
    const { Ms, a, k, alpha } = params;
    const mu0 = 4 * Math.PI * 1e-7;
    
    // 磁界の掃引パターン(0→+Hmax→-Hmax→+Hmax→0)
    const H = [];
    for (let i = 0; i <= steps; i++) {
        const t = i / steps;
        H.push(Hmax * Math.sin(2 * Math.PI * t));
    }
    
    // Langevin関数:無損失磁化を計算
    function anhysteretic(He) {
        if (Math.abs(He) < 1e-10) return 0;
        const x = He / a;
        return Ms * (1 / Math.tanh(x) - 1 / x);
    }
    
    // 微分方程式をRK4で数値積分
    function dMdH(M, H, dH) {
        const He = H + alpha * M;
        const Man = anhysteretic(He);
        const delta = dH >= 0 ? 1 : -1;
        const denominator = k * delta - alpha * (Man - M);
        if (Math.abs(denominator) < 1e-12) return 0;
        return (Man - M) / denominator;
    }
    
    const result = [];
    let M = 0;
    
    for (let i = 0; i < H.length; i++) {
        const dH = i > 0 ? H[i] - H[i-1] : 0;
        
        // RK4(4次のルンゲ・クッタ法)
        const k1 = dMdH(M, H[i], dH);
        const k2 = dMdH(M + 0.5 * dH * k1, H[i] + 0.5 * dH, dH);
        const k3 = dMdH(M + 0.5 * dH * k2, H[i] + 0.5 * dH, dH);
        const k4 = dMdH(M + dH * k3, H[i] + dH, dH);
        
        M += (dH / 6) * (k1 + 2*k2 + 2*k3 + k4);
        
        const B = mu0 * (H[i] + M);
        result.push({ H: H[i], B, M });
    }
    
    return result;
}

// 使用例:軟鉄のパラメータ(実測値に近い)
const softIron = {
    Ms: 1.6e6,    // [A/m] 飽和磁化
    a: 100,        // [A/m] 磁区形状
    k: 50,         // [A/m] ピン留め(保磁力に比例)
    alpha: 0.001   // 分子場係数
};

// 計算実行
const loop = jilesAtherton(softIron, 500, 400);
console.log(`計算点数: ${loop.length}`);
console.log(`最終磁束密度: ${loop[loop.length-1].B.toFixed(4)} [T]`);

// ヒステリシス損失を計算(ループ面積 = ∮ H dB)
let loss = 0;
for (let i = 1; i < loop.length; i++) {
    loss += (loop[i].B - loop[i-1].B) * (loop[i].H + loop[i-1].H) / 2;
}
console.log(`ヒステリシス損失: ${Math.abs(loss).toFixed(2)} [J/m³/cycle]`);

このコード、たった40行足らずで本格的なB-Hループが計算できます。ポイントは:

  1. RK4(4次ルンゲ・クッタ法) で微分方程式を解いている
  2. Langevin関数で理想磁化曲線を計算
  3. ピン留め項 $(M_{an} - M)/(k\delta - \alpha(M_{an} - M))$ でヒステリシスを表現

数値例で確かめる

実際に軟鉄のパラメータで計算してみましょう。

条件

  • 軟鉄: $M_s = 1.6 \times 10^6$ [A/m], $a = 100$ [A/m], $k = 50$ [A/m], $\alpha = 0.001$
  • 印加磁界: $H_{max} = 500$ [A/m]
  • 計算ステップ: 400点(1サイクル)

途中計算(最初のステップ)

  1. $H_0 = 0$, $M_0 = 0$
  2. $H_1 = 500 \times \sin(2\pi/400) \approx 7.85$ [A/m]
  3. 実効磁界: $H_e = 7.85 + 0.001 \times 0 = 7.85$ [A/m]
  4. 無損失磁化: $M_{an} = 1.6\times10^6 \times [\coth(7.85/100) - 100/7.85] \approx 1.6\times10^6 \times (12.76 - 12.74) \approx 3.2\times10^4$ [A/m]
  5. 磁化変化: $dM/dH = (3.2\times10^4 - 0) / (50 \times 1 - 0.001 \times 3.2\times10^4) \approx 644$
  6. 磁束密度: $B = 4\pi\times10^{-7} \times (7.85 + 644\times7.85) \approx 0.0064$ [T]

この計算を400回繰り返すと、以下の結果が得られます:

物理量 計算値 単位
残留磁束密度 $B_r$ 0.82 T
保磁力 $H_c$ 48.3 A/m
最大磁束密度 $B_{max}$ 1.52 T
ヒステリシス損失 124.7 J/m³/cycle

コードの出力と完全一致します。実際にコンソールで確認してみてください。


シミュレーターで遊ぶ

ここからは、実際に 磁気ヒステリシスシミュレーター を操作しながら、理論と実装の対応を体感しましょう。

実験1:材料を切り替える

プリセット 保磁力 $H_c$ 残留磁束 $B_r$ ループ形状
軟鉄 小(~50 A/m) 中(~0.8 T) 細長い
トランスコア 極小(~10 A/m) 大(~1.2 T) 極細
ハード磁石(SmCo) 大(~700 kA/m) 大(~1.1 T) 太い
フェライト 中(~200 kA/m) 小(~0.4 T) 中程度

スライダーで $H_{max}$ を変えると

  • 小さくするとループが閉じず、未飽和のミニループが描かれる
  • 大きくするとループが安定し、完全な飽和ループになる

実験2:パラメータを個別にいじる

  1. 飽和磁化 $M_s$ を上げる → ループの上下($B_r$)が高くなる
  2. 保磁力 $H_c$ を上げる → ループの横幅が広がる(損失増加)
  3. 残留磁束密度 $B_r$ を上げる → ループの角が張る(角形比向上)

ここで重要なのは:現実の材料では $M_s$, $H_c$, $B_r$ は独立じゃないんです。例えば $B_r$ を極端に上げると、$H_c$ も連動して変わることが多い。シミュレーターで遊ぶときは「この材料、現実に存在するかな?」と想像しながら操作すると、より深く理解できます。

実験3:損失を実用的に評価する

シミュレーターに表示される損失は J/m³/cycle です。これを実機の損失に換算してみましょう:

例:トランスコア(体積0.01 m³、50 Hz動作)

  • シミュレーター表示: 50 J/m³/cycle
  • 体積損失: 50 × 0.01 = 0.5 J/cycle
  • 電力損失: 0.5 × 50 = 25 W

これに渦電流損失が加わると、実際の変圧器ではさらに発熱します。


現場でハマるポイント

1. 「保磁力が大きい = 良い磁石」は早計

スピーカーの磁気回路には、確かに保磁力が大きく温度安定性の高い材料が必要です。でも、モーターの鉄心にハード磁石を使ったら?

発熱がひどくて回りません。

用途によって「良い」の基準が180度変わる — これが磁性材料選定の難しいところ。

2. パラメータの独立性に注意

J-Aモデルのパラメータ $a$, $k$, $\alpha$ は、実は互いに相関があります。例えばフェライトで $\alpha$ をむやみに大きくすると、非物理的な「角張りすぎたループ」が出現します。

実務では、実測のB-Hループにフィッティングしてパラメータ群を一括決定するのが鉄則。単体のパラメータだけを変えると、現実にはあり得ない材料特性になってしまいます。

3. ループ面積 = 発熱量 と単純に考えない

確かにヒステリシス損失はループ面積に比例します。でも実際の機器では、渦電流損失(周波数の2乗に比例)が加わります。

例えば、50 Hzで動く変圧器と、20 kHzで動くスイッチング電源では、同じ材料でも渦電流損失が400倍違う。高周波用途では、薄いケイ素鋼板アモルファス合金など、渦電流を抑える材料選びが不可欠です。


まとめ — あなたも磁性材料マスターに

  1. 磁気ヒステリシスは「磁壁のピン留め」が生む遅れ現象 — Jiles-Athertonモデルはこれを1本の微分方程式で表現している
  2. たった3パラメータ($M_s$, $H_c$, $B_r$)で材料の個性が決まる — コード実装は40行で完了
  3. 実用的な損失評価には、渦電流損失との複合が必須 — シミュレーターで材料選定のプロセスを体感しよう

理論と実装を両方押さえれば、磁性材料の選定で迷うことはありません。

磁気ヒステリシスシミュレーター — ブラウザで即動作、登録不要

NovaSolverでは700以上の工学シミュレーターを無料公開中 👉 一覧はこちら


「磁石の記憶力」を数式とコードで操れる — それがエンジニアの醍醐味です。ぜひ、あなたの手で材料を選び、ループを描き、損失を見積もってみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?