主要内容

在线ARMAX多项式模型估计

这个例子展示了如何实现一个在线多项式模型估计器。你估计了非线性化学反应过程的两个ARMAX模型。这些模型捕捉了两种操作条件下的流程行为。模型行为在线识别,并用于在系统运行期间调整自适应PI控制器的增益。

连续搅拌釜式反应器

连续搅拌釜反应器(CSTR)是过程工业中常见的化学系统。CSTR系统的示意图如下:

这是一个夹套非绝热(即非绝热)罐式反应堆,Bequette的书“过程动力学:建模,分析和仿真”中有广泛的描述,由Prentice-Hall出版,1998年。假设容器完全混合,发生单次一级放热不可逆反应a—> B。试剂A的入口流以恒定的速率被送入储罐。搅拌后,最终产物流出容器的速率与试剂A进入罐内的速率相同(反应器罐内的体积是恒定的)。本例中解释了CSTR及其2状态非线性模型的操作细节非绝热连续搅拌釜反应器:MATLAB文件建模与仿真在Simulink®金宝app

CSTR模型的输入为:

$$ \begin{array} {ll}
u_1(t) = C_{Af}(t) \;& # 38;\textnormal{A在进料流中的浓度[kgmol/m^3] \\
u_2(t) = T_f(t) \;& # 38;\textnormal{进料流温度}[K] \\
u_3(t) = T_j(t) \;& # 38;\textnormal{护套冷却液温度}[K] \\
\end{array} $$

输出(y(t)),也是模型(x(t))的状态,为:

数组$ $ \开始{}{你}& # xA; y_1 (t) = x_1 (t) = C_{一}\ (t);& # 38;\textnormal{A在反应器罐内的浓度}[kgmol/m^3] \\
y_2(t) = x_2(t) = t (t) \;& # 38;\textnormal{反应堆温度}[K] \\
\end{array} $$

控制目标是保持试剂A的浓度,美元$ C_{一}(t)在期望的水平美元$ C_ {Aref} (t),随着时间的推移而变化。护套温度美元美元T_j (t)由PI控制器控制,以抑制进口进料流温度引起的扰动美元美元T_f (t).PI控制器的输入是跟踪误差信号,美元C_ {Aref} (t) -C_A (t)美元.进料流浓度,美元$ C_ {Af} (t),设为常数。Simu金宝applink模型iddemo_cstr实现CSTR植物作为块装运箱

open_system (“iddemo_cstr”);

美元美元T_f (t)进料温度输入由一个恒定偏置上的白噪声扰动组成。噪声功率为0.0075 [K^2]。这个噪声水平会导致2%的偏差美元$ C_ {Aref} (t)

美元$ C_ {Aref} (t)本例中的信号包含一次从1.5 [kgmol/m^3]到2 [kgmol/m^3]的步进变化t = 400美元.除了这个步骤的变化,美元$ C_ {Aref} (t)还包含了t在[0,200)和[400,600)范围内的白噪声扰动。这个白噪声信号的功率是0.015。根据经验调整噪声功率,使信噪比约为10。在闭环识别中,参考信号没有足够的激励,会导致没有足够的信息来识别唯一的模型。实施美元$ C_ {Aref} (t)iddemo_cstr / CA参考块。

自适应控制的在线估计

由非线性模型可知,CSTR输出美元$ C_{一}(t)对控制输入更敏感美元美元T_j (t)在更高的美元$ C_{一}(t)的水平。递归多项式模型估计块用于检测灵敏度的变化。该信息用于调整PI控制器的增益美元$ C_{一}(t)各不相同。其目的是避免有一个可能导致不稳定的高增益控制回路。

估计一个离散传递函数美元美元T_j (t)美元$ C_{一}(t)在线递归多项式模型估计块。自适应控制算法利用该传递函数的直流增益。跟踪误差美元C_ {Aref} (t) -C_A (t)美元,除以估计传递函数的归一化直流增益。这种归一化是为了在初始工作点的跟踪误差上获得1的增益,PI控制器就是为此设计的。例如,如果直流增益变成其原始值的2倍,则误差信号被除2。这对应于PI控制器增益除以2。该自适应控制器在iddemo_cstr/自适应PI控制器

递归多项式模型估计块输入

“递归多项式模型估计器”块在系统识别工具箱/估计器Simulink中的库金宝app。您可以使用此块来估计具有ARMAX结构的线性模型。ARMAX模型的形式为:

数组$ $ & # xA; \开始{}{1}{y} (q) \酒吧(t) = B (q) \酒吧{你}(t) + C (q) \酒吧}{e (t) \ \ [0.1] & # xA; (q) = 1 + a_1z ^ {1} + a_2z ^ {2} + \ cdots +现代z ^ {na} {na} \ \ & # xA; B (q) = (b_01 + b_1z ^ {1} + b_2z ^ {2} + \ cdots +现代z ^ {nb-1} {nb + 1}) z ^ {nk} \ \ & # xA; C (q) = 1 + c_1z ^ {1} + c_2z ^ {2} + \ cdots + c_ z ^{数控}{数控}\ \ & # xA;结束\{数组}& # xA; $ $

  • 输入输出输入的递归多项式模型估计量块对应酒吧\{你}(t)美元酒吧\ {y} (t)美元分别。对于CSTR模型$ {y} $ \酒吧{你}$ $ \酒吧为夹套温度和A浓度配平工作点的偏差:$ {y} \酒吧= C_A (t) - C{} \酒吧(t)美元${你}\酒吧= T_j酒吧(t) - \ {t} _j (t)美元.缩放是很好的{你}$ $ \酒吧$ {y} $ \酒吧将峰值振幅设为1,以改善估计问题的数值条件。修整操作点,$ {C} \酒吧(t)美元$ {T} \酒吧_j (T)美元,在系统运行之前是不确切知道的。利用一阶移动平均滤波器对测量信号进行估计和提取。这些预处理过滤器在iddemo_cstr /预处理Tjiddemo_cstr / CA进行预处理块。

open_system (“iddemo_cstr /预处理Tj”);

  • 可选启用递归多项式模型估计块的导入控制块中的参数估计。当使能信号为零时,参数估计被禁用。属性的所有其他值启用参数估计启用信号。在本例中,对时间间隔禁用了估计t \[200400)美元t \[600800)美元.在这些间隔内测量的输入美元美元T_j (t)不包含足够的激励来进行闭环系统辨识。

递归多项式模型估计块设置

配置块参数以估计二阶ARMAX模型。在模型参数选项卡中,指定:

  • 模型结构:ARMAX。选择ARMAX,因为作用于系统的扰动的当前值和过去值,美元美元T_f (t),预计会影响CSTR系统的输出美元美元C_A (t)

  • 最初的估计:一个也没有。默认情况下,软件对所有估计参数使用0值。

  • A(q) (na)中参数个数2.非线性模型有两种状态。

  • B(q) (nb)中参数个数2

  • C(q) (nc)中参数个数2.估计模型对应于二阶模型,因为na, nb和nc的最大值为2。

  • 输入延迟(nk)1.像大多数物理系统一样,CSTR系统没有直接馈通。此外,它的I/ o之间没有额外的时间延迟。

  • 参数协方差矩阵1 e4.指定一个高协方差值,因为初始猜测值是高度不确定的。

  • 样品时间0.1.已知CSTR模型的带宽约为0.25Hz。T_s = 0.1美元选择1/0.1大于该带宽(5Hz)的20倍。

点击算法和块选项设置评估选项。

  • 估算方法遗忘因子

  • 遗忘因子1-5e-3.由于估计的参数预计会随着工作点的变化而变化,因此将遗忘因子设置为小于1的值。选择$\lambda = 1-5e-3$对应的内存时间常数是$ T_0 = \压裂{Ts}{1 - \λ}= 100美元秒。100秒的存储时间确保用于识别的大量数据来自每个工作点的200秒识别周期。

  • 选择输出估计误差复选框。您使用这个块输出来验证估计。

  • 选择添加启用端口复选框。只有当额外的噪声注入到参考端口时,才需要调整估计的模型参数。当不再注入额外噪声时,通过该端口禁用参数估计n。

  • 外部复位没有一个

递归多项式模型估计块输出

在每一个时间步,递归多项式模型估计器提供一个估计一个(q)美元B (q)美元C (q)美元,估计误差$ {e} $ \酒吧.的错误输出的多项式模型估计器块包含酒吧\ {e} (t)美元也被称为超前一步预测误差。的参数块的输出端口包含总线信号中的A(q), B(q)和C(q)多项式系数。给定所选多项式阶数(na = 2美元nb = 2美元数控= 2美元nk = 1美元)参数总线元素包括:

$$ \begin{数组}{l}
a_1 (t) \;a (t)] \\
B(t) = [0 \;b_0 (t) \;b_1(t)] \\
C(t) = [1 \;;c₁(t) \;c_2(t)] \\
\end{array} $$

A(q)、B(q)、C(q)多项式的估计参数在模拟过程中变化如下:

sim卡(“iddemo_cstr”);close_system (“iddemo_cstr /预处理Tj”);open_system (“iddemo_cstr / ABC”);

由于为初始参数协方差矩阵选择了高值,参数估计值从初始值0迅速变化。中的参数一个(q)美元B (q)美元多项式趋近于t = 200美元迅速。中的参数C (q)美元多项式显示出一些波动。这些波动背后的一个原因是扰动美元美元T_f (t)到CSTR输出美元美元C_A (t)ARMAX结构没有完全模拟。误差模型C (q)美元对于这里研究的控制问题不重要,因为美元美元T_j (t)美元美元C_A (t)关系是通过传递函数捕获的$ \压裂{B (q)} {(q)} $.因此,波动在C (q)美元并不关心这个识别和控制问题。

参数估计保持不变t \[200400)美元由于估计器块在此间隔内被禁用(0信号到启用尺寸)。启用参数估计t = 400美元当CSTR坦克开始切换到新的工作点时。的参数一个(q)美元B (q)美元收敛到它们的新值t = 600美元,然后通过设置启用端口到0。的汇合一个(q)美元B (q)美元在这个操作点比较慢。这种缓慢的收敛是由于参数协方差矩阵在t=400处的特征值小于t=0处的初始1e4值。参数协方差是估计置信度的度量,随着每个时间步骤更新。当估计的置信度在t=0时很低时,算法会快速改变参数估计。改进后的参数估计更好地捕捉了系统行为,导致更小的超前一步预测误差和更小的参数协方差矩阵中的特征值(增加了置信度)。系统行为在t=400时发生变化。然而,由于估计值的置信度增加,块更改参数估计值的速度较慢。您可以使用递归多项式模型估计器块的外部重置选项为t=400处的参数协方差提供一个新值。要查看参数协方差的值,请选择输出参数协方差矩阵复选框中的递归多项式模型估计器块。

验证估计模型

错误的输出递归多项式模型估计器Block给出了估计模型的一步误差。

close_system (“iddemo_cstr / ABC”);open_system ('iddemo_cstr/提前一步预测错误');

当没有额外的扰动注入时,超前一步误差较大美元美元T_j (t)用于系统标识的通道。这些较高的误差可能是由于缺乏足够的信息美元美元T_j (t)估计器块所依赖的输入通道。然而,与测量的波动相比,即使这个较高的误差也是低的和有界的美元美元C_A (t).这为估计的参数值提供了信心。

对估计模型更严格的检查是模拟估计模型并与实际模型输出进行比较。的iddemo_cstr /时变ARMAX块实现了由在线多项式模型估计器块估计的时变ARMAX模型。CSTR系统输出与估计的时变ARMAX模型输出之间的误差为:

close_system ('iddemo_cstr/提前一步预测错误');open_system (“iddemo_cstr /模拟误差”);

模拟误差是有界的和低的,当与波动美元美元C_A (t).这进一步为估计的线性模型能够预测非线性CSTR模型行为提供了信心。

识别出的模型可以在MATLAB中进一步分析。该模型估计了工作点C_A = 1.5美元kgmol / m ^ 3美元C_A = 2美元kgmol / m ^ 3美元可以通过观察估计的A(q), B(q)和C(q)多项式在$t = 200$$t = 600$分别。这些模型的波德图为:

Ts = 0.1;Tidx = find(t>=200,1);P200 = idpoly (AHat (:,:, tidx) BHat (:,:, tidx),聊天(:,:,tidx), 1, 1, [], Ts);Tidx = find(t>=600,1);P600 = idpoly (AHat (:,:, tidx) BHat (:,:, tidx),聊天(:,:,tidx), 1, 1, [], Ts);bodemag (P200“b”P600,“r——”{10 ^ 1 20});传奇(“C_A=1.5 [kgmol/m^3]的估计模型”...“C_A=2.0 [kgmol/m^3]时的估计模型”...“位置”“最佳”);

在较高的浓度水平下,估计模型具有较高的增益。这与非线性CSTR装置的先验知识是一致的。传递函数为美元C_A (t) = 2 kgmol / m ^ 3美元有一个6 db美元在低频下获得更高的增益(振幅的两倍)。

总结

您估计了两个ARMAX模型,以捕捉非线性CSTR装置在两种操作条件下的行为。采用自适应控制器在闭环运行时进行估计。您查看了两个信号来验证估计结果:提前一步的预测误差和CSTR工厂输出与估计模型模拟之间的误差。与CSTR工厂输出相比,这两个误差信号都是有界的,而且很小。这为估计的ARMAX模型参数提供了可信度。

bdclose (“iddemo_cstr”);