此示例显示如何使用在线估计和自动数据分段技术检测系统行为的突然变化。此示例使用系统识别工具箱™的功能,并且不需要预测性维护工具箱™。
考虑一个传输延迟从2秒到1秒的线性系统。传输延迟是输入影响测量输出所花费的时间。在本例中,您使用在线估计和数据分割技术检测传输延迟的变化。从系统测量的输入输出数据可在数据文件中找到pdmAbruptChangesData.mat
.
加载并绘制数据。
负载pdmAbruptChangesData.matz = iddata(z(:,1),z(:,2));绘图(z)网格在
运输延迟变化发生在20秒左右,但在绘图中不容易看到。
使用ARX结构与一个模拟系统一个
多项式系数,两B
多项式系数,一个延时。
在这里,A = [1 A]
和b = [0 b1 b2]
.
的前导系数B
多项式为零,因为该模型没有馈通。随着系统动态的变化,三个系数的值一个
,b1
, 和b2
改变。什么时候b1
接近零,有效的运输延迟将是2个样品,因为B
多项式有2个前导零。什么时候b1
较大,有效的运输延迟将是1个样品。
因此,要检测传输延迟中的更改,可以监视B
多项式系数。
随着新数据可用,在线估计算法更新模型参数和状态估计,递归方式。您可以使用Simulink块从系统识别工具箱库或使用递归识别例程执行在线估计,例金宝app如recursiveARX
.在线估计可用于模拟时变动力学,例如老化机械和改变天气模式,或者检测机电系统中的故障。
当估计器更新模型参数时,系统动力学的变化(延迟)将表现为参数值的变化大于通常的变化b1
和b2
.的变化B
多项式系数将被计算跟踪:
使用recursiveARX
对象在线估计ARX模型的参数。
na = 1;NB = 2;nk = 1;估计器= revsusiveAlex([na nb nk]);
指定递归估计算法为标准化的
并且适应增益为0.9。
估计量。EstimationMethod ='规范化普罗迪兰';估计量。一个daptationGain = .9;
从中提取原始数据iddata.
目的,z
.
输出= z.OutputData;输入= z.InputData;t = z.SamplingInstants;N =长度(t);
使用动画行绘制估计的参数值和l
.在估计之前初始化这些动画行。为了模拟流数据,一次将数据馈送到估计器一个样本。在估计之前初始化模型参数,然后执行在线估计。
%%初始化图颜色= {“r”,'G',“b”};甘氨胆酸ax =;班(ax)为K = 3:-1:1 h(K) = animatedline'颜色'、颜色{k});A,B1和B2参数的%行结束h (4) = animatedline ('标记',“。”,'颜色',[0 0 0]);L的%行传奇({“一个”,“b1”,“b2”,“偏差”},'地点','东南') 标题(“ARX递归参数估计”)Xlabel('时间(秒)')ylabel(的参数值)ax.xlim = [t(1),t(端)];AX.YLIM = [-2,2];网格在盒子在%%现在执行递归估计并显示结果n0 = 6;L =南(N、nk);B_old =南(1、3);为ct = 1:n [a,b] =步骤(估算器,输出(CT),输入(CT));如果CT> N0 L(CT)=规范(B-B_old);b_old = b;结束addpoints(h(1),t(ct),a(2))addpoints(h(2),t(ct),b(2))addpoints(h(3),t(ct),b(3))addpoints(h(4),t(ct),l(ct))暂停(0.1)结束
首先N0.
= 6数据样本不用于计算变化检测器,l
.在此区间内,由于初始条件未知,参数变化较大。
找出所有山峰的位置l
通过使用findpeaks.
来自信号处理工具箱的命令。
(v, Loc) = findpeaks (L);[~,我]= max (v);线(t (Loc (I)), L (Loc (I)),“父”,斧头,'标记','o','markeredgecolor',“r”,...'markerfacecolor','是','Markersize', 12)
流('在样本数%d.\n检测到系统延迟变化'疯狂的(我));
在样本号21处检测到的系统延迟变化。
最大峰值的位置对应于最大的变化B
因此,多项式系数,并且是传输延迟变化的位置。
虽然在线估计技术提供了更多选择用于选择估计方法和模型结构的选项,但数据分段方法可以帮助自动化突然和隔离变化。
数据分割算法自动将数据分割成不同动态行为的区域。这对于捕获由于故障或操作条件变化而引起的突然变化非常有用。的段
命令为单输出数据提供此操作。段
当您不需要捕获系统运行期间的时变行为时,是在线估计技术的一种替代方法。
数据分割的应用包括语音信号的分割(每一段对应一个音素)、故障检测(每段对应有故障和无故障的操作)以及系统不同工作模式的估计。
的输入段
命令包括测量的数据,模型订单,以及对方差的猜测,r2
,影响系统的噪声。如果方差完全未知,则可以自动估计。使用与在线估计相同的订单的ARX模型执行数据分段。将方差设置为0.1。
[seg,V,tvmod] = segment(z,[na nb nk],0.1);
分割方法基于AFMM(通过多种模型的自适应忘记)。有关该方法的详细信息,请参阅Andersson,INT。J.控制1985年11月。
多模型方法用于跟踪时变系统。得到的跟踪模型是多个模型的平均值,并且作为第三个输出参数返回段
,TVMOD.
.
绘制跟踪模型的参数。
情节(TVMOD)传奇({“一个”,'b_1','b_2'},'地点',“最佳”)Xlabel(“样本”),Ylabel(的参数值) 标题('时变估计')
请注意这些参数轨迹和那些使用估计的轨迹之间的相似性recursiveARX
.
段
确定使用更改时的时间点TVMOD.
和问
,即模型出现突变的概率。通过对跟踪模型进行平滑处理,利用这些时间点来构建分段模型。
返回分段模型的参数值赛格
,第一个输出参数段
.每个连续行的值是底层分段模型在相应时刻的参数值。这些值在连续的行中保持不变,只有在确定系统动态发生变化时才会更改。因此,值赛格
是分段常数。
绘制参数的估计值一个
,b1
, 和b2
.
情节(SEG)标题(参数值段的) 传奇({“一个”,“b1”,“b2”},'地点',“最佳”)Xlabel('时间(秒)')ylabel(的参数值)
在示例第19页周围的参数值中看到了一个变化。值b1
从一个小(靠近零)变为大(接近1)值。的价值b2
显示相反的模式。这种变化的值B
参数表示传输延迟的变化。
的第二个输出参数段
,V
,是分段模型的损失函数(即分段模型的估计预测误差方差)。您可以使用V
对分割模型的质量进行评估。
注意,分段算法的两个最重要的输入是r2
和问
的第四个输入参数段
.在这个例子中,问
未指定,因为默认值为0.01,是足够的。较小的价值r2
和更大的值问
将导致更多的分割点。为了找到合适的值,您可以改变r2
和问
并使用最佳工作的人。通常,分割算法对其更敏感r2
比问
.
评估了用于检测系统动态的突然变化的在线估计和数据分段技术。在线估计技术提供更多灵活性和更多对估计过程的控制。但是,对于罕见或突然的变化,段
促进了一种基于平滑的时变参数估计的自动检测技术。