根据输入和输出数据序列确定 MISO 系统的状态空间方程

问题描述 投票:0回答:0

我正在为具有两个输入流和一个输出产品的反应器构建模型预测控制器。我们控制输入流量并测量输出浓度。

我有输入和输出值数据,旨在通过尝试不同的流速并测量物理设置上的浓度来构建模型预测控制器。

第一步是确定系统以构建流程模型。我探索了 N4SID 等方法,但无法在 Python 中找到与 MATLAB 中的系统识别工具箱等效的库。

我遇到了这个名为 SIPPY 的库(SIPPY Github)并使用了他们的系统识别功能。

input = np.hstack((F_Na, F_Ag)).T # Input flow rates with shape (2, N)
output = sgf.T # Output shape (1, N)

sys_id = sippy.system_identification(y=output, u=input, id_method="N4SID", SS_fixed_order=4, centering="MeanVal")
xid, yid = sippy.functionsetSIM.SS_lsim_process_form(sys_id.A, sys_id.B, sys_id.C, sys_id.D, input, sys_id.x0)

以下两个时间序列是输入数据序列

下图描述了输出数据系列

运行SIPPY的system_identification函数后,模拟状态方程产生的输出为

我希望在以下方面获得帮助。

  1. 为什么生成的输出模拟从零开始,而不是目标中的 400
  2. 建议更好的方法或库
python controls state-space data-driven
© www.soinside.com 2019 - 2024. All rights reserved.