Skip to main content
より厳格な測定データ検証、より広範な UCP-to-cycler 変換、Wasserstein コスト関数

より強力な測定データの検証と処理

新しい厳格モードチェック capacity_energy_from_current_power は、報告された Discharge/Charge capacity [A.h] および …energy [W.h] の各列を、Current [A]Power [W] のステップごとの台形積分と比較し、行単位の不一致(デフォルト許容 誤差 10%)を検出する。これにより、後で打ち消し合うようなステップ途中の一時的な 誤差も見逃さない。報告された充放電列が入れ替わっている場合(ハーフセルのエクス ポートでよく見られる)には、fix_swapped_charge_discharge_columns がラベルを検出 して修正する。電流符号規約のチェックは、各ステップの投票を行数ではなく実際に通過 した電荷(∫|I| dt)で重み付けするようになった。これにより、ほぼゼロ電流の長い電圧 ホールドが本来の放電パルスを上回って誤った CURRENT_SIGN_REVERSED を発生させる ことがなくなった。小電流のコインセルおよびハーフセルのデータがエンドツーエンドで処理できるように なった。レストステップ検出はトレースのピーク電流に応じてしきい値をスケールし (サブ mA の電流がすべてレストとして分類されることがなくなった)、自動反転リトライ は再計算の前に古い容量・エネルギー列を破棄し、呼び出し側が指定した Step count ラベルが符号補正後も保持される。新しい汎用 parquet リーダーは CSV リーダーと同じ エイリアスベースの列検出を使用し、folder: データ参照は time_series.parquet / steps.parquet も受け付けるようになった(両方が存在する場合は CSV より優先される)。

より広範で検証付きの UCP-to-cycler 変換

UCP-to-Arbin および UCP-to-Maccor の各コンバーターは、より多くの終了条件とステップ タイプ(可変 / ループ / 複合終了、温度終了、Maccor の一時停止ステップ)を扱える ようになり、再パースに失敗するファイルを出力する代わりに、ターゲットの cycler が 本質的に表現できない機能に対して明確なエラーを事前に発生させるようになった。

Wasserstein 距離コスト関数

新しい Wasserstein(earth mover’s distance)コスト関数がデータフィッティングの オプションとして追加され、モデル出力とデータを点ごとではなく分布として比較する。
改善
  • プロトコルリストの読み込みが劇的に高速化した。実験テンプレートのリスト エンドポイントは、重い JSONB 列をデフォルトで省略するようになり(22 テンプレートで 約 7.5 KB 対 7.7 MB)、呼び出し側は ?include= 経由で protocol_configparameters_schema などのフィールドをオプトインできる。
  • 失敗したパイプラインをパイプライン詳細ページから再送信できるようになった。同 ページには、失敗した各要素へのディープリンクを持つエラーバナーが表示され、個々の 要素にはインラインのエラーアラートが表示される。
  • 材料物性データセットのプロットに、単位付きの常時表示の縦型凡例が付き、プロットの 右側に配置されるようになった。
修正
  • プロジェクトデータページで測定値を ID でフィルタリングするとリストが絞り込まれる ようになった。以前は id クエリパラメータが黙って破棄され、すべての測定値が返って いた。
  • 材料データセットのアップロードで、CSV に名前のない先頭列があっても列インデックスが ずれなくなり、名前のない列を黙ってスキップする代わりに、すべての列に名前があること を要求するようになった(明確なエラー付き)。
  • プロジェクトメンバーシップ管理、アクティブな組織の切り替え、パラメータ化モデルの 削除が、データベースへの直接書き込みではなくバックエンド API を経由するようになり、 行レベルセキュリティの下で一貫した動作をするようになった。
改善
  • client.auth_check()client.whoami() は、設定された API キーがどのユーザーと 組織に解決されるかを検証するようになり、新しい GET /auth/health エンドポイントに 支えられている。誤った組織(403)エラーのデバッグや、どのキーが有効かの確認に役立つ。
改善
  • SubRout ステップを含む Maccor プロトコルが UCP YAML のラウンドトリップを生き残る ようになった。解決されたサブルーチンステップは名前空間化されて YAML に書き戻され、 サブルーチン内の goto ターゲットはシミュレーション時に解決される。これにより、 パース後シミュレーションのフローで発生していた Subroutine '<name>' not found エラーが修正された。
改善
  • 新しい validate-data スキルが、測定データの検証と列修正のワークフローをエージェ ントに案内する。
  • Codex プラグインマニフェストが追加され、Ionworks スキルパッケージが Claude Code と 並んで Codex にもインストールされるようになった。
Studio での材料プロパティ、設計最適化のためのネイティブ UCP シミュレーション、SimplePipeline ワークフロー、グローバルな /search エンドポイント

Studio での材料プロパティ

プロジェクトサイドバーに新しい Materials セクションが追加され、プロジェクト 内で材料を作成し、それぞれに測定済みのプロパティデータセット(CSV / parquet)を 添付できるようになった。アップロード、プロット、編集、再処理、置換、削除がすべて 配線済みである。 Python SDK は読み取り専用の client.material および client.material_property_dataset サブクライアントを獲得し、listgetget_unitsget_datapolars.DataFrame を返す)を備える。REST サーフェスは 署名付き URL のダウンロード、オンザフライのダウンサンプリング、x 範囲フィルタを サポートする。新しいドキュメントページが UI ワークフローと REST エンドポイントを 解説している。

設計最適化のためのネイティブ UCP シミュレーション

DesignObjectivebackend="ucp" オプションが追加され、UCP プロトコルを pybamm.Experiment に変換する代わりに、最適化ループ内でネイティブに実行する ようになった。これにより、変換で失われていた UCP の機能(動的ループ、条件分岐、 goto、set_variable、サブルーチン)が保持され、反復ごとのオーバーヘッドも回避 される。このバックエンドはまだ周波数領域のステップをサポートしていないため、 設計最適化では EIS ステップが前段で拒否されるようになった(フロントエンドの フォームとバックエンドの双方で明確なエラーを表示する)。EIS には引き続き スタンドアロンシミュレーションが経路となる。

SimplePipeline ワークフロー

高コストな要素を最大 1 つ(1 つのデータフィット、または 1 つの検証)だけ含む 設定のための、新しい軽量パイプラインバリアント。設定全体が子ジョブにファンアウト する代わりに、単一のジョブとしてエンドツーエンドで実行される。 /simple_pipelines 配下の CRUD エンドポイント(POST は 202 を返す。LIST は フィルタをサポートする。名前 / 説明には PATCH。キャンセルと削除)に加え、 creategetlistupdatecanceldeletewait_for_completion を備えた client.simple_pipeline SDK サブクライアントを提供する。

グローバル検索 API

新しい GET /search エンドポイントが、認証された組織内のプロジェクト、スタディ、 シミュレーション、モデル、パラメータ化モデル、最適化、最適化テンプレート、実験 テンプレート、パイプライン、セル仕様、材料にわたってプレフィックス全文検索 + 部分文字列検索を実行する。サーバーサイドの全文検索に支えられ、高速に応答する。 Studio にはまだフロントエンドの検索バーはない。新しいドキュメントページがこれを 明示しているので、探し回らずに済む。
改善
  • 最適化テーブル: 既存の一括キャンセルアクションの隣に一括 Delete が復活した。 権限でゲートされ、正しく複数形化する確認ダイアログと行ごとのエラートーストを 備える。
  • プロトコルシミュレータ: 「Configure Plot」の隣の Download CSV ボタンが、 ズームにかかわらず、各時点に合わせて展開されたステップレベルのカラム (サイクル数、ステップ番号、プロトコル変数)を含む全時系列をエクスポートする。
  • 時系列測定プロット: + ボタンで同じ単位を共有する複数の変数をいずれかの Y 軸にオーバーレイできる。単位でフィルタされたドロップダウン、系列ごとに 異なるカラーサイクル、削除用の個別の × を備え、異なる単位の主変数を選択すると 互換性のない追加分がクリアされる。
  • ECM モデルが Anode potential [V]Cathode potential [V] とそれらの開回路 対応物を公開するようになり、BioLogic の三電極 EWE / ECE 制御限界をシミュレー ションから再現できるようになった。新しい LFP/Li metal ハーフセル化学が パラメータライブラリとセル構成 UI に追加された。
  • ホバーツールチップがプロットライブラリ全体で小数点以下 3 桁に標準化された。
  • EIS の Nyquist プロットが、接続線なしのマーカーのみの散布図として描画される ようになり、マーカーがやや大きくなった。
  • セル仕様のカスケード削除が、より高速かつ堅牢になり、1 つの一時的な障害が他の クリーンアップを中断させないようになった。
  • ファイルダウンロードが、一時的なエラーをバックオフ付きで自動的にリトライする ようになり、断続的なジョブ失敗を修正する。
  • ジョブのメタデータを取得する新しいルートが、レガシーのエンドポイントでは 到達できなかった大きな検証ペイロード(validation_resultsvalidation_plot_config)への経路を Python SDK に提供する。
  • シミュレーションの送信が、より一貫したパターンに統一された。冗長だった旧 エンドポイント群を削除した。
修正
  • シミュレーションの重複排除ロジックを修正し、「シミュレーションは既に存在する」 経路が実際にトリガーされ、重複行の蓄積が止まるようになった。
  • 測定値の詳細: Cycle numberCycle count のカラム名変更後、Cycles タブが 再び表示され、サイクルフィルタスライダーの範囲も正しくなった。
  • properties または file タイプの測定値が、空の時系列タブを描画する代わりに、 詳細パネルまたは SDK を指し示す情報アラートを表示するようになった。
改善
  • ionworks-schema が、パイプライン全体にわたるパーサー入力の唯一の検証境界に なった。SDK は ionworks-schema に直接依存するようになった。
  • すべてのソルバーラッパーにわたってユーザー向けの最適化キーワード引数を標準化 した。max_iterations が旧来の複数の名前を置き換え、population_size が 差分進化の旧パラメータ名を置き換える。旧名は DeprecationWarning を発しつつ 引き続き動作する。DataFit.max_iterationsFunctionTimeout.max_iterations も同じ名前に揃えられた。
  • プロトコルシミュレーション中の一時的なソルバー障害が、差分進化中に最適化を 停止させる代わりに、有限ペナルティの経路に落ちるようになった。プロトコルおよび 構成のエラーは引き続き明確に区別され、静的なバグは依然として表面化する。
修正
  • pybamm.Experimentperiodtemperature が実験のシリアライズを介して ラウンドトリップするようになった(修正は pybamm 26.4.3 で出荷済み)。実験の スキーマは新しいフィールドセット(ステップごとの periodtemperaturetagsdescriptiondirectionstart_timeskip_ok、実験レベルの periodtemperaturetermination)を受け付ける。duration"287 seconds" のような人間が読める文字列も受け付ける。
  • SimplePipeline ジョブがプロセス内でデータフィットを実行するようになったため、 分散評価が実際に発火する。接続が失敗した場合はプロセス内の経路にフォール バックする。レガシーの要素タイプラベルは、入口で正規化されるようになった。
改善
  • 新しい SimplePipeline ワークフローのための client.simple_pipeline サブクライアント。
  • client.protocol.convert(protocol, target) が、primary_bytestext()save(dir) ヘルパーを持つ ConvertResult を返す。UCP YAML プロトコルを ネイティブのベンダーファイル(Maccor、Arbin、Neware、BioLogic BT-Test、または Novonix)にエクスポートする。Maccor は主ファイルと並んでドライブサイクルの MWF アセットも返す。
  • client.job.get_metadata(job_id) が、ジョブのメタデータのパース済みの内容を 返し、レガシーの結果エンドポイントでは到達できなかった大きな検証ペイロードへの アクセスを SDK に提供する。
改善
  • BioLogic .mps パーサー: User Profile(ドライブサイクル)ステップが、埋め込まれた Urban Profile Table から、またはそれがない場合は付随する .txt ファイルから 抽出されるようになった。UCP/PyBaMM では正が放電を表すように、取り込み時に電流の 符号が反転される。
  • Arbin パーサーが、より堅牢にループを解決するよう書き直された。同じターゲットへの 兄弟後方 goto、ループをまたぐ goto の解決、数字を含む数式ラベルを修正する。 Pause ステップは UCP の第一級補助 Pause ステップを発行する。
  • より多くの Arbin / Maccor ステップタイプを認識するようになった。各種ステップを 対応する UCP タイプに正しくマッピングし、先頭が負の電流式を Discharge に 分類する。
  • 長いプロトコルでのステップごとのオーバーヘッドが大幅に削減された。不要な ルックアップやトレース評価がスキップされるケースが増え、処理が高速化した。
  • 真のソルバー障害に対して専用の例外が送出されるようになった。プロトコルおよび 構成のエラーは元の例外タイプを維持し、ステップのコンテキストを得るだけである。
修正
  • ~28 行の前文に加えて Type\tMode\tValue\t… ヘッダー行を含む実際の Maccor .MWF エクスポートがパースされるようになった。パーサーがヘッダーセンチネルを スキャンし、それを含めてそこまでをスキップしてから、残りを解析する。データ行 のみを含むファイルは引き続き変更なくパースされる。
改善
  • 新しい run-simple-pipelines スキルが、SimplePipeline クライアントを エンドツーエンドで解説する。
  • process-data: protocol は電気化学的な結果に影響する試験条件(温度、C レート、 SoC、DoD、圧力)を保持し、一方 test_setup は結果に影響しない物理的な手配 (サイクラーモデル、オペレーター、ラボ、チャンネル)を保持することを明確化した。 test_setup は測定値にのみ存在し、セルインスタンスには存在しない。
  • process-data: ステップカラムを伴う set_step_count が、曖昧さのない デフォルトになった。これにより、GITT やサブステップ付き RPT による減少 / 繰り返しのステップ ID も、単調なものと同じように機能する。 set_cumulative_step_number(method="current sign") は、ステップカラムが まったく存在しない場合のフォールバックとして位置づけ直された。ステップ遷移で 重複する Time [s] 行を発行するサイクラーへの注意書きを追加した。
  • process-data: 必須のヘッダー監査ステップが 8 つのルール(すべてのファイルを 走査、コホート × カラムセットでグループ化、Standard / Auxiliary / Drop に分類、 リーダー出力を差分、補助カラムを保持、複数熱電対チャンネルを分離したまま維持、 コホートごとに単位 / 符号を確認、温度欠落を所見として表面化)と必須の確認 レポート形式を成文化した。これにより、標準化された parquet が書き込まれる前に、 サイクラーファミリー間でのカラムの黙った削除を捕捉できる。
カスタム PyBaMM モデルと Li-S 対応、ECM 容量の共最適化、Python SDK のデフォルトプロジェクト、構造化された検証イシュー

リチウム硫黄化学を持つカスタム PyBaMM モデル

/models/upload-custom エンドポイントが chemistry フィールドを受け付ける ようになり(デフォルトは lithium_ion)、Li-S モデルは実行時に化学を考慮した 初期状態のシムと、より高精度な数値許容誤差を得る。manage-projects SDK スキルは アップロードワークフロー全体を文書化している。

ECM フィット: 容量の共最適化とセグメントごとの初期 SoC

プロジェクトスコープの ECM フィットに対する、相互に関連するいくつかの改善。 ocv_soc_curve(およびオプションの bounds_capacity)を与えると、Q を単一の シードに固定する代わりに、セル容量 Q を他のパラメータと共に最適化できる。 25 °C のレートテストトレースでは、フィットされた容量がすべての設定にわたって クーロンカウンティングの真値の 0.9 % 以内に収まるようになった。initial_soc が リスト(測定値ごとに 1 エントリ)を受け付けるようになり、複数測定のフィットが ギャップをまたいでクーロンを積分する代わりに、各セグメント境界で SoC をリセット する。省略した場合、新しい自動シードルーチンが各セグメントの soc0 を精緻化 する。num_knotsnum_knots_r0knot_scheduleclamp_max_ratio/fit-from-measurements/fit-from-file の第一級パラメータになった。境界の デフォルトも緩められ、レートテストの順方向シミュレーションでの計算失敗を防ぐ。

Python SDK のデフォルトプロジェクト

Ionworks クライアントが、構築時に project_id= 引数または新しい IONWORKS_PROJECT_ID 環境変数からデフォルトの project_id を解決するように なり、呼び出し側が毎回 project_id を引き回す必要がなくなった。従来の PROJECT_ID 環境変数も引き続き動作するが、DeprecationWarning を発する。 すべての client.study.* メソッドは(リソース ID の後に)オプションのキーワード として project_id を取り、デフォルトはクライアントの値となる。パイプラインと 最適化はこれをペイロードに自動注入する。

構造化された測定検証イシュー

MeasurementValidationError.errorslist[ValidationIssue] になった。これは 安定した IssueCode(StrEnum)、severity、人間が読める message、JSON ネイティブの payload を持つ凍結データクラスである。下流のコードは、メッセージ 文字列を grep する代わりに e.has_code(IssueCode.CURRENT_SIGN_REVERSED) で チェックの同一性によって分岐できる。ionworksdata の自動修正パスは新しいコードを キーにするようになった。IssueCodeValidationIssue はトップレベルの ionworks パッケージから再エクスポートされる。
改善
  • シミュレーションボードの CRUD がより堅牢なバックエンド API に移行され、 一部の環境で発生していた Visualization タブの空白表示が修正された。
  • 最適化の Performance Detail および Performance Summary タブが、埋もれていた 検証イシューをタブの上のトップレベルのアラートとして表面化するようになった。 まれに発生する「空だが有効」なケースには、タブ内に情報「データなし」アラート を表示する。
  • Visualization タブの防御的 UX: ボードが利用できない場合でも Data/Visualization トグルは表示され続け、ユーザーを空白ページに閉じ込める代わりに Data への 切り替えを促す警告アラートを表示する。
修正
  • 単一シミュレーション結果ページが、新規ナビゲーションでデータ読み込み前に 「Simulation not found」を一瞬表示しなくなった。
改善
  • ionworks-schema が、パイプラインに既にあった ConstraintPenaltyCMAESOptionsPSOOptionsDEOptionsLatinHypercubeUniform の スキーマクラスを獲得し、加えて目的関数、データフィット、パラメータ推定器、 正則化器、分布サンプラーにわたる約 40 個のクラスにドキュメントの充実が 施された。新しいドキュメントの骨格がサブモジュールごとにリファレンスページ を自動生成し、各スキーマクラスを対応するパイプラインのドキュメントページに クロスリンクする。
修正
  • 不正なパラメータの組み合わせで発生していたクラッシュが、データフィット全体を クラッシュさせる代わりに、既存のフィット失敗ペナルティパスにルーティングされる ようになった。クラウドフィットは生き続け、問題のあるサンプルには巨大なコストが 付くだけになる。
改善
  • 新しい client.urls.measurement(measurement_id, project_id) ヘルパーが、 測定値のウェブアプリディープリンクを返すようになり、呼び出し側が URL を手作りする必要がなくなった。
改善
  • manage-projects/models/upload-custom のマルチパートワークフローと、 Model / ParameterizedModel の区別を文書化するようになった。
  • upload-data およびその他の検証対応スキルを、エラー文字列の部分一致の 代わりに新しい IssueCode / ValidationIssue API と e.has_code(...) パターンを参照するよう更新した。
最適化実験の完全なエディター、Arbin リーダー、Maccor 対応範囲、UCP 入力スキーマ

最適化実験の完全なエディター

最適化実験が、アプリの他の部分と同じプロトコルエディターを使うようになった。 素朴なテキストフィールドが、YAML 構文ハイライト、ダークモード対応、フロントエンド の事前検証、テンプレート選択とステップ調整のための完全なプロトコルビルダー ダイアログを備えたエディターに置き換えられた。 新しいプロトコルは “Constant Current Charge” テンプレートをあらかじめ読み込む ため、ユーザーは動作する出発点を得られる。

設計最適化の反復的メトリクス

設計最適化が、サイクル単位・ステップ単位のメトリクスをラップした指標を エンドツーエンドでサポートするようになった。最適化フォームでは、解析済みの 実験から駆動される境界付き入力フィールドで特定のサイクルやステップのメトリクスを ターゲットにでき、パイプライン変数を PyBaMM 変数と混在させられ、ラップされた メトリクスを保存/読み込みでラウンドトリップできる。基盤となる UCP パーサーも、 繰り返しブロックがフラットに展開されてしまう長年のバグを修正した。これは サイクル単位メトリクスのサイクルインデックスを壊していた。2 つの新しい テンプレートが同梱される。簡略化された Charge 最適化と、複合システムモデルである。

Arbin サイクラー対応

ionworksdata がネイティブの Arbin エクスポート(CSV、XLSX、およびバイナリの .res 形式)を読み取るようになった。.res リーダーは基盤のデータベースから データを抽出し、インターリーブされたマルチセッション記録に対応するため行を タイムスタンプでソートし、絶対開始時刻を正しく読み取る。自動検出がファイル ヘッダーから適切なリーダーを選択し、arbin res も明示的なリーダー名として 公開される。

Maccor プロトコル対応範囲

Maccor のパーサーとシミュレーターが、従来は解析時やシミュレーション中に失敗して いた、いくつかの実世界のプロトコル機能を扱えるようになった。これには制限ごとの 安全 goto、Chg/Dis Func CCCV ステップタイプ、堅牢な変数設定処理が含まれる。 Maccor の ionworksdata リーダーも、一部のファームウェアバージョンで使われる コンパクトな短縮形のカラムヘッダーセットへの対応を獲得した。これは従来 クラッシュし、容量/エネルギーのカラムを黙って削除していた。

機械検証可能な UCP 入力スキーマ

プロトコル用のディスカバリーエンドポイントが、パーサー自身の定義から生成された JSON Schema を公開するようになった。これは解析後のメモリ上の形ではなく、実際の YAML 記述形式({Charge: {...}} のような単一キーの辞書)に一致する。パリティ テストが 17 個の正常フィクスチャと 6 個の異常フィクスチャをスキーマとパーサーの 両方を通してラウンドトリップさせるため、両者がドリフトすることはない。レガシー な形式をプロトコル検証エンドポイントに送信すると、正規の YAML 例を指し示す 有用なエラーが返るようになり、discover-apirun-simulations スキルは ローカルの事前検証を示している。
改善
  • リソース横断のアクセス制御が簡素化され、組織配下のリソースへのアクセス チェックが一貫して速く、正確になった。
  • 新しいセル仕様がデフォルト容量を事前入力しなくなり、ユーザーは最初から実際の セル容量を入力するようになった。
修正
  • ストレージ権限が組織レベルで適用されるようになり、同じ組織のメンバーが互いの 測定ファイルを期待通り読み取れるようになった。
  • created_by_email が、セル仕様・セルインスタンス・セル測定の各レスポンスで、 getlist の両エンドポイントにわたって一貫して設定されるようになった。
  • シミュレーション使用量が組織レベルで集計されるようになり(バックエンドが既に 適用している組織レベルの使用量制限に合致する)、専用の GET /organizations/current/usage エンドポイントから取得されるようになった。
改善
  • コスト/目的関数レイヤーを、焦点を絞ったモジュール(アキュムレーター、誤差 メトリクス、ノーマライザー、NaN ポリシー)に再構成し、スカラー化、正規化の デフォルト、部分解の扱いに関するいくつかの正しさの修正を行った。
  • 関数値パラメータが目的関数およびデータフィットの設定内で正しくシリアライズ されるようになり、関数値パラメータを持つ設定が JSON を通してラウンドトリップ するようになった。
修正
  • ハーフセル ECM が、プロットとメトリクス用にアノードおよびカソードの電位変数 (Anode potential [V]Cathode potential [V])を公開するようになった。
  • get_cycle_metrics が出力で Cycle count カラム名を Cycle number に 改名せずそのまま維持するようになり、データパイプライン全体で使われている 入力規約に合致するようになった。
改善
  • validate_measurement_dataCellMeasurement.createCellMeasurement.create_or_getskip_checks パラメータを受け付けるようになり、呼び出し側は厳格モードを 全面的に無効化する代わりに、単一の厳格バリデーター(例: time_gaps)を緩める ことができる。未知のチェック名はエラーを発生させ、正規のセットは ionworks.validators.STRICT_CHECK_NAMES として公開される。 validate_strict=True が推奨デフォルトになった。
改善
  • CSV、XLSX、ネイティブの .res エクスポートをカバーする新しい Arbin リーダー (上記のハイライトを参照)。
  • Maccor リーダーが、一部のサイクラーファームウェアバージョンで使われる コンパクトな短縮形のカラムヘッダーセットを受け付けるようになった。
改善
  • Landesfeind フィットのワークスルー例を含む、新しい電解質パラメータ化ページ。
  • 最適化実験エディター、反復的メトリクス、簡略化された Charge テンプレート、 複合システムモデルが文書化された。
  • カスタム変数リファレンスが、ハーフセル ECM におけるアノード/カソード電位の 公開を文書化するようになった(英語と日本語)。
  • Maccor のネイティブ CCCV ステップタイプが文書化された(英語と日本語)。
  • Arbin がサポート対象サイクラーの表に掲載された。
  • データフィッティングガイドの説明の拡充を含め、ドキュメントサイト全体に SEO メタデータ(キーワード、OG タグ、引き締めた説明)を追加した。
改善
  • ミラーリングされる各パッケージ(ionworksdataionworks-schemaionworks-apiiwutilionworkspipelineskills)が、Keep-a-Changelog 形式のパッケージごとの CHANGELOG.md を同梱するようになった。これはリリース ワークフローの一部として作成・検証される。
  • discover-apirun-simulations スキルを、新しい UCP 入力 JSON Schema を 参照しローカルの事前検証を示すよう更新した。
  • upload-data スキルを、validate_strict=True を推奨し新しい skip_checks パラメータを文書化するよう更新した。
プロジェクトスコープの ECM フィッティング、PyBaMM v26.4.0 対応、SDK スキルプラグイン、厳格なアップロードバリデーター

プロジェクトスコープの ECM フィッティング

等価回路モデルのフィッティングがプロジェクト内で直接利用できるようになった。プロジェクトのいずれかのセルにすでに紐づいている測定値を選ぶ(または新しい CSV をアップロードする)と、トレースをプレビューし、フィットを実行し、その結果をワンクリックで新しいモデルとしてプロジェクトに保存できる。新しいフローでは多段ステッパーが積み重ねカードに置き換えられ、モデル対データのプロット、エラープロット、フィッティング進捗インジケーター、OCV トグルヘルパーが追加され、フィット完了時に結果へ自動スクロールする。スタンドアロンの ECM デモは未認証ユーザー向けに引き続き利用できる。

PyBaMM v26.4.0 対応

パイプラインとプロトコルシミュレーターを PyBaMM v26.4.0 向けに更新した。本リリースでは、従来のゼロ電流ステップに代わる専用の Rest ステップクラスが導入され、MSMR の電極容量パラメータが短いキー(例: Q_n_1Q_p_1)から記述的な文字列(例: “Negative electrode host site occupancy capacity (1) [A.h]“)に改名された。既存の実験と MSMR パラメータセットは、新リリースでも引き続き正しく解析される。

Claude Code プラグインとしての SDK スキル

Ionworks Python SDK に、インストール可能な Claude Code スキルのセットが同梱されるようになった。対象は api-discovery、cell-data、data-upload、simulations、pipelines、projects-and-studies である。各スキルは関連するサブクライアント、メソッドシグネチャ、create-or-get パターンを文書化しており、AI アシスタントが現在の API サーフェスに対して SDK を操作できるようにする。利用にあたっては Ionworks までお問い合わせいただきたい。

Python API の厳格なアップロードバリデーター

CellMeasurementClient.createcreate_or_get が、Studio にデータを送信する前にオプションのクライアント側バリデーターを実行するようになり、処理上のバグが分かりにくいアップロード結果ではなくローカルエラーとして表面化するようになった。連続する行の間隔が 5 時間を超えるかどうかを調べる厳格な時間ギャップチェックがデフォルトで実行される。voltage_window を渡すと電圧連続性チェックが有効になり(不正な partition_by による時系列順の乱れを検出する)、rated_capacity を渡すと連続する同方向のフルステップチェックに加え、容量が定格の 5 倍を超えるステップに対するソフト警告が有効になる。
改善
  • 測定チャートのコントロールがコンパクトなヘッダーサマリーに折りたたまれるようになった。軸ごとの変数セレクターでは、統一された 2 列レイアウトで系列を動的に追加・削除できるようになった。
修正
  • 実験タイプタブが異なるスタディ間を切り替えた際に、スタディの可視化が空の状態に崩れなくなった。前のタブが存在しない場合、フィルターは All にリセットされる。
  • 古いセッションを持つユーザーが、リダイレクトで立ち往生する代わりに、OTP の認証継続ページからサインアウトして復帰できるようになった。
  • 空のセルページが正しい組織レベルの権限チェックを使うようになり、セルを作成できるユーザーに紛らわしい「プロジェクト管理者に連絡してください」というメッセージが表示されなくなった。
  • パイプライン要素の詳細ビューが Data FitValidation の設定に対して短時間に重複したフェッチを発生させなくなった。大きな設定データは直接読み込まれてキャッシュされる。
改善
  • Simulation の実行が高速化された。同じモデルを共有する繰り返し実行で、内部コンパイルがデフォルトで有効になった。
  • カスタムのメッシュや空間メソッド設定を持つシミュレーション目的関数(CycleAgeing など)が、正しくシリアライズおよび再読み込みされるようになった。
修正
  • 時間単調性の検証エラーメッセージが、隣接する正しい 2 つの値を報告するようになった(従来の off-by-one では実際の違反の直前の値が表示されていた)。
修正
  • 符号規約の検出が、低電流のパルスデータセットをすべて休止と誤分類しなくなった。休止しきい値が電流の 95 パーセンタイルを基準に相対的にスケールするようになり、小振幅データでも違反を検出できる。
Python SDK のリソースクライアント、検証の初期条件、容量計算の修正

Python SDK のリソースクライアント

Python SDK に、Studio リソースをプログラムから管理するための型付きサブクライアントが追加された。Ionworks クライアントから、プロジェクト、モデル、パラメータ化モデル、スタディ、プロトコル、最適化を直接作成・一覧取得・取得・更新・削除できるようになった。たとえば client.project.list()client.model.get(id)client.study.create(...) などである。Python API ドキュメントには各サブクライアントの使用例を解説する新しい「リソースの管理」セクションが追加され、組織の指定が URL 上で必須だったものから認証情報によって自動的に解決されるようになった。

検証の初期条件と UX の改善

検証では、シミュレーションの初期化方法を選択できるようになった。測定値からの自動検出、カスタム開始電圧、カスタム充電状態のいずれかである。Report タブの各検証行は確認ダイアログとともに個別に削除でき、同じ初期電圧を共有する 2 つの測定値が互いのドライブサイクルを上書きしてしまう重複除去のバグも修正された。検証エラープロットも、読みやすさ向上のためグリッド線とともに描画されるようになった。

多電極セルの容量計算の修正

並列接続された電極数の扱いに不整合があり、ユーザーが正しい値を設定した場合でも容量パラメータが N 倍に過大計算されていた。本修正によりすべての計算が正規化され、多電極セルが正しくパラメータ化されるようになった。
改善
  • 単一の実験タイプのシミュレーションを持つスタディは、そのタイプを自動選択するようになり、可視化ビューにすぐにアクセスできるようになった。
  • 失敗した変数評価ジョブは、無限に回転し続ける代わりに、Retry ボタン付きのエラー状態を表示するようになった。
  • スタディ一覧のページネーションを改善した。
  • ページネーション対応のパラメータ化モデル一覧エンドポイントを追加した。
修正
  • 数千の短いステップを持つ時系列測定値(例: 約 1500 ステップの HPPC パルスプロトコル)を描画する際のクラッシュを修正した。ダッシュボードでこれらの測定値を読み込めるようになった。
  • 結合されたカスタム変数が解決に失敗した際に黙って削除され、「Temperature [degC]」などの便利な変数がシミュレーション出力から失われることがあった問題を修正した。
  • モデル一覧のページサイズの上限を調整し、エラーを防いだ。
改善
  • PyBaMM を 26.3.1 に更新した。カスタムモデルの基底クラスが、実行環境にインストールされていないパッケージを参照している場合、警告とともにデフォルトのモデルにフォールバックするようになった。
  • OCP 関連の目的関数(半セルの OCP、電極バランシング)の内部処理を整理し、Validation パイプラインで正しく動作するようにした。
修正
  • 単一の目的関数のみを指定して送信したパイプラインがシリアライズに失敗する問題を修正した。
改善
  • Models・Studies・Optimizations・Projects・Protocols・ParameterizedModels の型付きサブクライアントを追加し、リソース管理における生の HTTP リクエストを置き換えた。
  • SDK エンドポイントが組織の指定を認証情報から解決するようになった。
  • シミュレーションのポーリングがエラーを握りつぶさず即座に伝播するようになり、完了状態を正しく判定する型付きレスポンスを使うようになった。
修正
  • シミュレーションジョブのポーリングが誤ったエンドポイントにアクセスしていた問題を修正した。
修正
  • ECM バリデーターの符号検出バグを修正した。対称的な電流プロファイル(充電 / 放電 / 充電で同じ正味電荷量に戻る)が、ゼロでない SOC 範囲を持つにもかかわらず誤って却下されていた。
非同期最適化、スタディ検証レポート、セルデータのフィルタリング

非同期の最適化評価

オプティマイザが、ローカルおよび分散ワークロードの両方で非同期評価をサポートするようになった。 評価はローカルの永続的なマルチプロセスワーカーで実行できるほか、分散評価用の submit/wait-next 方式にも対応した。定常状態の非同期モードは、世代の境界を待たずにすべてのワーカーを飽和状態に保ち、 新しい収束基準(忍耐カウンターと集団多様性のガードを含む)が早期停止を防止する。

スタディ検証レポート

スタディに、シミュレーション結果を実験測定と比較するための検証ワークフローが追加された。新しい Report タブは シミュレーション値と実測値のオーバーレイプロットを定量的な誤差指標(RMSE、MAE)とともに表示し、Data タブでは どの測定をどのシミュレーションと対応付けるかを管理できる。詳細はこちら →

セルデータのフィルタリングと並べ替え

すべてのセル一覧エンドポイント(仕様、インスタンス、測定)が、名前、作成者のメールアドレス、日付範囲、 並べ替え方向を含むフィルタおよび並べ替えパラメータを受け付けるようになった。Python SDK は各 list() メソッドで対応するキーワード引数を公開し、フロントエンドの測定テーブルはサーバーサイドのフィルタリングを 使用する。
改善
  • パイプラインおよびセル測定のテーブルが、サーバーサイドのソートをサポートするようになった。
  • 初回のユーザー情報リクエストが失敗した際に、自動再試行を備えたエラー画面を追加した。
  • フロントエンドから SNES オプティマイザのオプションを削除した。
修正
  • 通知ドロワーおよびジョブ進捗表示にあった、信頼できない文字列の描画に起因する XSS の脆弱性を修正した。
  • エラー処理を一貫した方式に統一した。
  • ファイル測定エンドポイントのレスポンス時間を約 10 秒から 100 ミリ秒未満へ短縮した。
改善
  • CMA-ES、XNES、Nelder-Mead 向けの専用アルゴリズムテストスイートを追加した。
  • CMA-ES および XNES で、評価された分布平均が最良サンプルを上回る場合にそれを優先するようにし、 収束の安定性を改善した。
修正
  • 不安定な決定論的設計最適化テストを修正した。
改善
  • CellSpecificationClient.list()CellInstanceClient.list()CellMeasurementClient.list() に フィルタおよび並べ替えのキーワード引数を追加した。
  • download_files(filenames=) が一覧取得のラウンドトリップをスキップするようになり、単一ファイル取得用の 新しい get_file() メソッドを追加した。
改善
  • Biologic ファイル向けに温度列の認識を追加した。
測定タイプ、パフォーマンス改善、総時間による終止、パラメータ化モデルの機能強化

非時系列データ向けの測定タイプ

セル測定が 3 つの値を持つ measurement_type フィールドをサポートするようになった。time_series (デフォルト)、チェックポイント測定などのキー・バリューのメタデータ向けの properties、そして画像・PDF・ numpy 配列などの任意のファイル向けの file である。各タイプには独自の作成および取得フローがあり、 一覧エンドポイントはタイプでフィルタリングできる。詳細はこちら →

パフォーマンス改善

パイプラインの作成が大幅に高速化した。大きなジョブ構成はデータベースへインラインで書き込むのではなく 専用のストレージへオフロードされる。バックエンド全体の応答性も向上し、同時負荷下でのスループットが改善した。 モデル、パラメータ化モデル、スタディ、最適化がサーバーサイドのページネーションとフィルタリングを使用する ようになり、コレクション全体をメモリに読み込む必要がなくなった。

総時間による終止条件

プロトコルステップが、組み込みの終止条件として total_time を使用できるようになった。これにより、 ステップ時間だけでなく、経過した実験の総時間が指定の継続時間に達した時点でステップを終了できる。詳細はこちら →

パラメータ化モデルの改善

パラメータ化モデルの詳細ビューが、従来の複数ページ構成に代わり、タブ付きの単一ページに統合された。 モデルは全構成を含む zip アーカイブとしてダウンロードできるようになり、温度依存のスタディ向けに設計最適化の 目的関数で初期温度が解析されるようになった。詳細はこちら →
改善
  • セル仕様の一覧が、カードではなくソート可能なデータテーブルとして表示されるようになった。
  • すべてのプロトコルステップがスキップされてシミュレーションがデータを生成しない場合に、UI に警告を表示 するようにした。
  • 変数評価の UX を改善した。
  • すべての更新エンドポイントが、部分更新ボディを伴う一貫したセマンティクスへ移行した。
  • すべての重複リソースエラーを、構造化されたエラー詳細を伴う HTTP 409 を返すよう標準化した。
  • よりシンプルで高速なファイルアクセスのために、測定ファイルのダウンロード方式を改善した。
  • より一貫した API 表面のために、セル測定の複合レスポンス形状をフラット化した。
  • 設計最適化がデフォルトで差分進化アルゴリズムを使用するようになった。
修正
  • 最適化の削除が誤った API エンドポイントへアクセスする問題を修正した。
  • 最適化のクローンが差し戻されたリクエストボディを送信する問題を修正した。
  • 最適化一覧ページが冗長な API リクエストを送信する問題を修正した。
改善
  • 温度依存の最適化スタディ向けに、設計最適化の目的関数で初期温度を解析するようにした。
修正
  • フィット済みパラメータのエクスポートに内部的な補助エントリが漏れる問題を修正した。
  • 変換済みパラメータを確認する際の検証処理を修正した。
  • 初期 SOC が EIS 周波数領域シミュレーションに渡されない問題を修正した。
改善
  • プロトコル変換において、入力パラメータを含む算術式のサポートを追加した (例:1000 / input["Total cells"] が正しいシンボリック式を生成するようになった)。
修正
  • EIS 周波数領域シミュレーションで初期 SOC が適用されない問題を修正した。
改善
  • 測定ファイルのアクセスにおいて、ダウンロード方式を改善した。
  • よりシンプルなデータアクセスのために、セル測定のレスポンス形状をフラット化した。
  • 非時系列データ向けに、測定モデルへ measurement_type フィールドを追加した。
  • すべての更新メソッドのセマンティクスを一貫させた。
  • サーバーサイドのページネーションにより、多数のシミュレーションを持つスタディおよびパラメータ化モデルの 読み込みを改善した。
改善
  • より高速でポータブルなキャッシュのために、ローカルキャッシュの形式を改善した。
  • Neware CSV ファイル向けに Latin-1 エンコーディングのサポートを追加した。
ECM パラメータ化、抵抗スケーリング、カスタム変数、BaSyTec リーダー

ECM パラメータ化

新しい ECM パラメータ化ページでは、サイクリングデータをアップロードし、ライブの回路図とともに 0〜5 個の RC ペアを 選択して、OCV や R0 を含むフィット済みパラメータを表示できる。結果は CSV としてダウンロードできる。詳細はこちら →

プロトコルシミュレーションでの抵抗の調整

プロトコルシミュレータでのサイクラープロトコルシミュレーションが、より高速かつ堅牢になった。等価回路 モデル(ECM)パラメータセットはサポートされる 6 種類すべての化学組成で利用可能であり、UI の新しい 抵抗スケーリングパラメータにより、シミュレーション実行前にセル全体の抵抗を調整できる。詳細はこちら →

モデルのカスタム変数

電極電位や異なる単位での温度といったカスタム派生量を、モデル構成に保存される数式としてモデル上で 定義できるようになった。これらのカスタム変数はシミュレーション時に評価されて結果データに含まれるため、 設計スイープ全体でアプリケーション固有の指標を容易に追跡できる。詳細はこちら →

BaSyTec バッテリーサイクラーリーダー

データ処理ライブラリが BaSyTec の CSV エクスポート(CTS、X50 シリーズ)をサポートするようになった。 リーダーはヘッダーのシグネチャによって BaSyTec ファイルを自動検出し、HH:MM:SS.sss 形式のタイムスタンプ (24 時間を超える値を含む)を解析し、正しい電流符号の規約を適用し、付随する _meta.txt ファイルから 開始時刻を抽出する。詳細はこちら →
改善
  • ダッシュボードヘッダーにテーマ切り替えを備えたダークモードを追加した。
  • 最適化テンプレートを組織スコープからプロジェクトスコープへ移し、プロジェクトレベルの管理ページを設けた。
  • 最適化の作成時に最適化名を任意とした。
  • セル仕様・インスタンス・測定の一覧エンドポイントにページネーションを追加した。
  • ドライブサイクルシミュレーションの結果プロットに OCV トレースを追加した。
  • シミュレーション、測定取り込み、フロントエンド描画の全体にわたって EIS の列名を Z_Re [Ohm] / Z_Im [Ohm] に統一した。
  • 実験テンプレートの指標を、より安定してシリアライズ可能な構成表現へ移行した。
  • 非推奨のフィールドをセルモデルから完全に削除した。
修正
  • 検証中に datafit プロセッサが未解決の参照を受け取る問題を修正した。
  • 特定のモデルでクラッシュが発生する問題を修正した。
  • 実行間で datafit のセットアップ構成が変更される問題を修正した。
改善
  • 最大濃度値を必要とせずに、最大化学量論からリチウムインベントリを計算するサポートを追加した。
  • モデルおよび実験のシリアライズをより堅牢な方式に更新した。
  • 合成指標の単項演算として abs を追加した。
修正
  • ECM で熱モデルが誤った発熱変数を使用していた問題を修正した。
  • 電極バランシング方向のパラメータ名における末尾の空白を修正した。
  • パラメータ検証がサブパラメータを見落とす問題を修正した。
  • サンプラー構成の解析を修正した。
  • データ読み込みライブラリ間の互換性の問題を修正した。
改善
  • EIS インピーダンス列を SI 単位と標準符号規約とともに Z_Re [Ohm] / Z_Im [Ohm] に統一した。
修正
  • CCCV の解決が、プロトコル内のすべてのサブステップに一貫して適用されるよう修正した。
改善
  • セル測定のローカルデータキャッシュを追加し、繰り返しのダウンロードを削減した。
  • セル一覧メソッドにページネーションサポート(limit/offset)を追加し、.total 属性を持つ PaginatedList を返すようにした。
  • 非推奨の slug および additional_data フィールドをセルモデルから完全に削除した。
  • 測定の電流データに対する符号検出アルゴリズムを改善した。
改善
  • MPR 以外のエクスポート向けに BioLogic のプレーン CSV リーダーを追加した。
  • インピーダンス成分が欠落している場合に、Z_ModZ_Phase から Z_ReZ_Im を自動的に 導出する機能を追加した。
修正
  • 明示的にマッピングされた列に対して自動検出をスキップするよう CSV リーダーを修正した。
  • データ可視化ユーティリティのプロットのバグを修正した。
Protocols セクション、ジョブのキャンセル、パラメータ化された継続時間、最適化の管理

パラメータ化入力に対応した専用 Protocols セクション

Studio に、保存済みの実験テンプレートを閲覧・編集・クローンできる専用の Protocols セクションが追加された。 各プロトコルの詳細ページには、ソース YAML、タブ切り替え式の UCP/人間可読プレビュー、そして自動検出された 入力パラメータのスキーマが表示される。これにより、再利用可能でパラメータ化された プロトコルを構築し、異なる入力値でシミュレーションすることが容易になる。詳細はこちら →

Studio から実行中のジョブをキャンセル

パイプライン、最適化、シミュレーションを UI から直接キャンセルできるようになった。各詳細ページには 進行中のジョブ向けのキャンセルボタンが表示され、楽観的なステータス更新と、キャンセルが失敗した場合の 自動ロールバックを備えている。ジョブのキャンセルは、関連する子ジョブすべてに連鎖する。

プロトコルの終止条件とパラメータ化された継続時間

プロトコルシミュレーションが、変数条件に基づく早期終了をサポートするようになった。これは長時間プロトコル (例:複数サイクルの Arbin テスト)を目標サイクル数到達後に終了させる際に有用である。継続時間と 終止終了条件も input['...'] 参照を受け付けるようになり、可変の巡航時間を持つ eVTOL 設計最適化などの 完全にパラメータ化された実験を実現できる。詳細はこちら →

最適化の編集と削除

最適化の名前と説明を詳細ページから編集できるようになり、確認ダイアログを伴って最適化を削除できるようになった。 実験ステップに対する検証のトグルも目的関数ごとの設定として公開され、各目的関数が実験ステップに対して 検証を行うかどうかを制御できる。
改善
  • 実行中のパイプライン、最適化、シミュレーションに対する、連鎖キャンセルを伴うキャンセルボタンを追加した。
  • 最適化の編集(名前と説明)と、権限チェックを伴う削除を追加した。
  • 各最適化目的関数に、実験ステップに対する検証のトグルを公開した。
  • 最適化・プロトコル・パイプライン全体でテーブル UI を統一した。アクションを三点メニューに収め、行名を クリック可能にし、「Actions」列ヘッダーを廃止した。
  • プロトコルシミュレータの結果ビューにプロット変数を追加した。
  • シミュレーションの再実行時に設計パラメータと実験条件が保持されるようになり、差異のあるパラメータの列が デフォルトで表示されるようになった。
  • セル仕様・インスタンス・測定の各モデルから未使用の内部フィールドを削除した。
修正
  • UTF-8 でないプロトコルファイル(例:BioLogic .mps)をシミュレーションする際の 500 エラーを修正した。
  • 最適化詳細ページのレイアウトの問題を修正した。
改善
  • UCP の継続時間および終止終了条件における input['...'] パラメータ参照のサポートを追加した。
改善
  • 変数条件が満たされたときにプロトコルシミュレーションを早期終了するための termination_condition コールバックを追加した。
  • PyBaMM 実験文字列における Python スタイルのリスト繰り返し(["step"] * N)のサポートを追加した。
  • Arbin プロトコル解析における PV_CHAN_Cycle_Index 分岐のサポートを追加した。
修正
  • スタンドアロンシミュレータにおける、UTF-8 でないプロトコルファイルの latin-1 フォールバックデコードを 修正した。
改善
  • 大きなリクエストペイロードが自動的に圧縮されるようになり、アップロードサイズが大幅に削減された。
  • セルモデルから未使用の内部フィールドを削除した。
  • ジョブステータスのフィールドが、生の文字列ではなく型付き列挙型を使用するようになった。