主要内容

在线ARMAX多项式模型估计

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

连续搅拌罐式反应器

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

这是一种夹套非绝热(即非绝热)罐式反应器,Bequette在Prentice-Hall出版的《过程动力学:建模、分析和仿真》一书中有大量描述。假设容器完全混合,发生单一的一级放热和不可逆反应,a -> B。试剂A的进口流以恒定的速率注入罐中。搅拌后,最终产物以与试剂A进入罐中相同的速度流出容器(反应器罐中的体积是恒定的)。本例详细说明了CSTR及其双状态非线性模型的操作非绝热连续搅拌釜式反应器:MATLAB文件建模与仿真在Simulink®金宝app

CSTR模型的输入是:

u_1(t) = C_{Af}(t) \;& # 38;[kgmol/m^3] \\
u_2(t) = T_f(t) \;& # 38;[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;[kgmol/m^3] \\
y_2(t) = x_2(t) = t (t) \;& # 38;\textnormal{Reactor temperature} [K] \\
\end{array} $$

控制目标是保持试剂A的浓度,$ c_ {a}(t)$在期望的水平美元$ C_ {Aref} (t),随着时间的推移而变化。夹克温度美元美元T_j (t)是由PI控制器操纵,以拒绝由进料流温度引起的扰动$ t_f(t)$.PI控制器的输入是跟踪误差信号,美元C_ {Aref} (t) -C_A (t)美元.进料流浓度,美元$ C_ {Af} (t),被假定为常数。仿真软件金宝app模型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)也包含在[0,200)和[400,600)范围内对t的白噪声扰动。这个白噪声信号的功率是0.015。噪声功率经经验调整以近似给出信噪比为10。在闭环辨识中,参考信号没有足够的激励会导致没有足够的信息来辨识唯一的模型。的实现美元$ C_ {Aref} (t)是在iddemo_cstr / CA参考块。

自适应控制的在线估计

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

你估计一个离散传递函数美元美元T_j (t)$ c_ {a}(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; $ $

  • 输入输出引入的递归多项式模型估计器块对应$ \ bar {u}(t)$$ \ bar {y}(t)$分别。对于CSTR模型$ {y} $ \酒吧{你}$ $ \酒吧偏离夹克温度和浓度饰边操作点:$ {y} \酒吧= C_A (t) - C{} \酒吧(t)美元$ \ bar {u} = t_j(t) -  \ bar {t} _j(t)$.这是很好的规模{你}$ $ \酒吧$ {y} $ \酒吧峰值幅度为1以改善估计问题的数值。修剪工作点,$ {C} \酒吧(t)美元$ {T} \酒吧_j (T)美元,在系统操作之前不确定。通过使用一阶移动平均滤波器从测量信号估计并从测量信号中提取。这些预处理过滤器在此处实现iddemo_cstr / preprocess tjiddemo_cstr / CA进行预处理块。

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

  • 可选启用输入递归多项式模型估计块控制块中的参数估计。当使能信号为零时,参数估计将被禁用。的所有其他值启用参数估计启用信号。在本例中,对时间间隔的估计被禁用t \[200400)美元$ t \ [600,800)$.在这些间隔期间测量的输入美元美元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大于这个带宽的20倍(5Hz)。

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

  • 估计方法遗忘因子

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

  • 选择输出估计错误复选框。您可以使用此块输出来验证估计。

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

  • 外部重置没有任何

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

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

$$ \begin{array} {l}
A(t) = [1 \;a_1 (t) \;B(t) = [0 \;b_0 (t) \;b_1(t) = [1 \&#c₁(t) \;c₂(t)) \ \ & # xA; \{数组}$ $

仿真过程中,A(q)、B(q)、C(q)多项式的估计参数变化如下:

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

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

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

验证估计模型

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

close_system(“iddemo_cstr / ABC”);open_system ('iddemo_cstr/1-Step Ahead Prediction Error');

当没有额外的摄动注入时,一步误差会更高美元美元T_j (t)用于系统识别的通道。这些较高的误差可能是由于在美元美元T_j (t)估计器块依赖的输入通道。然而,与测量的波动相比,即使这个较高的误差也很低并有界限美元美元C_A (t).这给出了对估计的参数值的信心。

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

close_system('iddemo_cstr/1-Step Ahead Prediction Error');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美元分别。这些模型的Bode Plotots是:

t = 0.1;tidx =找到(t > = 200, 1);P200 = idpoly (AHat (:,:, tidx) BHat (:,:, tidx),聊天(:,:,tidx), 1, 1, [], Ts);tidx =找到(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] $有一个$ 6dB $在低频时,增益更高(幅度加倍)。

总结

您估计了两个ARMAX模型,以在两个操作条件下捕获非线性CSTR工厂的行为。估计在使用自适应控制器期间在闭环操作期间完成。您查看了两个信号来验证估计结果:一个步骤前进预测误差和CSTR工厂输出之间的错误和估计模型的仿真。与CSTR植物输出相比,这些误差信号都界定和小。这提供了对估计的ARMAX模型参数的信心。

bdclose (“iddemo_cstr”);