这个例子展示了如何实现一个在线多项式模型估计器。你估计了非线性化学反应过程的两个ARMAX模型。这些模型捕捉了两种操作条件下的流程行为。模型行为在线识别,并用于在系统运行期间调整自适应PI控制器的增益。
连续搅拌釜反应器(CSTR)是过程工业中常见的化学系统。CSTR系统的示意图如下:
这是一个夹套非绝热(即非绝热)罐式反应堆,Bequette的书“过程动力学:建模,分析和仿真”中有广泛的描述,由Prentice-Hall出版,1998年。假设容器完全混合,发生单次一级放热不可逆反应a—> B。试剂A的入口流以恒定的速率被送入储罐。搅拌后,最终产物流出容器的速率与试剂A进入罐内的速率相同(反应器罐内的体积是恒定的)。本例中解释了CSTR及其2状态非线性模型的操作细节非绝热连续搅拌釜反应器:MATLAB文件建模与仿真在Simulink®金宝app.
CSTR模型的输入为:
输出(y(t)),也是模型(x(t))的状态,为:
控制目标是保持试剂A的浓度,在期望的水平,随着时间的推移而变化。护套温度由PI控制器控制,以抑制进口进料流温度引起的扰动.PI控制器的输入是跟踪误差信号,.进料流浓度,,设为常数。Simu金宝applink模型iddemo_cstr
实现CSTR植物作为块装运箱
.
open_system (“iddemo_cstr”);
的进料温度输入由一个恒定偏置上的白噪声扰动组成。噪声功率为0.0075 [K^2]。这个噪声水平会导致2%的偏差.
的本例中的信号包含一次从1.5 [kgmol/m^3]到2 [kgmol/m^3]的步进变化.除了这个步骤的变化,还包含了t在[0,200)和[400,600)范围内的白噪声扰动。这个白噪声信号的功率是0.015。根据经验调整噪声功率,使信噪比约为10。在闭环识别中,参考信号没有足够的激励,会导致没有足够的信息来识别唯一的模型。实施在iddemo_cstr / CA参考
块。
由非线性模型可知,CSTR输出对控制输入更敏感在更高的的水平。递归多项式模型估计块用于检测灵敏度的变化。该信息用于调整PI控制器的增益各不相同。其目的是避免有一个可能导致不稳定的高增益控制回路。
估计一个离散传递函数来在线递归多项式模型估计块。自适应控制算法利用该传递函数的直流增益。跟踪误差,除以估计传递函数的归一化直流增益。这种归一化是为了在初始工作点的跟踪误差上获得1的增益,PI控制器就是为此设计的。例如,如果直流增益变成其原始值的2倍,则误差信号被除2。这对应于PI控制器增益除以2。该自适应控制器在iddemo_cstr/自适应PI控制器
.
“递归多项式模型估计器”块在系统识别工具箱/估计器
Simulink中的库金宝app。您可以使用此块来估计具有ARMAX结构的线性模型。ARMAX模型的形式为:
的输入
和输出
输入的递归多项式模型估计量块对应和分别。对于CSTR模型和为夹套温度和A浓度配平工作点的偏差:,.缩放是很好的和将峰值振幅设为1,以改善估计问题的数值条件。修整操作点,和,在系统运行之前是不确切知道的。利用一阶移动平均滤波器对测量信号进行估计和提取。这些预处理过滤器在iddemo_cstr /预处理Tj
和iddemo_cstr / CA进行预处理
块。
open_system (“iddemo_cstr /预处理Tj”);
可选启用
递归多项式模型估计块的导入控制块中的参数估计。当使能信号为零时,参数估计被禁用。属性的所有其他值启用参数估计启用
信号。在本例中,对时间间隔禁用了估计和.在这些间隔内测量的输入不包含足够的激励来进行闭环系统辨识。
配置块参数以估计二阶ARMAX模型。在模型参数选项卡中,指定:
模型结构:ARMAX。选择ARMAX,因为作用于系统的扰动的当前值和过去值,,预计会影响CSTR系统的输出.
最初的估计:一个也没有。默认情况下,软件对所有估计参数使用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。选择1/0.1大于该带宽(5Hz)的20倍。
点击算法和块选项设置评估选项。
估算方法:遗忘因子
遗忘因子:1-5e-3
.由于估计的参数预计会随着工作点的变化而变化,因此将遗忘因子设置为小于1的值。选择对应的内存时间常数是秒。100秒的存储时间确保用于识别的大量数据来自每个工作点的200秒识别周期。
选择输出估计误差复选框。您使用这个块输出来验证估计。
选择添加启用端口复选框。只有当额外的噪声注入到参考端口时,才需要调整估计的模型参数。当不再注入额外噪声时,通过该端口禁用参数估计n。
外部复位:没有一个
.
在每一个时间步,递归多项式模型估计器提供一个估计,,,估计误差.的错误
输出的多项式模型估计器块包含也被称为超前一步预测误差。的参数
块的输出端口包含总线信号中的A(q), B(q)和C(q)多项式系数。给定所选多项式阶数(,,,)参数
总线元素包括:
A(q)、B(q)、C(q)多项式的估计参数在模拟过程中变化如下:
sim卡(“iddemo_cstr”);close_system (“iddemo_cstr /预处理Tj”);open_system (“iddemo_cstr / ABC”);
由于为初始参数协方差矩阵选择了高值,参数估计值从初始值0迅速变化。中的参数和多项式趋近于迅速。中的参数多项式显示出一些波动。这些波动背后的一个原因是扰动到CSTR输出ARMAX结构没有完全模拟。误差模型对于这里研究的控制问题不重要,因为来关系是通过传递函数捕获的.因此,波动在并不关心这个识别和控制问题。
参数估计保持不变由于估计器块在此间隔内被禁用(0信号到启用
尺寸)。启用参数估计当CSTR坦克开始切换到新的工作点时。的参数和收敛到它们的新值,然后通过设置启用
端口到0。的汇合和在这个操作点比较慢。这种缓慢的收敛是由于参数协方差矩阵在t=400处的特征值小于t=0处的初始1e4值。参数协方差是估计置信度的度量,随着每个时间步骤更新。当估计的置信度在t=0时很低时,算法会快速改变参数估计。改进后的参数估计更好地捕捉了系统行为,导致更小的超前一步预测误差和更小的参数协方差矩阵中的特征值(增加了置信度)。系统行为在t=400时发生变化。然而,由于估计值的置信度增加,块更改参数估计值的速度较慢。您可以使用递归多项式模型估计器块的外部重置选项为t=400处的参数协方差提供一个新值。要查看参数协方差的值,请选择输出参数协方差矩阵复选框中的递归多项式模型估计器块。
的错误
的输出递归多项式模型估计器
Block给出了估计模型的一步误差。
close_system (“iddemo_cstr / ABC”);open_system ('iddemo_cstr/提前一步预测错误');
当没有额外的扰动注入时,超前一步误差较大用于系统标识的通道。这些较高的误差可能是由于缺乏足够的信息估计器块所依赖的输入通道。然而,与测量的波动相比,即使这个较高的误差也是低的和有界的.这为估计的参数值提供了信心。
对估计模型更严格的检查是模拟估计模型并与实际模型输出进行比较。的iddemo_cstr /时变ARMAX
块实现了由在线多项式模型估计器块估计的时变ARMAX模型。CSTR系统输出与估计的时变ARMAX模型输出之间的误差为:
close_system ('iddemo_cstr/提前一步预测错误');open_system (“iddemo_cstr /模拟误差”);
模拟误差是有界的和低的,当与波动.这进一步为估计的线性模型能够预测非线性CSTR模型行为提供了信心。
识别出的模型可以在MATLAB中进一步分析。该模型估计了工作点和可以通过观察估计的A(q), B(q)和C(q)多项式在和分别。这些模型的波德图为:
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装置的先验知识是一致的。传递函数为有一个在低频下获得更高的增益(振幅的两倍)。
您估计了两个ARMAX模型,以捕捉非线性CSTR装置在两种操作条件下的行为。采用自适应控制器在闭环运行时进行估计。您查看了两个信号来验证估计结果:提前一步的预测误差和CSTR工厂输出与估计模型模拟之间的误差。与CSTR工厂输出相比,这两个误差信号都是有界的,而且很小。这为估计的ARMAX模型参数提供了可信度。
bdclose (“iddemo_cstr”);