メインコンテンツへスキップ

最適化テンプレート

最適化テンプレートは、一般的な最適化シナリオに対して事前設定された出発点を提供します。各テンプレートは、特定のニーズに合わせてカスタマイズ可能なデフォルトのパラメータ、目的関数、実験、制約条件を定義しています。

テンプレートタイプ

Ionworks Studio には 2 種類の最適化テンプレートがあります:
  • システムテンプレート — Ionworks が提供する組み込みテンプレート(Design、Charge)。読み取り専用で、すべてのプロジェクトで利用可能です。
  • プロジェクトテンプレート — 特定のプロジェクト内で作成するテンプレート。そのプロジェクトのメンバーのみに表示され、完全に編集・削除できます。
プロジェクトの最適化テンプレートページを開くと、システムテンプレートとプロジェクト固有のテンプレートの両方が表示されます。Type 列でテンプレートが “System” か “Project” かを確認できます。

利用可能なシステムテンプレート

Design テンプレート

Design テンプレートは、バッテリーセルの最適な幾何学的パラメータや材料パラメータを見つけるセル設計最適化に最適化されています。 デフォルト設定:
  • 目的関数: 容量またはエネルギー密度の最大化
  • パラメータ: 電極の厚さ、空隙率、粒子サイズ
  • 制約条件: 製造上の制限、安全性要件
一般的なユースケース:
  • ターゲットアプリケーションに対する電極厚み比の最適化
  • エネルギー密度と出力特性のバランス調整
  • レート特性のための最適な粒子サイズの探索

Charge テンプレート

Charge テンプレートは、安全性の制約条件を遵守しながら充電時間を最小化する最適な電流プロファイルを見つける充電プロトコル最適化向けに設計されています。 デフォルト設定:
  • 目的関数: 充電時間の最小化(0-100% または 0-80%)
  • パラメータ: 各ステップの充電電流
  • 制約条件: アノード電位 > 0V(リチウム析出を回避するため)
一般的なユースケース:
  • 多段定電流(MSCC)充電の最適化
  • 急速充電プロトコルの設計
  • 充電速度とバッテリー寿命のバランス調整

テンプレートの構造

各最適化テンプレートは以下で構成されています:

パラメータセクション

最適化するモデルパラメータを定義します:
{
  "parameters": {
    "I_charge_1": {
      "bounds": [-5.0, -0.5],
      "initial_value": -2.0
    },
    "I_charge_2": {
      "bounds": [-5.0, -0.5],
      "initial_value": -1.5
    }
  }
}
  • bounds: パラメータの [最小値, 最大値] 範囲
  • initial_value: 最適化の開始点
充電電流について、PyBaMM では充電に負の値を使用します(正の値 = 放電)。したがって、充電電流 -2.0 A は 2.0 A で充電することを意味します。

目的関数セクション

実行する実験と最適化対象を定義します:
{
  "objectives": {
    "charge_objective": {
      "experiment": "...",
      "metrics": {
        "charge_time": {
          "action": "Minimize",
          "weight": 1.0,
          "metric": {
            "type": "Time",
            "variable": "Time [s]",
            "value": -1
          }
        }
      },
      "constraints": {
        "anode_potential": {
          "action": "GreaterThan",
          "penalty": 1000000,
          "metric": {
            "type": "Minimum",
            "variable": "Anode potential [V]"
          },
          "value": 0
        }
      }
    }
  }
}

実験の定義

実験は UCP 形式で定義されます。テンプレートでは Input["parameter_name"] 構文を使用して最適化可能なパラメータを参照します:
- CC Charge Step 1:
    - Charge:
        mode: Current
        value: Input["I_charge_1"]
        ends:
          - "Voltage > 4.0"
- CC Charge Step 2:
    - Charge:
        mode: Current
        value: Input["I_charge_2"]
        ends:
          - "Voltage > 4.2"
- CV Hold:
    - Charge:
        mode: Voltage
        value: 4.2
        ends:
          - "C-rate < 0.05"

カスタム変数

テンプレートではカスタム変数を定義できます。これは、PyBaMM の式を使用してシミュレーション出力から計算される派生量です。モデル出力として直接利用できない量に基づいて最適化したい場合に便利です。

カスタム変数の作成

カスタム変数は目的関数ごとに以下の内容で定義されます:
  • 名前: 変数の説明的な名前
  • : PyBaMM の式文字列
式の例:
# Specific energy (Wh/kg)
pybamm.Variable("Energy [Wh]") / pybamm.Parameter("Cell mass [kg]")

# Anode surface potential difference
pybamm.CoupledVariable("Negative electrode surface potential difference [V]")
カスタム変数は、“Voltage [V]” や “Current [A]” などのモデル変数と 並んで、ゴールや制約条件の変数ドロップダウンで利用可能になります。

メトリクスタイプ

テンプレートでは、シミュレーション結果から値を抽出するためにさまざまなメトリクスタイプを使用します:

集約メトリクス

時系列から単一の値を計算します:
タイプ説明
Maximumシミュレーション中の最大値
Minimumシミュレーション中の最小値
Mean時間平均値
Sum累積合計
PointBased変化しない値(例: セルプロパティ)

交差メトリクス

特定のポイントで変数を評価します:
タイプ値フィールド説明
Time指定した時間での値(終了時は -1)
SOC0-1指定した SOC に達した時の値
Voltageボルト指定した電圧に達した時の値
例: SOC 80% に達するまでの時間
{
  "type": "SOC",
  "variable": "Time [s]",
  "value": 0.8
}

テンプレートのカスタマイズ

テンプレートを選択すると、すべての値が事前入力されますが、完全に編集可能です:
  1. パラメータの変更 - パラメータの追加/削除、範囲の調整
  2. 目的関数の編集 - 実験プロトコルの変更、ゴールの追加/削除
  3. 制約条件の調整 - 制約のしきい値とペナルティの変更
  4. カスタム変数の追加 - 特定のニーズに合わせた派生量の作成
  5. アルゴリズムの設定 - マルチスタート数と最大反復回数の設定
テンプレートは出発点を提供するものです。特定のセル化学、フォームファクタ、 最適化目標に合わせてカスタマイズすることをお勧めします。

プロジェクト間でのテンプレートのコピー

システムテンプレートを含む任意のテンプレートを、組織内の別のプロジェクトにコピーできます。これは、複数のプロジェクト間でテンプレート設定を再利用したい場合や、カスタマイズ可能なシステムテンプレートのプロジェクト固有バージョンを作成したい場合に便利です。 テンプレートをコピーするには:
  1. プロジェクトの最適化テンプレートリストを開きます
  2. コピーしたいテンプレートの三点メニューをクリックします
  3. Copy to project を選択します
  4. ダイアログからターゲットプロジェクトを選択します
  5. Copy をクリックします
コピーされたテンプレートは、独立して編集可能な新しいプロジェクトテンプレートとしてターゲットプロジェクトに表示されます。
テンプレート名はプロジェクト内でユニークである必要があります。ターゲットプロジェクトに 同じ名前のテンプレートが既に存在する場合、コピーは失敗します。まずターゲット プロジェクト内の競合するテンプレートの名前を変更して名前を空けてから、 コピーを再試行してください。

テンプレートの権限

テンプレートの権限はプロジェクトレベルで管理されます:
アクション必要なプロジェクトロール
テンプレートの表示Viewer、Contributor、または Admin
テンプレートの作成Contributor または Admin
テンプレートの編集Contributor または Admin
テンプレートの削除Admin
システムテンプレートはすべてのユーザーに対して読み取り専用です。 システムテンプレートを変更するには、まずプロジェクトにコピーしてください。 コピーは完全に編集可能なプロジェクトテンプレートになります。

次のステップ