概要
PySINDy は、完全に指定された方程式モデルを出発点とするのではなく、測定データから支配ダイナミクスを推定するシステム同定のための Python ワークフローを提供します。主な対象は非線形動力学系の疎同定(SINDy)であり、関連研究の手法も扱います。得られる方程式モデルは、解釈、将来状態の予測、制御入力の検討、解析的調査を支援することを目的としています。これはモデリング用パッケージであり、事前学習済み予測器でも、完全なプロセス制御アプリケーションでもありません。
プロジェクトの README では、2つの状態変数の時間インデックス付き観測値を使い、基本的な入出力パターンを示しています。測定値は変数ごとに1列の配列にまとめられ、時間値および変数名とともに SINDy モデルに渡されます。学習済みモデルは、発見された微分方程式を出力できます。この例では解析的に生成された指数軌道を用いて支配方程式の復元を示していますが、実験化学測定、ノイズを含む産業信号、その他のシステムでの性能を立証するものではありません。
オプションの依存関係により、追加の最適化手法を利用できます。cvxpy extra を介した SR3 とそのサブクラス、L0 制約付き分枝限定法を用いる MIOSR、事後出力を伴うベイズ回帰の SBR です。また、プロジェクトはチュートリアル、オブジェクトモデルのリファレンス、コントリビューションガイド、学術的な引用に関するガイダンスへのリンクを掲載しています。パッケージのメタデータでは Python >=3.11 と宣言されていますが、この宣言は独立した互換性テストの証拠ではありません。化学または工学で利用する場合は、推定モデルを予測や制御に用いる前に、代表性のある測定データで適合性を評価してください。
主な機能
- SINDy および関連するシステム同定手法を用いて、測定データから動力学方程式モデルを適合させます。
- 文書化された適合ワークフローでは、状態観測配列、時間値、特徴名を受け取ります。
- モデルの print メソッドを通じて、適合した支配方程式を出力します。
- cvxpy extra を介して、SR3 とそのサブクラスを任意でサポートします。
- L0 制約付き分枝限定最適化のためのオプションの MIOSR オプティマイザーを提供します。
- 事後出力を伴うオプションの SBR ベイズ回帰オプティマイザーを提供します。
用途
- 評価を想定した用途:測定された濃度またはその他の化学プロセス状態の軌跡から候補となる動力学方程式を推定し、保留した観測値と比較します。
- 評価を想定した用途:推定方程式モデルを制御ワークフローに組み込む前に、プロセス制御の分析に利用できるか評価します。
- 評価を想定した用途:PySINDy を完全なデジタルツインプラットフォームと見なすのではなく、測定データから得た方程式モデルをデジタルツインの構成要素として検討します。
- README の合成2変数例を、方程式の適合と発見結果の確認を学ぶ入門演習として使用します。
使い方
- 公式 READMEから始めて、SINDy のワークフローと合成データの例を確認してください。計画中の研究で使用する状態変数の測定値と時間値を特定します。
- インストールを計画する前にパッケージメタデータを確認してください。Python >=3.11 が宣言され、必須およびオプションの依存関係が記載されています。README では pip と conda によるインストールが説明されています。
- ドキュメントからリンクされている入門資料に従ってください。README にある変数ごとに列を割り当てた観測配列を入力パターンの出発点とし、適合時には時間値と説明的な特徴名を渡します。
- 文書化された print メソッドを使って、適合された方程式を確認してください。コンポーネントを選択する前や cvxpy、miosr、sbr extras の利用を検討する前に、オブジェクトモデルのリファレンスを参照してください。
- 科学的評価を行う場合、予測や制御判断に依拠する前に、推定したダイナミクスを保留した測定値と比較してください。質問には課題トラッカーを利用し、引用に関する推奨事項は学術利用ガイダンスを参照してください。