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