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?

FMI for ME と MOSFET モデル:モデルとソルバを分離しつつ、異なる“微分”を扱う話

Last updated at Posted at 2025-01-04

FMI for Model Exchange と MOSFET モデル:モデルとソルバを分離しつつ、異なる“微分”を扱う話

はじめに

前回の記事では、「FMI (Functional Mock-up Interface) for Model Exchange (以下 FMI for ME) と MOSFET モデルは、どちらも“モデルとソルバを分離する”という意味で似ている」とお話ししました。
両者とも、モデル(方程式や特性式)の定義と、それを解くためのソルバ(数値解法)を区別して考える枠組みを持っているからです。

しかし、一方で “どのような微分を返すのか” という点では大きく異なります。
本記事では、まず「モデルとソルバの分離」という観点での共通点をおさえた上で、
なぜ FMI for ME が“時間微分” を返し、そして MOSFET モデルが“端子電圧に対する偏微分” を返すのかをわかりやすく解説します。


モデルとソルバを分離するという意味で似ている

FMI for Model Exchange: モデル本体と数値積分器(ソルバ)の分離

FMI for ME は、以下のような常微分方程式 (ODE) ベースの状態空間モデルを想定します。

$$
\dot{\mathbf{x}}(t) = f\bigl(t,\mathbf{x}(t),\mathbf{u}(t)\bigr), \quad
\mathbf{y}(t) = g\bigl(t,\mathbf{x}(t),\mathbf{u}(t)\bigr).
$$

  • モデル本体: $ \mathbf{x}$, $ \mathbf{u}$, $ \mathbf{y}$ と、それらの関係式 $ f$, $ g$。
  • ソルバ: この方程式を解くための数値積分器やシミュレーションエンジン(例: Euler 法、Runge-Kutta 法 など)。

FMI for ME は、モデルを FMU (Functional Mock-up Unit) という形でブラックボックス化し、
ソルバ(数値積分器)は外部に用意 します。
FMU 側は「状態 $ \mathbf{x}$ と入力 $ \mathbf{u}$ を与えれば、$ \dot{\mathbf{x}}$ と $ \mathbf{y}$ を返す」という仕組みだけ実装しておけばよく、
ソルバの具体的な実装はユーザ側に委ねられます。
これが、「モデルをソルバから切り離しておける」という FMI for ME の大きな利点です。

MOSFET モデル: SPICE などの回路シミュレータとの分離

MOSFET モデル(たとえば BSIM4)も、実は「モデル本体」と「ソルバ役の回路シミュレータ」を明確に切り分けています。

  • モデル本体: ドレイン電流 $ I_d$ の計算式や、端子電圧に対する微分パラメータなど。
  • ソルバ: SPICE 系の回路シミュレータ(HSPICE, Spectre, LTspice など)が、モデルから返される電流および偏微分情報を用いて
    非線形方程式
    $$
    \mathbf{f}(\mathbf{V}) = 0
    $$
    を解く(ニュートン法など)。

つまり「モデルとソルバは別々の役割をもち、モデルは回路シミュレータに必要な情報(電流や偏微分)を返すだけで、
実際の数値解法は回路シミュレータ側が担当している」のです。
このように、モデルとソルバを分けておくというアプローチは FMI for ME と MOSFET モデルに共通しており、
前回述べた“似ている点”といえます。


それでも違うのは「返す微分」が異なるから

FMI for ME は「時間微分」を返す

FMI for ME は、「状態の時間変化 $ \dot{\mathbf{x}}$」を返すための仕様になっています。
制御システムや機械システムなど、時間軸に沿って「状態がどう変化するか」を数値積分するのが中心です。
ソルバ(数値積分器)は、FMU から返される $ \dot{\mathbf{x}}$ をもとに

$$
\mathbf{x}(t + \Delta t) \approx \mathbf{x}(t) + \int_{t}^{t+\Delta t} \dot{\mathbf{x}}(\tau) , d\tau
$$

などと計算し、シミュレーションを進めていきます。

MOSFET モデルは「端子電圧に対する偏微分」を返す

一方、回路シミュレータが必要としているのは「ノード電圧に対して回路方程式がどのように変化するか」、つまり “偏微分” です。
具体的には、MOSFET(たとえば BSIM4)のドレイン電流 $ I_d$ は、ゲート電圧 $ V_g$、ドレイン電圧 $ V_d$、ソース電圧 $ V_s$、バルク電圧 $ V_b$ などに依存しており、

$$
I_d = I_d(V_g, V_d, V_s, V_b)
$$

という複雑な関係式になっています。
ニュートン法では、1ステップごとに「いまの推定点まわりで $ \mathbf{f}(\mathbf{V})$ を一次近似」するため、

$$
\frac{\partial I_d}{\partial V_g}, \quad
\frac{\partial I_d}{\partial V_d}, \quad
\frac{\partial I_d}{\partial V_s}, \quad \dots
$$

のような “端子電圧に対する微分”(偏微分値)が不可欠です。
これらの値がないと、回路方程式のヤコビ行列を構築できず、ニュートン法が解の更新方向(修正量)を計算できなくなります。


ニュートン法の幾何学的イメージ

1変数の場合:接線

1変数のニュートン法では「関数 $ f(x)$ の微分 $ f'(x_n)$ から接線を引き、
x 軸との交点を次の推定値 $ x_{n+1}$ とする」という流れです。
幾何学的には「近傍の曲線を直線近似して解を探す」イメージです。

多変数の場合:接平面(超平面)

回路シミュレータが解くような多変数の非線形方程式

$$
\mathbf{f}(\mathbf{V})=0
$$

では、1変数の「接線」が**「接平面(超平面)」**となります。
式を1次近似すると、

$$
f_i\bigl(\mathbf{V} + \Delta \mathbf{V}\bigr)
\approx
f_i(\mathbf{V})
+
\sum_j
\frac{\partial f_i}{\partial V_j}\bigl(\mathbf{V}\bigr),
\Delta V_j.
$$

ここで
$ \frac{\partial f_i}{\partial V_j}(\mathbf{V})$ は 「端子電圧に対する偏微分」 であり、
MOSFET モデルが提供する重要な情報です。


まとめ:モデルとソルバを分離する点で似ているが、返す微分は異なる

  1. モデルとソルバの分離という共通点

    • FMI for ME は「FMU (モデル)」と「数値積分ソルバ」を分離
    • MOSFET モデル は「デバイスモデル本体」と「回路シミュレータ(ソルバ役)」を分離
    • いずれも、モデルは自分の方程式(特性)を定義し、ソルバはその解法を担うという役割分担を行う
  2. 扱う微分は異なる

    • FMI for ME: 「時間微分($ \dot{\mathbf{x}}$)」を返し、ODE ソルバで時間積分を行う
    • MOSFET モデル(BSIM4 など): 「端子電圧に対する電流の偏微分($ \partial I/\partial V$)」を返し、回路シミュレータがニュートン法で代数方程式を解く
  3. なぜ微分が違うのか?

    • FMI for ME は「制御系や機械システムなど、状態の時間変化を中心に据えた解析」を想定
    • 回路シミュレータは「各時刻でノード電圧を求めるための非線形方程式解法(ニュートン法)」を主眼にしている

結論として、FMI for ME と MOSFET モデルは「モデルとソルバを切り離す」という点では確かに似ていますが、
実際にやり取りされる微分情報(時間微分 vs. 端子電圧に対する偏微分)が大きく異なるため、
適用分野や目的も違ってきます。

回路シミュレーションでは「いまの電圧に対する電流の変化量」を即座に把握する必要があるため、
MOSFET モデルは偏微分を返す仕組みを備えているのです。

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?