主要内容

使用识别技术检测突然的系统变化

此示例演示如何使用在线估计和自动数据分割技术检测系统行为中的突然变化。此示例使用system Identification Toolbox中的功能™, 并且不需要预测性维护工具箱™.

问题描述

考虑一个传输延迟从2秒变化到1秒的线性系统,传输延迟是输入影响测量输出的时间。在这个例子中,使用在线估计和数据分割技术来检测传输延迟的变化。从系统中测量的输入输出数据在数据文件中可用。pdmabdata.mat.

加载并绘制数据。

负载pdmabdata.matz=iddata(z(:,1),z(:,2));绘图(z)网格

图中包含两个轴对象。标题为y1的轴对象1包含类型为line的对象。这个对象代表z。标题为u1的轴对象2包含类型为line的对象。这个对象代表z。

运输延迟的变化发生在20秒左右,但在情节中并不容易看到。

使用ARX结构对系统进行建模A.多项式系数,二B多项式系数和一个延迟。

Y ( T ) + A. Y ( T - 1. ) = B 1. U ( T - 1. ) + B 2. U ( T - 2. )

在这里A=[1 A]B = [0 b1 b2].

导频系数B多项式为零,因为模型没有馈通。随着系统动力学的变化,三个系数的值A.,b1,b2改变。什么时候?b1,则有效运输延迟为2个样本,因为B多项式有两个前导零。当b1越大,有效传输延迟将为1个样本。

因此,要检测传输延迟的变化,您可以监视B多项式系数。

使用在线估计进行更改检测

在线估计算法以递归的方式更新模型参数和状态估计,因为有新的数据可用。您可以使用系统识别工具箱库中的Simulink块执行在线估计,或者在命令行中使用金宝app递归识别例程,例如递归ARX在线估计可用于建模时变动态,如老化的机械和不断变化的天气模式,或检测机电系统中的故障。

当估计器更新模型参数时,系统动力学的变化(延迟)将通过参数值的大于通常的变化来表示b1b2. 环境的变化B多项式系数将通过以下方式进行跟踪:

L ( T ) = A. B s ( B ( T ) - B ( T - 1. ) )

使用递归ARX对象用于ARX模型的在线参数估计。

na=1;nb=2;nk=1;估计量=recursiveARX([na-nb-nk]);

将递归估计算法指定为正火适应增益为0.9。

估计方法=“NormalizedGradient”; 估计器。自适应增益=.9;

从数据库中提取原始数据iddata对象,Z.

输出=z.OutputData;输入=z.InputData;t=z.samplingstants;N=长度(t);

使用动画线条绘制估计的参数值和L。在估算之前初始化这些动画行。要模拟流数据,请将数据一次一个样本地馈送估算器。在估算之前初始化模型参数,然后执行在线估算。

%%初始化绘图颜色={“r”,“g”,“b”}; ax=gca;cla(ax)对于k=3:-1:1小时(k)=动画线(“颜色”,颜色{k});%行用于a, b1和b2参数结束h(4)=动画线(“标记”,'.',“颜色”,[0 0 0]);%L线传奇({“a”,“b1”,“b2”,“偏差”},“位置”,‘东南’)头衔(“ARX递归参数估计”)包含(的时间(秒)) ylabel (“参数值”斧头。XLim = [t(1),(最终)];斧子。YLim = [1,2];网格盒子%%现在执行递归估计并显示结果n0=6;L=NaN(N,nk);B_old=NaN(1,3);对于ct = 1:N [A,B] = step(Estimator,Output(ct),Input(ct));如果ct>n0 L(ct) = norm(B-B_old);B_old = B;结束附加点(h(1),t(ct),A(2))附加点(h(2),t(ct),B(2))附加点(h(3),t(ct),B(3))附加点(h(4),t(ct),L(ct))暂停(0.1)结束

图中包含一个轴对象。标题为ARX Recursive Parameter Estimation的axes对象包含4个animatedline类型的对象。这些对象表示a、b1、b2和偏差。

第一n0=6个数据样本不用于计算变化检测器,L.在此期间,由于初始条件未知,参数变化较大。

查找中所有峰值的位置L通过使用findpeaks来自信号处理工具箱的命令。

[v,Loc]=findpeaks(L);[~,I]=max(v);直线(t(Loc(I)),L(Loc(I)),“家长”,斧头,“标记”,“o”,“MarkerEdgeColor”,“r”,...“MarkerFaceColor”,“是的”,“MarkerSize”,12)

图中包含一个轴对象。标题为ARX Recursive Parameter Estimation的轴对象包含5个类型为animatedline、line的对象。这些对象表示a、b1、b2和偏差。

fprintf('在样本号%d处检测到系统延迟的变化。\n',Loc(I));
在样本编号21处检测到系统延迟变化。

最大峰值的位置对应于温度的最大变化B多项式系数,因此是传输延迟发生变化的位置。

在线估计技术为估计方法和模型结构的选择提供了更多的选择,而数据分割方法有助于对突变和孤立变化的自动检测。

使用数据分割进行更改检测

数据分割算法自动将数据分割为具有不同动态行为的区域。这对于捕捉故障或操作条件变化引起的突然变化非常有用。这个命令用于单次输出数据的操作。当您不需要捕获系统运行期间的时变行为时,是在线估计技术的替代方法。

数据分割的应用包括语音信号的分割(每个段对应一个音素)、故障检测(这些段对应于有故障和无故障的操作),以及系统不同工作模式的估计。

输入到命令包括测量数据、模型顺序和方差猜测,r2,表示影响系统的噪声。如果方差完全未知,则可以自动估计。使用与在线估计相同阶数的ARX模型执行数据分割。将方差设置为0.1。

[seg,V,tvmod]=段(z[na-nb-nk],0.1);

分割方法基于AFMM(通过多个模型自适应遗忘)。有关该方法的详细信息,请参阅Andersson,Int.J.Control,1985年11月。

多模型方法用于跟踪时变系统。生成的跟踪模型是多个模型的平均值,并作为,tvmod.

绘制跟踪模型的参数。

绘图(tvmod)图例({“a”,“b_1”,“b_2”},“位置”,“最好的”)包含(“样本”),伊拉贝尔(“参数值”)头衔(“时变估计”)

图中包含一个Axis对象。标题为“时变估计”的Axis对象包含3个line类型的对象。这些对象表示a、b_1、b_2。

请注意,这些参数轨迹与使用递归ARX.

使用确定发生更改的时间点tvmodQ,表示模型出现突变的概率。这些时间点通过在跟踪模型上采用平滑程序来构造分段模型。

分段模型的参数值在中返回赛格,的第一个输出参数。每个连续行中的值是相应时刻基础分段模型的参数值。这些值在连续行中保持不变,只有在确定系统动力学已发生变化时才会发生变化。因此赛格是分段常数。

绘制参数的估计值A.,b1,b2.

情节(seg)标题(“参数值段”)({传奇“a”,“b1”,“b2”},“位置”,“最好的”)包含(的时间(秒)) ylabel (“参数值”)

图中包含一个轴对象。带有标题参数值段的轴对象包含3个line类型的对象。这些对象表示a、b1、b2。

样本号19周围的参数值发生了变化。价值b1从一个小值(接近0)到一个大值(接近1)。的价值b2显示了相反的模式。此值的更改B参数表示传输延迟的变化。

的第二个输出参数,v,是分段模型的损失函数(即分段模型的估计预测误差方差)。您可以使用v评估分段模型的质量。

注意,分割算法的两个最重要的输入是r2Q,第四个输入参数.在本例中,Q没有指定,因为默认值0.01就足够了。较小的值r2以及更大的Q将产生更多的分段点。要找到合适的值,可以改变r2Q通常情况下,分割算法对图像质量更敏感r2Q.

结论

评估了在线估计和数据分割技术在检测系统动力学突变方面的应用。在线估计技术为估计过程提供了更大的灵活性和更多的控制。但是,对于不频繁或突变的变化,促进基于时变参数估计平滑的自动检测技术。

相关的话题