メインコンテンツへスキップ
ionworks-api Python パッケージは、モデルパラメータ化モデルをプログラムから管理するためのサブクライアントを提供します。インストールと認証についてはPython API クライアントページを参照してください。

モデル

client.model を使用してモデルの作成、一覧、更新、削除を行います。

モデルの一覧

サポートされるフィルター: namename_exactcreated_by_emailcreated_aftercreated_beforeupdated_afterupdated_beforeorder_byorder

モデルの取得

config フィールド(例: {"type": "SPMe"})は get レスポンスに含まれます。create のレスポンスでは None になる場合があるため、必要な場合は get で再取得してください。

モデルの作成

configtype は PyBaMM のモデルクラス名です(SPMSPMeDFN)。
カスタム変数が必要な場合のみモデルを作成します。標準的なモデルであれば、パラメータ化モデルを作成する際に組み込みのシステムモデルを名前で参照できます(例: "SPMe (Full Cell)")。モデルの作成は不要です。モデル を参照してください。

モデルの更新

カスタム変数の追加

モデルの削除

Ionworks モデルを PyBaMM モデルとしてダウンロード

client.model.download() を使うと、Ionworks モデル (ECMLumpedSPMRLumpedSPMeR、MSMR モデル、GITTModel など) をすぐに使える PyBaMM モデルとして取得できます。サーバー側でライセンス付き ionworkspipeline パッケージからモデルを構築し、シリアライズされた形で返すため、ローカルでは pybamm のみインストールされていれば実行可能です(ionworkspipeline の ライセンスは不要です)。
モデルコンストラクタのオプションは options= で指定でき、path= で シリアライズ後の JSON をディスクに保存して後で再読み込みしたり、 カスタムモデルとして再アップロードしたりできます:
利用可能なモデル名は client.pybamm_models() が返す "ionworks_models" 配下のエントリと一致します。標準の PyBaMM モデル (SPMSPMeDFN など)はこのエンドポイントでは提供されません — 直接 pybamm でインスタンス化してください。
シリアライズはモデルの数学的構造(rhs、代数方程式、変数、イベント、 初期条件)を保持しますが、set_initial_state などの Python ヘルパー メソッドや classmethod は保持しません。path を指定した場合、ファイル内に Infinity/NaN トークンが含まれる ことがあります(PyBaMM は無限大の境界やイベントしきい値を使用するため)。 Python の json および Serialise.load_custom_model はこれを問題なく 読み込めますが、厳格なパーサ(JSON.parsejq など)は拒否します。
シリアライズ済みドキュメントだけが必要な場合(保存・再アップロード・ 中身の検査など)には、client.model.serialize() を使うと PyBaMM を 経由せずに dict を取得できます:

ジオメトリとメッシュは保持されます

ダウンロードされたモデルは、元の Ionworks モデルが構築されたときの geometryvar_ptsspatial_methodssubmesh_types を シリアライズした形で保持しています。これをカスタムモデルとして 再アップロードした場合 — あるいは parse_model を経由するパイプラインに 渡した場合 — これらの値はモデルの default_geometrydefault_var_ptsdefault_spatial_methodsdefault_submesh_types として復元されるため、 下流の pybamm.Simulation が空のデフォルトにフォールバックすることなく 正しいメッシュで離散化を行います。ジオメトリを手動で再構築する必要は ありません。

パラメータ化モデル

client.parameterized_model を使用してパラメータ化モデルの作成、一覧、更新を行います。パラメータ化モデルはセル仕様にスコープされます。

パラメータ化モデルの一覧

パラメータ化モデルは、単一のセル仕様にスコープして一覧表示することも、プロジェクト内のすべてのセル仕様にまたがって一覧表示することもできます。
プロジェクト内の任意のセル仕様に紐づくすべてのパラメータ化モデルを一覧表示するには、list_by_project を使用します。project_id を省略した場合、クライアントに設定された project_id がデフォルトとして使用されます(API クライアントを参照)。
list_by_project は最大 1000 件までの limit 値を受け付けるため、UI セレクターの初期化やモデルの一括処理時に、プロジェクト内のすべてのモデルを 1 回のリクエストで読み込むことができます。

パラメータ化モデルの取得

パラメータ化モデルの作成

パラメータ化モデルの作成または取得

セットアップスクリプトを安全に再実行可能にするには、create_or_get を使用します。同じセル仕様に対して同じ名前のパラメータ化モデルが既に存在する場合、409 Conflict エラーを発生させる代わりに既存のものを返します。
これは、client.cell_specclient.cell_instanceclient.cell_measurement で既に利用可能な create_or_get の動作を踏襲しています。セルデータに対する同じパターンについては、べき等なアップロード を参照してください。

パラメータ化モデルの更新

パラメータ値の取得

すべてのパラメータ値を辞書として取得します。データフィッティングや最適化ワークフローのベースラインパラメータとして便利です。

変数名の取得

パラメータ化モデルから利用可能なスカラー変数名を一覧表示します。
どのリソースの ID も、Ionworks Studio Web アプリから確認できます。リソースの詳細ページに移動すると、URL に ID が表示されます。

ECM パラメータ化

client.ecm を使用して、サイクリングデータに等価回路モデル (R0 + N 個の RC ペア、および任意の OCV) をフィットし、その結果をパラメータ化モデルとして永続化します。認証済みのフィットはバックグラウンドジョブとして実行されます — fit_from_measurementsfit_from_file はすぐに EcmFitJob ハンドルを返し、wait_for_completion がワーカーの完了までブロックします (通常 10–60 秒)。 ocv_soc_curve を使った容量同時フィット、セグメントごとの SOC シード、ノット解像度のチューニングを含む完全なガイドは ECM パラメータ化を参照してください。

保存された測定からフィットする

ローカルファイルからフィットする

fit_from_file は CSV、parquet、ionworksdata が検出できるすべてのサイクラー形式を受け付けます。フィット前にファイルをプレビューするには client.ecm.detect_and_read(file) を使用します。

フィット結果をパラメータ化モデルとして保存

返された parameterized_model_idclient.simulation.protocol(...)parameterized_model として使用できます。

認証なしで組み込みの例をフィットする

デモエンドポイントはレート制限付き (60/分) で同期です。RC ペアパラメータは、組織で ECM 結果アクセスが有効になっている認証済み呼び出し元にのみ含まれます。