Skip to main content

補間子とは

補間子 (interpolant) は、単一の値や数式ではなく、ルックアップテーブルとして定義されるパラメータです。補間子は、単純な数学的公式を持たない実験データや複雑な関係を表すのに理想的です。 パラメータを補間子として定義するとき、離散的なデータ点を提供し、Ionworks Studio はシミュレーション中にそれらの間を自動的に補間します。

補間子を使う場面

補間子は特に次のような場合に有用です:
  • 開回路電位 (OCP) カーブ: 実験測定からの化学量論の関数としての電圧
  • 拡散係数データ: 濃度や温度とともに非線形に変化する拡散係数
  • 温度依存特性: 離散的な温度点で測定された物理特性
  • 複雑な多変数関係: 複数の入力に依存するパラメータ(例: 濃度と温度の両方の関数としての導電率)
数学関数として表現するのが難しい実験データがある場合や、ルックアップテーブルがフィットされた方程式よりも高い精度を提供する場合に、補間子を使用してください。

補間子の作成

ステップ 1: 互換性のあるパラメータを特定する

すべてのパラメータを補間子に変換できるわけではありません。関数入力を受け入れるパラメータのみが補間子になります。 パラメータが補間子になれるかどうかを確認するには:
  1. モデルの作成またはクローン時に Model Editor に移動します
  2. 変更したいパラメータを探します
  3. パラメータ値の隣の 変更サークルアイコン (⟳) をクリックします
  4. メニューに「Interpolant」が表示されれば、パラメータは補間子をサポートします
スカラー値のみを受け入れるパラメータ(幾何寸法など)は補間子に変換できません。

ステップ 2: パラメータタイプを変換する

パラメータを補間子に変換するには:
  1. パラメータ値の隣の 変更サークルアイコン (⟳) をクリックします
  2. ドロップダウンメニューから Interpolant を選択します
  3. 補間子エディタが開きます

ステップ 3: データを入力する

補間子データの入力には 2 つのオプションがあります:

オプション A: CSV ファイルをアップロードする

補間子を定義する最も速い方法は CSV ファイルをアップロードすることです:
  1. 補間子エディタで Upload File ボタンをクリックするか、CSV ファイルをドラッグ&ドロップします
  2. CSV ファイルを次の列で整形します:
    • 最初の列: 入力変数(例: 化学量論、温度)
    • 最後の列: 出力値(パラメータ値)
1 次元補間子の CSV 例(例: OCP 対化学量論):
0.0, 3.5
0.1, 3.6
0.2, 3.65
0.3, 3.7
0.5, 3.8
0.7, 3.85
0.9, 3.95
1.0, 4.1
2 次元補間子の CSV 例(例: 拡散係数対化学量論と温度):
0.0, 298, 1.5e-14
0.0, 323, 2.8e-14
0.5, 298, 1.8e-14
0.5, 323, 3.2e-14
1.0, 298, 1.6e-14
1.0, 323, 3.0e-14

オプション B: 手動入力

小さなデータセットでは、データ点を手動で入力できます:
  1. Insert Row Above または Insert Row Below をクリックして新しいデータ点を追加します
  2. テーブルの任意のセルをクリックして値を編集します
  3. データ点を入力します
  4. 不要な点を削除するには Delete Row を使用します
1 次元補間子では、入力 (x) と出力 (y) の両方の値を編集できます。多次元補間子では、データのアップロード後は出力 (y) の値のみ編集可能で、入力の組み合わせは CSV で定義する必要があります。

ステップ 4: 補間方法を選択する

データに最も合う補間方法を選択します:
  • Linear: データ点間の直線。粗いデータやオーバーフィッティングを避けたい場合に最適です。
  • Cubic: 3 次スプラインを使った滑らかなカーブ。滑らかな物理的関係に理想的です。
  • Pchip: 区分的 3 次エルミート補間多項式。オーバーシュートを防ぎ、単調なデータに適しています。
OCP カーブのようなほとんどの電気化学的特性については、cubic または pchip 補間が最も滑らかで物理的に現実的な結果を提供します。

ステップ 5: プレビューと保存

  • 1 次元補間子 では、右側にデータがどのように補間されるかを示すプロットプレビューが表示されます
  • 補間が物理的に妥当に見えるかプロットを確認します
  • Save をクリックして補間子をパラメータに適用します

多次元補間子の操作

多次元補間子では、複数の変数に同時に依存するパラメータを定義できます(例: 濃度と温度の両方の関数としての導電率)。

要件

  • パラメータは複数の入力を持つ関数を受け入れる必要があります
  • データは、定義したいすべての入力の組み合わせを含む CSV ファイルとして提供する必要があります
  • CSV 形式は input1, input2, ..., output です

例: 拡散係数(化学量論, 温度)

パラメータが D(sto, T) のような関数を受け入れる場合、2D 補間子を作成できます:
stoichiometry, temperature, diffusivity
0.0, 298, 1.5e-14
0.0, 323, 2.8e-14
0.2, 298, 1.7e-14
0.2, 323, 3.0e-14
0.5, 298, 1.8e-14
0.5, 323, 3.2e-14
0.8, 298, 1.7e-14
0.8, 323, 3.1e-14
1.0, 298, 1.6e-14
1.0, 323, 3.0e-14
シミュレーション中、Ionworks Studio はこれらの点の間を補間して、任意の (化学量論, 温度) 組み合わせでパラメータを評価します。
多次元補間子には注意深いデータ準備が必要です。シミュレーション中の外挿エラーを避けるため、入力空間が適切にサンプリングされていることを確認してください。

ベストプラクティス

データ品質

  • 十分なデータ点を使用する: 1 次元補間子では、10〜20 点で良い精度が得られることが多いです
  • 全範囲をカバーする: シミュレーション中にパラメータが遭遇する全範囲をデータがカバーすることを確認してください
  • 外挿を避ける: データ範囲外のパラメータ値を必要とするシミュレーションは外挿し、非物理的な結果につながる可能性があります
  • ノイズを確認する: 補間子を作成する前に、ノイズの多い実験データを平滑化またはフィルタリングしてください

補間子のテスト

補間子を作成した後:
  1. 視覚検査: 1 次元補間子では、カーブが物理的に妥当に見えるようプロットプレビューを確認してください
  2. テストシミュレーションを実行: 補間子付きのモデルが期待される結果を生成することを確認してください
  3. 元のデータと比較: 関数から補間子に変換する場合、シミュレーション結果を比較して一貫性を確認してください

パラメータタイプ間の変換

パラメータは値、関数、補間子の間でいつでも切り替えられます:
  1. 変更サークルアイコン (⟳) をクリックします
  2. 新しいタイプを選択します
  3. Ionworks Studio は前のパラメータ定義を一時的に保存するため、同じ編集セッション内で戻すと作業が保持されます
モデルを反復するとき、シンプルな関数から始めて、実験データを集めながら補間子に絞り込んでいくとよいでしょう。モデルのクローンによりこのワークフローはシームレスになります。

一般的なユースケース

開回路電位 (OCP)

補間子の最も一般的な用途は OCP カーブです:
stoichiometry, voltage
0.01, 0.15
0.10, 0.35
0.20, 0.45
0.50, 0.60
0.80, 0.75
0.90, 0.85
0.99, 0.95
パラメータ名: Positive electrode OCP [V] または Negative electrode OCP [V]

温度依存導電率

temperature, conductivity
273, 0.5
298, 1.0
323, 1.8
348, 2.9
パラメータ名: Electrolyte conductivity [S.m-1]

濃度依存拡散係数

concentration, diffusivity
1000, 1.2e-14
5000, 1.5e-14
10000, 1.8e-14
15000, 1.6e-14
20000, 1.4e-14
パラメータ名: Positive electrode diffusivity [m2.s-1] または Negative electrode diffusivity [m2.s-1]

技術的詳細

補間アルゴリズム

  • Linear: kind='linear'scipy.interpolate.interp1d を使用
  • Cubic: kind='cubic'scipy.interpolate.interp1d を使用
  • Pchip: scipy.interpolate.PchipInterpolator(単調 3 次補間)を使用
シミュレーション中は、PyBaMM の Interpolant クラスが補間値の評価を処理します。

トラブルシューティング

「Missing values in the table」

このエラーは、データに NaN や欠落値が含まれている場合に発生します。CSV ファイルで次を確認してください:
  • 空のセル
  • 数値でないデータ
  • フォーマットの問題

補間子でシミュレーションが失敗する

補間子を追加した後にシミュレーションが失敗する場合:
  1. データ範囲を確認する: 補間子がシミュレーション中に遭遇する値の全範囲をカバーしていることを確認してください
  2. 異なる補間方法を試す: cubic から linear や pchip に切り替えてください
  3. データ点を増やす: パラメータが急速に変化する領域でより多くの点を追加してください
  4. 単位を確認する: 入力と出力の両方でデータが正しい単位を使用していることを確認してください

パラメータを補間子に変換できない

補間子オプションが表示されない場合:
  • パラメータはスカラー値のみを受け入れ、補間子にはなれません
  • 代わりに関数パラメータを使用するか、その特定のパラメータのパラメータライブラリドキュメントを確認してください

関連トピック

  • モデル: モデル作成とパラメータ設定について詳しく学びます
  • シミュレーション: シミュレーション中に補間子がどのように使用されるかを理解します