メインコンテンツへスキップ
このページは組み込みテンプレートの詳細リファレンスです。プロトコルの作成、管理、使用に関する完全なガイドはプロトコルを参照してください。

実験テンプレート

Ionworks は9つの組み込み実験テンプレートを提供しています。これらは、異なるパラメータでカスタマイズできる事前設定されたバッテリーテストプロトコルです。各テンプレートは Universal Cycler Protocol (UCP) 形式を使用してプロトコルを定義し、ニーズに合わせて調整可能な変数を備えています。

テンプレートメトリクス

一部の実験テンプレートには組み込みのメトリクスが含まれています。これはシミュレーション結果から自動的に計算される要約値です。これらのテンプレートを使用してシミュレーションを実行すると、メトリクスが計算され、シミュレーション入力とともにデータビューに表示されます。 メトリクスは以下のタイプを持つ宣言的な設定形式を使用します:
カテゴリタイプ説明
AggregationFirst, Last, Mean, Minimum, Maximum, Sum時系列変数から単一の値を計算
CrossingSOC, Voltage, Time特定の充電状態、電圧、または時間における変数の値を検出
ComposedComposedMetric算術演算(add, sub, mul, div, abs)でメトリクスを組み合わせ
メトリクスは step フィールド(0始まりのインデックス)を使用して特定のプロトコルステップを対象にすることもできます。これはパルス抵抗テストのようなマルチステップ実験で有用です。
同じメトリクスタイプシステムが最適化テンプレートでも、最適化目的関数と制約の定義に使用されています。

利用可能なテンプレート

1. Constant Current Discharge

説明: 電圧カットオフに達するまで一定のC-rateでバッテリーを放電します。 調整可能なパラメータ:
  • Temperature [°C] - 動作温度(デフォルト:25°C)
  • Initial SOC [%] - 初期充電状態(デフォルト:100%)
  • C-rate - 公称容量に対する放電レート(デフォルト:1C)
  • Cut-off voltage [V] - 放電停止の最小電圧(デフォルト:V_MIN)
global:
    initial_temperature: input["Temperature [°C]"]
    initial_state_type: soc_percentage
    initial_state_value: input["Initial SOC [%]"]

steps:
    - Discharge:
        mode: C-rate
        value: input["C-rate"]
        resolution:
            time: 10 / input["C-rate"]
        ends:
            - Voltage < input["Cut-off voltage [V]"]
計算されるメトリクス:
メトリクス説明
Capacity [A.h]最終放電容量
Energy [W.h]最終放電エネルギー
Mean internal resistance [mΩ]放電中の平均内部抵抗
Mean current [A]平均電流の絶対値
Mean power [W]平均電力の絶対値
Min/Max anode potential [V]放電中のアノード電位範囲
Min/Max cathode potential [V]放電中のカソード電位範囲

2. Constant Current Charge

説明: 定電流(CC)フェーズに続いて定電圧(CV)ホールドでバッテリーを充電します。これは標準的な CC-CV 充電プロトコルです。 調整可能なパラメータ:
  • Temperature [°C] - 動作温度(デフォルト:25°C)
  • Initial SOC [%] - 初期充電状態(デフォルト:0%)
  • C-rate - CC フェーズ中の充電レート(デフォルト:1C)
  • Cut-off voltage [V] - CC/CV フェーズの最大電圧(デフォルト:V_MAX)
  • CV cut-off C-rate - CV フェーズを終了するC-rate閾値(デフォルト:0.02C)
global:
    initial_temperature: input["Temperature [°C]"]
    initial_state_type: soc_percentage
    initial_state_value: input["Initial SOC [%]"]

steps:
    - Charge:
        mode: C-rate
        value: input["C-rate"]
        resolution:
            time: 10 / input["C-rate"]
        ends:
            - Voltage > input["Cut-off voltage [V]"]
    - Charge:
        mode: Voltage
        value: input["Cut-off voltage [V]"]
        ends:
            - C-rate < input["CV cut-off C-rate"]
計算されるメトリクス:
メトリクス説明
Charge capacity [A.h]最終充電容量
Energy [W.h]最終充電エネルギー
Mean internal resistance [mΩ]平均内部抵抗
Mean current [A]平均充電電流
Mean power [W]平均電力の絶対値
Min/Max anode potential [V]充電中のアノード電位範囲
Min/Max cathode potential [V]充電中のカソード電位範囲
Charge time (10-80% SOC) [min]SOC 10%から80%までの充電時間(分単位)

3. GITT (Galvanostatic Intermittent Titration Technique)

説明: 電流パルスと休止期間を交互に繰り返し、充電状態の関数として準平衡電圧を測定します。この手法はセル電圧への動力学的寄与と熱力学的寄与を分離します。この実験はパルスフェーズ中に上限または下限の電圧カットオフに達するまで実行されます。 調整可能なパラメータ:
  • Temperature [°C] - 動作温度(デフォルト:25°C)
  • Direction - ‘Charge’ または ‘Discharge’(デフォルト:‘Discharge’)
  • Pulse C-rate - アクティブパルス中の電流レート(デフォルト:0.1C)
  • Pulse duration [s] - 各電流パルスの長さ(デフォルト:1800秒 / 30分)
  • Rest duration [s] - 各休止期間の長さ(デフォルト:1800秒 / 30分)
global:
    initial_temperature: input["Temperature [°C]"]
    initial_state_type: soc_percentage
    initial_state_value: ifelse(input["Direction"] == "Charge", 0, 100)

steps:
    - Control:
        set_variable:
            - name: VAR_IS_CHARGE
              eval: ifelse(input["Direction"] == "Charge", 1, 0)
            - name: VAR_VMAX
              eval: input["Upper voltage cut-off [V]"]
            - name: VAR_VMIN
              eval: input["Lower voltage cut-off [V]"]
    - Pulse Block:
        steps:
            - Direction[input["Direction"]]:
                mode: C-rate
                value: input["Pulse C-rate"]
                duration: input["Pulse duration [s]"]
                ends:
                    - "Voltage > ifelse(VAR_IS_CHARGE == 1, VAR_VMAX, 1e9)":
                        goto: Final Rest Block
                    - "Voltage < ifelse(VAR_IS_CHARGE == 0, VAR_VMIN, -1e9)":
                        goto: Final Rest Block
            - Rest:
                duration: input["Rest duration [s]"]
        repeat: 1000
    - Final Rest Block:
        - Rest:
            duration: input["Rest duration [s]"]

4. PITT (Potentiostatic Intermittent Titration Technique)

説明: ステップ間に休止期間を挟みながら電圧を小さな増分で変化させます。電圧変化に対する電流応答を測定して電極の動力学を研究します。 調整可能なパラメータ:
  • Temperature [°C] - 動作温度(デフォルト:25°C)
  • Starting voltage [V] - 初期セル電圧(デフォルト:V_MIN)
  • Final voltage [V] - 目標セル電圧(デフォルト:V_MAX)
  • Voltage step [V] - 電圧増分の大きさ(デフォルト:0.1V)
  • Pulse duration [s] - 各電圧での保持時間(デフォルト:900秒 / 15分)
  • Rest duration [s] - 電圧ステップ間の休止時間(デフォルト:900秒 / 15分)
global:
    initial_temperature: input["Temperature [°C]"]
    initial_state_type: voltage
    initial_state_value: input["Starting voltage [V]"]

steps:
    - Control:
        set_variable:
            - name: VAR_VOLTAGE
              eval: input["Starting voltage [V]"]
            - name: VAR_CHARGE
              eval: input["Final voltage [V]"] > input["Starting voltage [V]"]
            - name: VAR_END_CONDITION
              eval: input["Final voltage [V]"]

    - Pulse Block:
        steps:
            - Direction[ifelse(VAR_CHARGE == 1, "Charge", "Discharge")]:
                mode: Voltage
                value: VAR_VOLTAGE
                duration: input["Pulse duration [s]"]
                ends:
                    - "Voltage > ifelse(VAR_CHARGE == 1, VAR_END_CONDITION, 1e9)":
                        goto: Final Rest Block
                    - "Voltage < ifelse(VAR_CHARGE == 0, VAR_END_CONDITION, -1e9)":
                        goto: Final Rest Block

            - Rest:
                set_variable:
                    - name: VAR_VOLTAGE
                      eval: VAR_VOLTAGE + input["Voltage step [V]"]
                duration: input["Rest duration [s]"]
        repeat: 1000

    - Final Rest Block:
        - Rest:
            duration: input["Rest duration [s]"]

5. Pulse Resistance

説明: 休止-パルス-休止シーケンスを使用して DC 内部抵抗(DCIR)を測定します。電流パルスに対する瞬時電圧応答を定量化します。 調整可能なパラメータ:
  • Temperature [°C] - 動作温度(デフォルト:25°C)
  • Initial SOC [%] - テストの充電状態(デフォルト:50%)
  • C-rate - 電流パルスの大きさ(デフォルト:1C)
  • Direction - ‘Charge’ または ‘Discharge’(デフォルト:‘Discharge’)
  • Duration [s] - パルスの合計持続時間(デフォルト:10秒)
global:
    initial_temperature: input["Temperature [°C]"]
    initial_state_type: soc_percentage
    initial_state_value: input["Initial SOC [%]"]

steps:
    - Rest:
        duration: input["Duration [s]"]/2
    - Discharge:
        mode: C-rate
        value: input["C-rate"]
        duration: input["Duration [s]"]
    - Rest:
        duration: input["Duration [s]"]/2
計算されるメトリクス:
メトリクス説明
Pulse overpotential [mV]休止時とパルス終了時の電圧差(ミリボルト単位)
Pulse resistance [mΩ]過電圧を平均パルス電流で割って計算した DC 内部抵抗
パルス抵抗メトリクスは、初期休止期間(ステップ0)終了時の電圧とパルス電流(ステップ1)終了時の電圧を比較するためにステップレベルのフィルタリングを使用します。

6. Pseudo-OCV

説明: 非常に低いC-rateで電圧プロファイルを測定し、SOC に対する開回路電圧(OCV)の関係を近似します。低レートにより分極効果を最小化します。 調整可能なパラメータ:
  • Temperature [°C] - 動作温度(デフォルト:25°C)
  • Direction - ‘Charge’ または ‘Discharge’(デフォルト:‘Discharge’)
  • C-rate - 分極を最小化するための非常に低いレート(デフォルト:0.05C)
global:
    initial_temperature: input["Temperature [°C]"]
    initial_state_type: soc_percentage
    initial_state_value: ifelse(input["Direction"] == "Charge", 0, 100)

steps:
    - Control:
        set_variable:
            - name: VAR_IS_CHARGE
              eval: input["Direction"] == "Charge"
            - name: VAR_VMAX
              eval: input["Upper voltage cut-off [V]"]
            - name: VAR_VMIN
              eval: input["Lower voltage cut-off [V]"]
    - Direction[input["Direction"]]:
        mode: C-rate
        value: input["C-rate"]
        ends:
            # End of charge/discharge
            - Voltage > ifelse(VAR_IS_CHARGE == 1, VAR_VMAX, 1e9)
            - Voltage < ifelse(VAR_IS_CHARGE == 0, VAR_VMIN, -1e9)
計算されるメトリクス:
メトリクス説明
Capacity [A.h]ステップ容量の絶対値
Mean internal resistance [mΩ]平均内部抵抗の絶対値
Mean current [A]平均電流の絶対値

7. EIS (Electrochemical Impedance Spectroscopy)

説明: 周波数範囲にわたって小さな AC 電圧摂動を印加し、セルの複素インピーダンスを測定します。動力学的プロセスと輸送プロセスをマッピングします。 調整可能なパラメータ:
  • Temperature [°C] - 動作温度(デフォルト:25°C)
  • SOC [%] - 測定時の充電状態(デフォルト:50%)
  • Lower frequency [Hz] - 最小周波数(デフォルト:0.0001 Hz)
  • Upper frequency [Hz] - 最大周波数(デフォルト:10000 Hz)
global:
    initial_temperature: input["Temperature [°C]"]
    initial_state_type: soc_percentage
    initial_state_value: input["SOC [%]"]

steps:
    - EIS:
        lower_frequency: input["Lower frequency [Hz]"]
        upper_frequency: input["Upper frequency [Hz]"]

8. Cyclic Voltammetry

説明: 制御されたスキャンレートで上限と下限の間でセル電圧を線形にスイープします。酸化還元反応を特定するために電流応答を測定します。 調整可能なパラメータ:
  • Temperature [°C] - 動作温度(デフォルト:25°C)
  • Scan rate [mV/s] - 電圧スイープのレート(デフォルト:0.1 mV/s)
global:
    initial_temperature: input["Temperature [°C]"]
    initial_state_type: voltage
    initial_state_value: input["Lower voltage cut-off [V]"]

steps:
    - Control:
        set_variable:
            - name: VAR_SCAN_RATE_VS
              eval: input["Scan rate [mV/s]"] / 1000
    - Charge:
        mode: Voltage
        value: input["Lower voltage cut-off [V]"] + VAR_SCAN_RATE_VS * t
        ends:
            - Voltage > input["Upper voltage cut-off [V]"]
    - Discharge:
        mode: Voltage
        value: input["Upper voltage cut-off [V]"] - VAR_SCAN_RATE_VS * t
        ends:
            - Voltage < input["Lower voltage cut-off [V]"]

9. Cycle Aging

説明: 容量低下モニタリング付きの繰り返し充放電サイクル。CCCV 充電(電圧制限まで定電流、次にC-rateカットオフまで定電圧)と二重終了条件付き CC 放電(電圧カットオフまたは放電深度容量制限)を使用します。容量保持率を追跡し、容量が公称値の指定パーセンテージを下回った場合に早期停止できます。 調整可能なパラメータ:
  • Temperature [°C] - 動作温度(デフォルト:25°C)
  • Nominal capacity [A.h] - C-rate と DOD 計算用のセル容量(デフォルト:5.0 A.h)
  • Charge C-rate - CC 充電フェーズ中のC-rate(デフォルト:1C)
  • Discharge C-rate - 放電中のC-rate(デフォルト:1C)
  • Depth of discharge [%] - 公称容量に対する1サイクルあたりの目標 DOD(デフォルト:100%)
  • Discharge voltage cutoff [V] - 放電停止の最小電圧(デフォルト:V_MIN)
  • Charge voltage [V] - CC/CV 充電の最大電圧(デフォルト:V_MAX)
  • Charge C-rate cutoff - CV フェーズを終了するC-rate閾値(デフォルト:0.05C)
  • Post charge rest time [s] - 充電後の休止(デフォルト:600秒)
  • Post discharge rest time [s] - 放電後の休止(デフォルト:600秒)
  • Number of cycles - 最大充放電サイクル数(デフォルト:100)
  • End capacity [%] - 容量がこの公称パーセンテージを下回ったらサイクルを停止(デフォルト:80%)
global:
    initial_temperature: input["Temperature [°C]"]
    initial_state_type: soc_percentage
    initial_state_value: 50

steps:
    - Control:
        set_variable:
            - name: VAR_VMAX
              eval: input["Charge voltage [V]"]
            - name: VAR_VMIN
              eval: input["Discharge voltage cutoff [V]"]
            - name: VAR_NOMINAL_CAPACITY
              eval: input["Nominal capacity [A.h]"]
            - name: VAR_DOD_FRACTION
              eval: input["Depth of discharge [%]"] / 100
            - name: VAR_END_CAPACITY_RATIO
              eval: input["End capacity [%]"] / 100
            - name: VAR_CURRENT_CAPACITY
              eval: "0"
            - name: VAR_CAPACITY_RATIO
              eval: "1.0"
    - Control:
        set_variable:
            - name: VAR_DOD_CAPACITY_LIMIT
              eval: VAR_DOD_FRACTION * VAR_NOMINAL_CAPACITY
    - Cycle Block:
        repeat: input["Number of cycles"]
        steps:
            - Increment cycle number
            - Charge:
                mode: C-rate
                value: input["Charge C-rate"]
                resolution:
                    time: 10 / input["Charge C-rate"]
                ends:
                    - Voltage > VAR_VMAX
            - Charge:
                mode: Voltage
                value: VAR_VMAX
                resolution:
                    time: 10 / input["Charge C-rate"]
                ends:
                    - C-rate < input["Charge C-rate cutoff"]
            - Rest:
                duration: input["Post charge rest time [s]"]
            - Discharge:
                mode: C-rate
                value: input["Discharge C-rate"]
                resolution:
                    time: 10 / input["Discharge C-rate"]
                ends:
                    - Voltage < VAR_VMIN
                    - Capacity > VAR_DOD_CAPACITY_LIMIT
                set_variable:
                    - name: VAR_CURRENT_CAPACITY
                      eval: abs(last(Capacity))
            - Control:
                set_variable:
                    - name: VAR_CAPACITY_RATIO
                      eval: VAR_CURRENT_CAPACITY / VAR_NOMINAL_CAPACITY
            - Rest:
                duration: input["Post discharge rest time [s]"]
                ends:
                    - type: Variable
                      expression: VAR_CAPACITY_RATIO < VAR_END_CAPACITY_RATIO
                      goto: End Block
    - End Block:
        - Rest:
            duration: 1
計算されるメトリクス:
メトリクス説明
Total cycles完了した充放電サイクル数
Initial capacity [A.h]最初のサイクルの放電容量の絶対値
Final capacity [A.h]最後のサイクルの放電容量の絶対値
Capacity retention [%]最終容量と初期容量の比率(パーセンテージ)
Total energy throughput [W.h]全サイクルにわたる放電と充電エネルギーの合計
Total charge throughput [A.h]全サイクルにわたる放電と充電容量の合計

パラメータタイプ

標準パラメータ

ほとんどのテンプレートは以下の共通パラメータを受け付けます:
  • Temperature [°C]: 動作温度
  • Initial SOC [%]: 初期充電状態(0〜100%)
  • C-rate: 公称容量で正規化された電流(例:1C = 1時間で満容量)

電圧リファレンス

一部のパラメータはセル固有の電圧を参照できます:
  • V_MIN: セルモデルの最小安全電圧
  • V_MAX: セルモデルの最大安全電圧
これらは選択したセルモデルの値で自動的に置き換えられます。

Direction

双方向テストでは、電流の方向を設定するために ‘Charge’ または ‘Discharge’ を指定します。

実験テンプレートの使用方法

シミュレーションでの使用

  1. セルとモデルを選択
  2. 「Start from existing protocol」ドロップダウンから実験テンプレートを選択
  3. 必要に応じてパラメータを調整
  4. シミュレーションを実行

スタディの作成

スタディ内で異なるパラメータの複数の実験を実行して、以下を行えます:
  • 異なる温度での性能を比較
  • 異なるC-rateを評価
  • SOC 範囲全体の挙動をマッピング

次のステップ