解决频域传递函数模型的识别
这个例子展示了如何执行的识别和排除使用频率特性数据输出系统(朋友)。这里说的技术也可以应用到MIMO模型和频域输入-输出数据。
当你使用特遣部队
命令来估计从频率特性数据,输出传递函数模型估计算法最小化(成本)最小二乘损失函数如下:
在这里W
是您指定频率相关的体重,G
传递函数的估计,f
是测量频率特性数据,
是频率。Nf
是频率的数据是可用的。
频率特性是错误。
在本例中,您首先估计模型没有预处理的数据或使用估计选项指定一个加权滤波器。然后应用这些故障诊断技术来提高模型估计。
估计没有预处理和过滤模型
加载测量连续时间频率响应数据。
负载troubleshooting_example_dataGfrd;
Gfrd
是一个idfrd
对象存储数据。
估计一个初始传递函数模型有11个波兰人和10 0使用估计数据。
礼物=特遣部队(Gfrd 11 10);
画出频率特性的大小估计模型和测量频率特性数据。
bodemag (Gfrd礼物);-100年ylim([0])传说(“测量”,“估计”)
估计模型包含的动力学。估计算法忽略了山谷60 rad / s和共振峰。因此,该模型不是一个好的适合的数据。
算法最小平方误差的大小, 损失函数。这个量作为频率的函数。这个错误情节提供了一个视图的数据点贡献最损失函数,所以在估计可能的限制因素。情节可以帮助您识别为什么有虚假或未捕获的动力学。
因为你没有指定频率相关的体重, 是1。
w = Gfrd.Frequency;r1 =挤压(freqresp(礼物,w));r2 =挤压(freqresp (Gfrd w));fitError = r1-r2;semilogx (w、abs (fitError)。^ 2)标题(“加权估计误差”);包含(“频率(rad / s)”);ylabel (“(abs)级”)
从数据、模型和错误情节可以看出:
最大的拟合误差低于10 rad / s。
算法小说拟合的数据点低于10 rad / s级高,这对优化损失函数有很大的贡献。结果,算法分配伪数据区域极点和零点。为了解决这个问题,可以进行预处理数据来提高信噪比。您还可以使用频率相关权重,使算法过于关注这一地区。
低于约40 rad / s,大部分数据是由于噪声的变化。没有重大的系统模式(山谷或山峰)的数据。为了解决这个问题,您可以使用一个移动平均滤波器来平滑的数据测量的反应。
该算法忽略了山谷约60 rad / s,跟随它的三个轻阻尼谐振峰值。这些特性贡献小的损失函数,因为在这些频率拟合误差很小。为了解决这个问题,您可以指定频率相关权重,使算法更加注意这些频率。
数据进行预处理
提高质量估计模型,预处理数据。这样做,你们截断低信噪比的部分数据低于1 rad / s以上2 e4 rad / s不有趣。然后你使用移动平均滤波器平滑数据低频高震级地区低于40 rad / s。在这些频率,数据信噪比很低,但动态捕捉你感兴趣。不适用过滤器40 rad / s以上频率,以避免平滑数据,你看到下面的山谷和三峰。
复制的原始idfrd
数据对象。
GfrdProcessed = Gfrd;
截断数据低于1 rad / s以上2 e4 rad / s。
GfrdProcessed = fselect (GfrdProcessed 1 2 e4);
三点中心移动平均滤波器应用于消除频率特性数据低于40 rad / s包含虚假的动力学。数据存储在响应ResponseData
对象的属性。
w = GfrdProcessed.Frequency;f =挤压(GfrdProcessed.ResponseData);idx = w < 40;f (idx) = movmean (f (idx), 3);
在这里f (idx)
频率特性数据频率小于40 rad / s。
将过滤后的数据返回到原始的数据对象。
GfrdProcessed。ResponseData=f;
绘制原始和预处理数据。
bodemag (Gfrd GfrdProcessed);-100年ylim ([0]);传奇(“原始数据”,“预处理数据”);
图显示所有预期动力学预处理后完好无损。
指定加权滤波器
使用一个低体重10 rad /下低频区域的伪动态存在的年代。这个低体重和平滑早期应用于数据减少的可能性估计模型中的虚假的峰值响应在这个地区。
重量= 1(大小(f));idx = w < 10;重量(idx) =重量(idx) / 10;
使用高体重数据的频率范围40-6e3 rad / s,你想捕捉动态但响应数据级低。
idx = w > 40 & w < 6 e3;重量(idx) =重量(idx) * 30;
指定的权重WeightingFilter
选择评估选项集。
tfestOpt = tfestOptions (“WeightingFilter”、重量);
请注意,重量
是一个自定义加权滤波器。您还可以指定WeightingFilter
作为“发票”
或“invsqrt”
频率特性数据。这些选项指定的重量
和
,分别。这些选项允许您快速测试使用更高的低体重的影响大小区域的数据。“invsqrt”
最初通常是一个好的选择。如果这些权重不产生良好的估计的结果,您可以提供自定义权重,如本例所示。
使用预处理和过滤数据估计模型
估计一个传递函数模型有11个波兰人和10 0使用预处理数据,指定的加权滤波器。
GfitNew =特遣部队(tfestOpt GfrdProcessed 11 10日);
画出原始数据,初始模型的响应,响应的新模型。
bodemag (Gfrd,礼物,GfitNew);-100年ylim ([0]);传奇(“原始数据”,的原始模型,“新模式”);
绘制估计误差。计算包括加权滤波器的估计误差重量
用于估计GfitNew
。
w = GfrdProcessed.Frequency;r1 =挤压(freqresp (GfitNew w));r2 =挤压(freqresp (GfrdProcessed w));fitErrorNew =重量。* (r1-r2);semilogx (w、abs (fitErrorNew)。^ 2)标题(“加权估计误差”);包含(“频率(rad / s)”);ylabel (“(abs)级”);
新模型成功地捕获所有感兴趣的系统动力学。
您可以使用加权误差图进行进一步的故障排除如果你最初选择的权重不产生令人满意的结果。