利用频域数据估计模型gydF4y2Ba
系统识别工具箱™软件允许您使用频域数据在命令行和gydF4y2Ba系统识别gydF4y2Ba您可以使用频域数据估计连续时间和离散时间线性模型。本主题概述了工具箱中使用频域数据的模型估计。有关使用频域数据的模型估计示例,请参见gydF4y2Ba频域识别:用频域数据估计模型gydF4y2Ba.gydF4y2Ba
频域数据可以有两种类型:gydF4y2Ba
频域输入输出数据gydF4y2Ba-通过计算时域输入的傅里叶变换来获得数据,gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba),和输出,gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba),信号。数据是输入的集合,gydF4y2BaUgydF4y2Ba(gydF4y2BaωgydF4y2Ba),和输出,gydF4y2BaYgydF4y2Ba(gydF4y2BaωgydF4y2Ba),为频域信号。在工具箱中,频域输入输出数据用gydF4y2Ba
iddatagydF4y2Ba
对象。有关更多信息,请参见gydF4y2Ba表示工具箱中的频域数据gydF4y2Ba.gydF4y2Ba频率特性数据gydF4y2Ba-也称为频率函数或频率响应函数(FRF),数据包括传递函数测量,gydF4y2BaGgydF4y2Ba(gydF4y2Ba我ωgydF4y2Ba),一个系统在一个离散的频率集合gydF4y2BaωgydF4y2Ba.某一频率的频率响应数据gydF4y2BaωgydF4y2Ba告诉你线性系统如何响应相同频率的正弦输入。在工具箱中,频率响应数据用gydF4y2Ba
idfrdgydF4y2Ba
对象。有关更多信息,请参见gydF4y2Ba表示工具箱中的频域数据gydF4y2Ba.频率响应数据可通过以下方式获取:gydF4y2Ba直接测量频率响应数据值,例如使用频谱分析仪。gydF4y2Ba
对时域或频域输入输出数据进行频谱分析(gydF4y2Ba
iddatagydF4y2Ba
对象)使用诸如gydF4y2Ba水疗中心gydF4y2Ba
而且gydF4y2BaspafdrgydF4y2Ba
.gydF4y2Ba使用以下命令计算已识别线性模型的频率响应gydF4y2Ba
freqrespgydF4y2Ba
,gydF4y2Ba波德gydF4y2Ba
,gydF4y2BaidfrdgydF4y2Ba
.gydF4y2Ba
的gydF4y2Ba模型估计工作流程gydF4y2Ba使用频域数据与使用时域数据进行估计是相同的。如果需要,首先通过删除异常值和过滤数据为模型识别准备数据。然后根据数据估计一个线性参数模型,并验证估计结果。gydF4y2Ba
使用频域数据的优点gydF4y2Ba
使用频域数据有以下优点:gydF4y2Ba
数据压缩——当您将时域数据转换为频域数据时,可以压缩较长的数据记录。例如,您可以使用对数间隔频率。gydF4y2Ba
非均匀性——频域数据不需要均匀间隔。数据可以具有与频率相关的分辨率,以便在感兴趣的频率区域使用更多的数据点。例如,感兴趣的频率可以是系统的带宽范围,或者接近系统的共振。gydF4y2Ba
预滤波——频域数据的预滤波变得简单。它对应于为数据的不同频率分配不同的权重。gydF4y2Ba
连续时间信号——您可以使用频域数据表示连续时间信号,并使用该数据进行估计。gydF4y2Ba
表示工具箱中的频域数据gydF4y2Ba
在执行模型估计之前,将频域数据指定为工具箱中的对象。可以同时指定两者gydF4y2Ba连续时间和离散时间频域数据gydF4y2Ba.gydF4y2Ba
频域输入输出数据gydF4y2Ba-指定为gydF4y2Ba
iddatagydF4y2Ba
对象。在对象中存储gydF4y2BaUgydF4y2Ba(gydF4y2BaωgydF4y2Ba),gydF4y2BaYgydF4y2Ba(gydF4y2BaωgydF4y2Ba)和频率向量gydF4y2BaωgydF4y2Ba.的gydF4y2Ba域gydF4y2Ba
属性的值gydF4y2Ba“频率”gydF4y2Ba
,以指定对象包含频域信号。如果gydF4y2BaUgydF4y2Ba(gydF4y2BaωgydF4y2Ba),gydF4y2BaYgydF4y2Ba(gydF4y2BaωgydF4y2Ba)是离散时间信号的离散时间傅里叶变换,按采样间隔采样gydF4y2BaTsgydF4y2Ba
的采样间隔gydF4y2BaiddatagydF4y2Ba
对象。如果gydF4y2BaUgydF4y2Ba(gydF4y2BaωgydF4y2Ba),gydF4y2BaYgydF4y2Ba(gydF4y2BaωgydF4y2Ba)为连续时间信号的傅里叶变换,指定gydF4y2BaTsgydF4y2Ba
作为gydF4y2Ba0gydF4y2Ba
在gydF4y2BaiddatagydF4y2Ba
对象。gydF4y2Ba要在命令行上绘制数据,请使用gydF4y2Ba
情节gydF4y2Ba
命令。gydF4y2Ba例如,您可以绘制频域输入输出数据的相位和幅值。gydF4y2Ba
加载时域输入输出数据。gydF4y2Ba
负载gydF4y2Baiddata1gydF4y2Baz1gydF4y2Ba
时域输入gydF4y2Ba
ugydF4y2Ba
和输出gydF4y2BaygydF4y2Ba
存储在gydF4y2Baz1gydF4y2Ba
,一个gydF4y2BaiddatagydF4y2Ba
的对象gydF4y2Ba域gydF4y2Ba
属性设置为gydF4y2Ba“时间”gydF4y2Ba
.gydF4y2Ba对数据进行傅里叶变换,得到频域输入输出数据。gydF4y2Ba
zf = fft (z1);gydF4y2Ba
的gydF4y2Ba
域gydF4y2Ba
的属性gydF4y2BazfgydF4y2Ba
被设置为gydF4y2Ba“频率”gydF4y2Ba
,表示为频域数据。gydF4y2Ba画出频域输入输出数据的幅值和相位。gydF4y2Ba
情节(zf)gydF4y2Ba
频率特性数据gydF4y2Ba-指定为gydF4y2Ba
idfrdgydF4y2Ba
对象。如果您有控制系统工具箱™软件,您还可以将数据指定为gydF4y2Ba的朋友gydF4y2Ba
(控制系统工具箱)gydF4y2Ba对象。gydF4y2Ba要在命令行上绘制数据,请使用gydF4y2Ba
波德gydF4y2Ba
命令。gydF4y2Ba例如,可以绘制传递函数模型的频率响应图。gydF4y2Ba
创建系统的传递函数模型。gydF4y2Ba
Sys = tf([1 0.2],[1 2 1 1]);gydF4y2Ba
计算传递函数模型的频响,gydF4y2Ba
sysgydF4y2Ba
,在100个频率点。将频率范围指定为0.1 rad/s到10 rad/s。gydF4y2Ba频率= logspace (1100);frdModel = idfrd (sys、频率);gydF4y2Ba
绘制模型的频率响应图。gydF4y2Ba
波德(frdModel)gydF4y2Ba
有关频域数据类型以及如何指定它们的详细信息,请参见gydF4y2Ba频域数据表示gydF4y2Ba.gydF4y2Ba
还可以使用以下命令在频域和时域数据类型之间进行转换。gydF4y2Ba
原始数据格式gydF4y2Ba | 时域数据gydF4y2Ba (gydF4y2Ba iddatagydF4y2Ba 对象)gydF4y2Ba |
频域数据gydF4y2Ba (gydF4y2Ba iddatagydF4y2Ba 对象)gydF4y2Ba |
频率特性数据gydF4y2Ba (gydF4y2Ba idfrdgydF4y2Ba 对象)gydF4y2Ba |
---|---|---|---|
时域数据gydF4y2Ba (gydF4y2Ba iddatagydF4y2Ba 对象)gydF4y2Ba |
N/AgydF4y2Ba | 使用gydF4y2BafftgydF4y2Ba |
|
频域数据gydF4y2Ba (gydF4y2Ba iddatagydF4y2Ba 对象)gydF4y2Ba |
使用gydF4y2Ba传输线gydF4y2Ba (仅适用于均匀间隔的频域数据)。gydF4y2Ba |
N/AgydF4y2Ba |
|
频率特性数据gydF4y2Ba (gydF4y2Ba idfrdgydF4y2Ba 对象)gydF4y2Ba |
不支持gydF4y2Ba | 使用gydF4y2BaiddatagydF4y2Ba .该软件创建了一个频域gydF4y2BaiddatagydF4y2Ba 对象,该对象的输出与输入之比与原始对象相同gydF4y2BaidfrdgydF4y2Ba 对象频率特性数据。gydF4y2Ba |
|
有关在应用程序中或在命令行中数据类型之间转换的更多信息,请参见gydF4y2Ba转换数据gydF4y2Ba分类页面。gydF4y2Ba
连续时间和离散时间频域数据gydF4y2Ba
与时域数据不同,采样时间gydF4y2BaTsgydF4y2Ba
的频率域数据可以为零。频域数据为零gydF4y2BaTsgydF4y2Ba
称为连续时间数据。频域数据gydF4y2BaTsgydF4y2Ba
大于零的数据称为离散时间数据。gydF4y2Ba
可获得连续时间频域数据(gydF4y2BaTsgydF4y2Ba
= 0)gydF4y2Ba:gydF4y2Ba
从已知的连续时间解析表达式生成数据。gydF4y2Ba
例如,假设你知道系统的频率响应是gydF4y2Ba ,在那里gydF4y2BabgydF4y2Ba是一个常数。同时假设系统的时域输入是,gydF4y2Ba ,在那里gydF4y2Ba一个gydF4y2Ba一个常数是否大于零,和gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba)对所有时间都是零gydF4y2BatgydF4y2Ba小于零。你可以计算的傅里叶变换gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba)获得gydF4y2Ba
使用gydF4y2BaUgydF4y2Ba(gydF4y2BaωgydF4y2Ba),gydF4y2BaGgydF4y2Ba(gydF4y2BaωgydF4y2Ba)则可得到输出的频域表达式:gydF4y2Ba
的解析表达式现在可以求值gydF4y2BaYgydF4y2Ba(gydF4y2BaωgydF4y2Ba),gydF4y2BaUgydF4y2Ba(gydF4y2BaωgydF4y2Ba)在频率值的网格上gydF4y2Ba ,得到频域输入输出数据值的向量gydF4y2Ba .您可以将输入输出数据打包为连续时间数据gydF4y2Ba
iddatagydF4y2Ba
对象,通过指定零采样时间,gydF4y2BaTsgydF4y2Ba
.gydF4y2Bat = 0;zf = iddata (Ygrid Ugrid, Ts,gydF4y2Ba“频率”gydF4y2Bawgrid)gydF4y2Ba
计算连续时间线性系统在频率网格上的频率响应。gydF4y2Ba
例如,在下面的代码中,您生成连续时间频率响应数据,gydF4y2Ba
FRDcgydF4y2Ba
,从连续时间传递函数模型,gydF4y2BasysgydF4y2Ba
对于频率的网格,gydF4y2Ba频率gydF4y2Ba
.gydF4y2BaSys = idtf(1,[1 2 2]);频率= logspace (2100);FRDc = idfrd (sys、频率);gydF4y2Ba
测量振幅和相位从正弦实验,其中测量系统使用抗混叠滤波器。测量系统对不同频率正弦输入的响应,并将数据打包为gydF4y2Ba
idfrdgydF4y2Ba
对象。例如,用频谱分析仪测量的频率响应数据是连续时间的。gydF4y2Ba您还可以通过使用周期的、连续时间的信号(多个正弦波)作为系统的输入来进行实验,并测量系统的响应。然后可以将输入和输出数据打包为gydF4y2Ba
iddatagydF4y2Ba
对象。gydF4y2Ba
可获得离散时间频域数据(gydF4y2BaTsgydF4y2Ba
>0)以下列方式gydF4y2Ba:gydF4y2Ba
使用离散傅里叶变换对测量的时域值进行变换。gydF4y2Ba
例如,在下面的代码中,计算时域数据的离散傅里叶变换,gydF4y2Ba
ygydF4y2Ba
,在采样时间为0.01秒的离散时间点上测量。gydF4y2Bat = 0:0.01:10;y = iddata(罪(2 *π* 10 * t), [], 0.01);Y = fft (Y);gydF4y2Ba
计算离散时间线性系统的频响。gydF4y2Ba
例如,在以下代码中,您生成离散时间频率响应数据,gydF4y2Ba
FRDdgydF4y2Ba
,从离散时间传递函数模型,gydF4y2BasysgydF4y2Ba
.为创建离散时间模型指定一个非零采样时间。gydF4y2BaTs = 1;sys = idtf(1,[1 0.2 2.1],Ts);FRDd = idfrd (sys, logspace (2100);gydF4y2Ba
您可以使用连续时间频域数据仅识别连续时间模型。您可以使用离散时间频域数据来识别离散时间和连续时间模型。然而,从离散时间数据中识别连续时间模型需要了解数据的样本间行为。有关更多信息,请参见gydF4y2Ba连续时间和离散时间模型的估计gydF4y2Ba.gydF4y2Ba
请注意gydF4y2Ba
对于离散时间数据,软件在估计过程中忽略奈奎斯特频率以上的频域数据。gydF4y2Ba
用于模型估计的频域数据预处理gydF4y2Ba
在你用gydF4y2BaiddatagydF4y2Ba
或gydF4y2BaidfrdgydF4y2Ba
对象,您可以通过删除虚假数据和过滤数据来准备用于估计的数据。gydF4y2Ba
若要查看虚假数据,请在应用程序中绘制数据,或使用gydF4y2Ba情节gydF4y2Ba
(gydF4y2BaiddatagydF4y2Ba
对象)或gydF4y2Ba波德gydF4y2Ba
(gydF4y2BaidfrdgydF4y2Ba
对象)的命令。识别出图表中的虚假数据后,可以删除它们。例如,如果您想删除20-30个数据点gydF4y2BazfgydF4y2Ba
,一个频域gydF4y2BaiddatagydF4y2Ba
对象,使用以下语法:gydF4y2Ba
zf (20:30) = [];gydF4y2Ba
由于频域数据不必用统一的间距指定,因此不需要替换异常值。gydF4y2Ba
您还可以预先过滤数据中的高频噪声。您可以在应用程序中预过滤频域数据,或使用gydF4y2BaidfiltgydF4y2Ba
在命令行。预滤波数据还可以帮助消除低频干扰漂移。除了最小化噪声之外,预滤波还可以让您将模型聚焦在特定的频带上。感兴趣的频率范围通常对应于波德图上断点上的通带。例如,如果您正在为控制设计应用程序建模一个工厂,您可以预先过滤数据,以增强所需闭环带宽周围的频率。gydF4y2Ba
有关更多信息,请参见gydF4y2Ba过滤数据gydF4y2Ba.gydF4y2Ba
线性参数模型的估计gydF4y2Ba
在对频域数据进行预处理之后,就可以使用它来gydF4y2Ba估计连续时间和离散时间模型gydF4y2Ba.gydF4y2Ba
支持模型类型gydF4y2Ba
您可以使用频域数据估计以下线性参数模型。除ARX模型外,未估计模型的噪声成分。gydF4y2Ba
模型类型gydF4y2Ba | 额外的信息gydF4y2Ba | 估计命令gydF4y2Ba | App中的估算gydF4y2Ba |
---|---|---|---|
传递函数模型gydF4y2Ba | 看到gydF4y2Ba在系统辨识App中估计传递函数模型gydF4y2Ba.gydF4y2Ba | ||
状态空间模型gydF4y2Ba | 估计gydF4y2BaKgydF4y2Ba 状态空间模型的矩阵为零。gydF4y2Ba |
看到gydF4y2Ba在系统识别应用程序中估计状态空间模型gydF4y2Ba.gydF4y2Ba | |
流程模型gydF4y2Ba | 扰动模型未估计。gydF4y2Ba | 看到gydF4y2Ba使用应用程序估计过程模型gydF4y2Ba.gydF4y2Ba | |
输入-输出多项式模型gydF4y2Ba | 你只能估计输出误差和ARX模型。gydF4y2Ba |
|
看到gydF4y2Ba在应用程序中估计多项式模型gydF4y2Ba.gydF4y2Ba |
线性灰色矩形模型gydF4y2Ba | 只与噪声矩阵相关的模型参数gydF4y2BaKgydF4y2Ba 不估计。gydF4y2Ba |
灰盒模型估计在应用程序中不可用。gydF4y2Ba | |
相关模型gydF4y2Ba (脉冲响应模型)gydF4y2Ba |
看到gydF4y2Ba利用系统辨识应用程序估计脉冲响应模型gydF4y2Ba.gydF4y2Ba | ||
频率特性模型gydF4y2Ba (估计gydF4y2Ba idfrdgydF4y2Ba 对象)gydF4y2Ba |
看到gydF4y2Ba在App中估计频率响应模型gydF4y2Ba.gydF4y2Ba |
在执行估计之前,您可以指定估计选项,例如软件如何处理估计数据的初始条件。要在命令行上执行此操作,请使用与评估命令相对应的评估选项集。例如,假设你想从频域数据中估计一个传递函数模型,gydF4y2BazfgydF4y2Ba
,您还需要估计数据的初始条件。使用gydF4y2BatfestOptionsgydF4y2Ba
选项集指定估计选项,然后估计模型。gydF4y2Ba
选择= tfestOptions (gydF4y2Ba“InitialCondition”gydF4y2Ba,gydF4y2Ba“估计”gydF4y2Ba);sys =特遣部队(zf,选择);gydF4y2Ba
sysgydF4y2Ba
是估计的传递函数模型。有关从模型中提取估计参数值的信息,请参见gydF4y2Ba提取数值模型数据gydF4y2Ba.在执行评估之后,您可以这样做gydF4y2Ba验证估计的模型gydF4y2Ba.gydF4y2Ba
请注意gydF4y2Ba
时域数据的零初始条件并不意味着相应频域数据的零初始条件。对于时域数据,零初始条件意味着在开始收集数据之前,假定系统处于静止状态。在频域中,只有当采集到的数据具有周期性时,初始条件才可以忽略。因此,如果您收集了初始条件为零的时域数据,并将其转换为频域数据来估计一个模型,那么您还必须估计初始条件。不能将它们指定为零。gydF4y2Ba
您不能使用频域数据进行以下估计:gydF4y2Ba
对线性模型噪声分量的估计,ARX模型除外。gydF4y2Ba
非线性模型的估计gydF4y2Ba.gydF4y2Ba
仅使用频谱数据的时间序列模型估计。频谱数据是一个信号的功率谱,通常存储在gydF4y2Ba
SpectrumDatagydF4y2Ba
财产的gydF4y2BaidfrdgydF4y2Ba
对象。gydF4y2Ba使用递归算法的在线估计gydF4y2Ba.gydF4y2Ba
连续时间和离散时间模型的估计gydF4y2Ba
你可以估计所有的gydF4y2Ba支持线性模型gydF4y2Ba作为离散时间模型,流程模型除外。流程模型仅在连续时间中定义。对于离散时间模型的估计,必须使用离散时间数据。gydF4y2Ba
您可以将所有支持的线性模型估计为连续时间模型,除了相关模型(参见gydF4y2Ba冲动gydF4y2Ba
).您可以使用连续时间和离散时间数据来估计连续时间模型。有关连续时间和离散时间数据的信息,请参见gydF4y2Ba连续时间和离散时间频域数据gydF4y2Ba.gydF4y2Ba
如果使用离散时间数据估计连续时间模型,则必须指定gydF4y2Baintersample行为gydF4y2Ba的数据。样本间行为的规范取决于频域数据的类型。gydF4y2Ba
离散时间频域输入输出数据(gydF4y2Ba
iddatagydF4y2Ba
-指定时域输入信号的样本间行为gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba)进行傅里叶变换得到频域输入信号gydF4y2BaUgydF4y2Ba(gydF4y2BaωgydF4y2Ba).gydF4y2Ba离散时间频率响应数据(gydF4y2Ba
idfrdgydF4y2Ba
该数据是通过计算离散时间模型的频率响应生成的。指定样本间行为作为从基础连续时间模型计算离散时间模型的离散化方法。示例请参见gydF4y2Ba指定离散时频率响应数据的样本间行为gydF4y2Ba.gydF4y2Ba
您可以指定样本间行为为分段常数(零阶保持器)、在样本之间线性插值(一阶保持器)或带限制。如果您指定来自系统的离散时间数据为带限制(即没有超过Nyquist频率的功率),则软件通过将采样时间设置为零将数据视为连续时间。然后,该软件根据数据估计一个连续时间模型。有关更多信息,请参见gydF4y2Ba输入样本间行为对连续时间模型的影响gydF4y2Ba.gydF4y2Ba
指定离散时频率响应数据的样本间行为gydF4y2Ba
这个例子展示了样本间行为对使用离散时间频率响应数据的连续时间模型估计的影响。gydF4y2Ba
生成离散时间频率响应数据。为此,首先构建一个连续时间传递函数模型,gydF4y2BasysgydF4y2Ba
.然后把它转换成离散时间模型,gydF4y2BasysdgydF4y2Ba
,使用gydF4y2Ba汇集gydF4y2Ba
命令和一阶保持(FOH)方法。使用离散时间模型gydF4y2BasysdgydF4y2Ba
要生成特定频率的频率响应数据,gydF4y2Ba频率gydF4y2Ba
.gydF4y2Ba
Sys = idtf([1 0.2],[1 2 1 1]);sysd =汇集(sys 1 c2dOptions (gydF4y2Ba“方法”gydF4y2Ba,gydF4y2Ba“呸”gydF4y2Ba));频率= logspace (1 0 10);FRdata = idfrd (sysd、频率);gydF4y2Ba
FRdatagydF4y2Ba
离散数据。软件设置gydF4y2BaInterSamplegydF4y2Ba
的属性gydF4y2BaFRdatagydF4y2Ba
来gydF4y2Ba“呸”gydF4y2Ba
,即采用离散化方法得到gydF4y2BasysdgydF4y2Ba
从gydF4y2BasysgydF4y2Ba
.gydF4y2Ba
从离散时间数据估计一个三阶连续时间传递函数。gydF4y2Ba
model1 =特遣部队(FRdata 3 1)gydF4y2Ba
model1 = s + 0.2 ------------------- s^3 + 2 s^2 + s + 1连续时间识别传递函数。参数化:极点数:3零数:1自由系数数:5参数及其不确定性使用"tfdata", "getpvec", "getcov"。状态:使用TFEST对频率响应数据“FRdata”进行估计。拟合估计数据:100% FPE: 2.223e-31, MSE: 6.619e-32gydF4y2Ba
model1gydF4y2Ba
是一个连续时间模型,估计使用离散时间频率响应数据。原始三阶模型的基本连续时间动力学gydF4y2BasysgydF4y2Ba
中检索gydF4y2Bamodel1gydF4y2Ba
因为正确的样本间行为在gydF4y2BaFRdatagydF4y2Ba
.gydF4y2Ba
现在,指定样本间行为为零阶保持器(ZOH),并估计一个三阶传递函数模型。gydF4y2Ba
FRdata。InterSample =gydF4y2Ba“zoh”gydF4y2Ba;model2 =特遣部队(FRdata 3 1)gydF4y2Ba
model2 = -15.49 - 3.294 --------------------------------- ^ 3 - 30.03年代^ 2 - 6.825 s - 17.04连续时间确定传递函数。参数化:极点数:3零数:1自由系数数:5参数及其不确定性使用"tfdata", "getpvec", "getcov"。状态:使用TFEST对频率响应数据“FRdata”进行估计。拟合估计数据:94.71% FPE: 0.004856, MSE: 0.001619gydF4y2Ba
model2gydF4y2Ba
没有捕捉到原始模型的动态gydF4y2BasysgydF4y2Ba
.因此,当样本间行为没有正确指定时,在模型估计中引入了抽样相关误差。gydF4y2Ba
将频率响应数据模型转换为传递函数gydF4y2Ba
这个例子展示了如何将频率响应数据(FRD)模型转换为传递函数模型。将FRD模型作为估计数据,然后估计传递函数。gydF4y2Ba
获取FRD模型。gydF4y2Ba
例如,使用gydF4y2Ba波德gydF4y2Ba
得到以下五阶系统的幅值和相位响应数据:gydF4y2Ba
使用0.1 rad/s到10 rad/s之间的100个频率点得到FRD模型。使用gydF4y2Ba的朋友gydF4y2Ba
创建一个频率响应模型对象。gydF4y2Ba
频率= logspace (1100);Sys0 = tf([1 0.2],[1 1 0.8 0.4 0.12 0.04]);(杂志、相位)=预示(sys0频率);frdModel =朋友(玛格。* exp (1 j *期*π/ 180),频率);gydF4y2Ba
通过估计一个具有3个零和3个极点的传递函数,得到系统动力学的最佳三阶近似。gydF4y2Ba
np = 3;新西兰= 3;sys =特遣部队(frdModel、np、新西兰);gydF4y2Ba
sysgydF4y2Ba
是估计的传递函数。gydF4y2Ba
比较FRD模型和估计传递函数模型的响应。gydF4y2Ba
波德(frdModel sys,频率(1:50));gydF4y2Ba
FRD模型是由五阶系统生成的gydF4y2Basys0gydF4y2Ba
.而gydF4y2BasysgydF4y2Ba
的三阶近似,并没有捕捉到的整个响应gydF4y2Basys0gydF4y2Ba
,它能很好地捕获响应,直到大约0.6 rad/s。gydF4y2Ba
验证估计模型gydF4y2Ba
在为您的系统估计一个模型之后,您可以验证它是否在可接受的范围内再现系统行为。建议您使用单独的数据集来估计和验证您的模型。您可以使用时域或频域数据来验证使用频域数据估计的模型。如果您正在使用输入-输出验证数据来验证估计的模型,您可以将模拟的模型响应与测量的验证数据输出进行比较。如果您的验证数据是频率响应数据,您可以将其与模型的频率响应进行比较。例如,比较估计模型的输出gydF4y2BasysgydF4y2Ba
测量的验证数据gydF4y2BazvgydF4y2Ba
,使用以下语法:gydF4y2Ba
比较(zv sys);gydF4y2Ba
您还可以执行残差分析。更多信息请参见,gydF4y2Ba评估后的模型验证gydF4y2Ba.gydF4y2Ba
故障排除频域识别gydF4y2Ba
当您使用频域数据估计一个模型时,估计算法将损失(成本)函数最小化。例如,如果从频率响应数据估计一个SISO线性模型gydF4y2BafgydF4y2Ba
,估计算法使以下最小二乘损失函数最小:gydF4y2Ba
在这里gydF4y2BaWgydF4y2Ba
是你指定的一个与频率相关的权重,gydF4y2BaGgydF4y2Ba
是要估计的线性模型,ω是频率,和gydF4y2BaNgydF4y2BafgydF4y2Ba是数据可用的频率数。的数量gydF4y2Ba
是频率响应误差。对于频域输入输出数据,该算法使输出误差的加权范数最小,而不是使频率响应误差最小。有关更多信息,请参见gydF4y2Ba损失函数和模型质量度量gydF4y2Ba.在估计过程中,数据中的虚假或未捕获的动态会影响损失函数,导致模型估计不理想。gydF4y2Ba
意想不到的,虚假的动力gydF4y2Ba-当数据的高幅值区域有低信噪比时通常观察到。这些数据部分的拟合误差对损失函数有很大的贡献。因此,估计算法可能会在这些区域内对噪声进行过拟合,给噪声分配意料之外的动态。解决此问题的方法:gydF4y2Ba
提高信噪比——您可以收集多个数据集,并对它们进行平均。方法组合多个数据集,如果您有频域输入输出数据gydF4y2Ba
合并gydF4y2Ba
命令。使用此数据进行估计,以获得改进的结果。或者,您可以筛选数据集,并使用它进行估计。例如,在数据上使用移动平均滤波器来平滑测量的响应。只在你确信不光滑是由于噪声而不是由于系统动力学的数据区域应用平滑滤波器。gydF4y2Ba减少某些数据部分对损失函数的影响——可以指定与频率相关的权重。例如,如果您正在估计传递函数模型,请指定中的权重gydF4y2Ba
WeightingFiltergydF4y2Ba
估计选项集的选项gydF4y2BatfestOptionsgydF4y2Ba
.在存在伪动态的频率区域指定一个小权重。或者,在这个频率区域使用更少的数据点。gydF4y2Ba
未捕获的动力学gydF4y2Ba—当你想要捕捉的动态相对于其他数据的幅度较低时,通常会观察到这一点。由于对低震级数据的较差拟合对损失函数的贡献较小,算法可以忽略这些动态以减少其他频率的误差。解决此问题的方法:gydF4y2Ba
指定一个与频率相关的权重——为您希望捕获动态的频率区域指定一个较大的权重。gydF4y2Ba
在这个区域使用更多的数据点。gydF4y2Ba
有关这些故障排除技术的示例,请参见gydF4y2Ba处理传递函数模型的频域识别问题gydF4y2Ba.gydF4y2Ba
如果使用这些故障排除技术不能获得令人满意的模型,请尝试不同的模型结构或估计算法。gydF4y2Ba
确定模型后的下一步gydF4y2Ba
在估计一个模型之后,您可以执行模型转换,提取模型参数,并模拟和预测模型响应。你可以执行的任务有:gydF4y2Ba
线性模型表示之间的转换gydF4y2Ba-在线性参数模型表示之间进行转换,例如在多项式、状态空间和零极表示之间进行转换。gydF4y2Ba
提取数值模型数据gydF4y2Ba-例如,提取模型的极点和零点使用gydF4y2Ba
极gydF4y2Ba
而且gydF4y2Ba零gydF4y2Ba
命令,分别。计算一组指定频率的模型频率响应gydF4y2BafreqrespgydF4y2Ba
.gydF4y2Ba