概览
PySINDy 提供了一个用于系统辨识的 Python 工作流程:从测量数据估计控制动力学,而不是从预先完整指定的方程模型出发。其重点是非线性动力学系统稀疏辨识(SINDy),同时也涵盖相关研究中的方法。生成的方程模型旨在支持解释、未来状态预测、控制输入分析以及解析研究。它是一个建模软件包,并非预训练预测器,也不是完整的过程控制应用程序。
项目 README 通过两个状态变量的按时间索引观测数据展示了核心输入/输出模式。测量值排列在一个数组中,每列对应一个变量,然后将该数组与时间值和变量名称一同传入 SINDy 模型。拟合后的模型可以打印发现的微分方程。该示例使用解析生成的指数轨迹,并展示了对其控制方程的恢复;它并不能证明该方法在实验化学测量、含噪工业信号或其他系统上的性能。
可选依赖项可用于其他优化方法:通过 cvxpy extra 使用 SR3 及其子类;使用 MIOSR 进行 L0 约束分支定界优化;使用 SBR 进行带后验输出的贝叶斯回归。项目还链接了教程、对象模型参考资料、贡献指南和学术引用指南。软件包元数据声明 Python >=3.11,但该声明并不能证明兼容性经过独立测试。对于化学或工程应用,在将推断出的模型用于预测或控制之前,应先使用有代表性的测量数据评估其适用性。
主要功能
- 使用 SINDy 和相关系统辨识方法,从测量数据拟合动力学方程模型。
- 在文档所述的拟合工作流程中,接受状态观测数组、时间值和特征名称。
- 通过模型的 print 方法打印拟合得到的控制方程。
- 通过 cvxpy extra 提供对 SR3 及其子类的可选支持。
- 提供可选的 MIOSR 优化器,用于 L0 约束分支定界优化。
- 提供可选的 SBR 贝叶斯回归优化器,并输出后验结果。
使用场景
- 预期评估用途:从测得的浓度或其他化学过程状态轨迹中推断候选动力学方程,然后将其与留出的观测数据进行比较。
- 预期评估用途:在将推断出的方程模型集成到控制工作流程之前,评估其是否适用于过程控制分析。
- 预期评估用途:研究由测量数据推导出的方程模型能否作为数字孪生的组成部分,而不是将 PySINDy 当作完整的数字孪生平台。
- 将 README 中的合成双变量示例作为拟合和检查发现方程的入门练习。
使用方式
- 从官方 README开始,了解 SINDy 工作流程及其合成数据示例。明确拟议研究将提供哪些测量状态变量和时间值。
- 在规划安装前查看软件包元数据。其中声明 Python >=3.11,并列出必需和可选依赖项;README 介绍了 pip 和 conda 安装方式。
- 按照文档中链接的入门资料进行操作。以 README 中每列对应一个变量的观测数组作为输入模式的起点,并在拟合时提供时间值和描述性特征名称。
- 使用文档所述的 print 方法检查拟合方程。选择组件或考虑使用 cvxpy、miosr 或 sbr extras 之前,请查阅对象模型参考资料。
- 对于预期的科学评估,在依赖预测结果或控制决策之前,先将推断出的动力学与留出的测量数据进行比较。问题可通过问题跟踪器提出;引用建议请参阅学术用途指南。