主要内容gydF4y2Ba

利用频域数据估计模型gydF4y2Ba

系统识别工具箱™软件允许您使用频域数据在命令行和中识别线性模型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模型估计工作流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

    图中包含4个轴对象。标题为y1的Axes对象1包含一个line类型的对象。该对象表示zf。Axes对象2包含一个类型为line的对象。该对象表示zf。标题为u1的坐标轴对象3包含一个line类型的对象。该对象表示zf。Axes对象4包含一个line类型的对象。该对象表示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

    图中包含2个轴对象。Axes对象1包含一个line类型的对象。该对象表示frdModel。Axes对象2包含一个类型为line的对象。该对象表示frdModel。gydF4y2Ba

有关频域数据类型以及如何指定它们的详细信息,请参见gydF4y2Ba频域数据表示gydF4y2Ba.gydF4y2Ba

还可以使用以下命令在频域和时域数据类型之间进行转换。gydF4y2Ba

原始数据格式gydF4y2Ba 到时域数据gydF4y2Ba
(gydF4y2BaiddatagydF4y2Ba对象)gydF4y2Ba
到频域数据gydF4y2Ba
(gydF4y2BaiddatagydF4y2Ba对象)gydF4y2Ba
到频率响应数据gydF4y2Ba
(gydF4y2BaidfrdgydF4y2Ba对象)gydF4y2Ba
时域数据gydF4y2Ba
(gydF4y2BaiddatagydF4y2Ba对象)gydF4y2Ba
N/AgydF4y2Ba 使用gydF4y2BafftgydF4y2Ba
频域数据gydF4y2Ba
(gydF4y2BaiddatagydF4y2Ba对象)gydF4y2Ba
使用gydF4y2Ba传输线gydF4y2Ba(只适用于均匀间隔的频域数据)。gydF4y2Ba N/AgydF4y2Ba
频率特性数据gydF4y2Ba
(gydF4y2BaidfrdgydF4y2Ba对象)gydF4y2Ba
不支持万博1manbetxgydF4y2Ba 使用gydF4y2BaiddatagydF4y2Ba.软件会创建一个频域gydF4y2BaiddatagydF4y2Ba对象,该对象在输出和输入之间具有与原始对象相同的比率gydF4y2BaidfrdgydF4y2Ba物体频率响应数据。gydF4y2Ba
  • 使用gydF4y2BaspafdrgydF4y2Ba.该软件计算频率响应数据的分辨率(频率的数量和间隔)与原始数据不同。gydF4y2Ba

有关在应用程序或命令行中在数据类型之间转换的更多信息,请参阅gydF4y2Ba转换数据gydF4y2Ba分类页面。gydF4y2Ba

连续时间和离散时间频域数据gydF4y2Ba

与时域数据不同,采样时间gydF4y2BaTsgydF4y2Ba频域数据的值可以为零。频域数据为零gydF4y2BaTsgydF4y2Ba称为连续时间数据。频域数据与gydF4y2BaTsgydF4y2Ba大于零的数据称为离散时间数据。gydF4y2Ba

可获得连续频域数据(gydF4y2BaTsgydF4y2Ba= 0)gydF4y2Ba:gydF4y2Ba

  • 从已知的连续时间解析表达式生成数据。gydF4y2Ba

    例如,假设你知道你的系统的频率响应是gydF4y2Ba GgydF4y2Ba (gydF4y2Ba ωgydF4y2Ba )gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba (gydF4y2Ba bgydF4y2Ba +gydF4y2Ba jgydF4y2Ba ωgydF4y2Ba )gydF4y2Ba ,在那里gydF4y2BabgydF4y2Ba是常数。同时假设系统的时域输入是,gydF4y2Ba ugydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba egydF4y2Ba −gydF4y2Ba 一个gydF4y2Ba tgydF4y2Ba 罪gydF4y2Ba wgydF4y2Ba 0gydF4y2Ba tgydF4y2Ba ,在那里gydF4y2Ba一个gydF4y2Ba常数是否大于0gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba)在任何时候都是零gydF4y2BatgydF4y2Ba小于零。你可以计算的傅里叶变换gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba)以取得gydF4y2Ba

    UgydF4y2Ba (gydF4y2Ba ωgydF4y2Ba )gydF4y2Ba =gydF4y2Ba ωgydF4y2Ba 0gydF4y2Ba /gydF4y2Ba [gydF4y2Ba (gydF4y2Ba 一个gydF4y2Ba +gydF4y2Ba jgydF4y2Ba ωgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba wgydF4y2Ba 0gydF4y2Ba 2gydF4y2Ba ]gydF4y2Ba

    使用gydF4y2BaUgydF4y2Ba(gydF4y2BaωgydF4y2Ba),gydF4y2BaGgydF4y2Ba(gydF4y2BaωgydF4y2Ba)你可以得到输出的频域表达式:gydF4y2Ba

    YgydF4y2Ba (gydF4y2Ba ωgydF4y2Ba )gydF4y2Ba =gydF4y2Ba GgydF4y2Ba (gydF4y2Ba ωgydF4y2Ba )gydF4y2Ba UgydF4y2Ba (gydF4y2Ba ωgydF4y2Ba )gydF4y2Ba

    现在可以计算的解析表达式gydF4y2BaYgydF4y2Ba(gydF4y2BaωgydF4y2Ba),gydF4y2BaUgydF4y2Ba(gydF4y2BaωgydF4y2Ba)在频率值的网格上gydF4y2Ba (gydF4y2Ba ωgydF4y2Ba ggydF4y2Ba rgydF4y2Ba 我gydF4y2Ba dgydF4y2Ba =gydF4y2Ba ωgydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba ωgydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba ...gydF4y2Ba ,gydF4y2Ba ωgydF4y2Ba ngydF4y2Ba )gydF4y2Ba ,得到频域输入输出数据值的向量gydF4y2Ba (gydF4y2Ba YgydF4y2Ba ggydF4y2Ba rgydF4y2Ba 我gydF4y2Ba dgydF4y2Ba ,gydF4y2Ba UgydF4y2Ba ggydF4y2Ba rgydF4y2Ba 我gydF4y2Ba dgydF4y2Ba )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

用于模型估计的频域数据预处理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.gydF4y2Ba

万博1manbetx支持的模型类型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
(估计gydF4y2BaidfrdgydF4y2Ba对象)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

估计连续时间和离散时间模型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

这个例子展示了样本间行为对使用离散时间频率响应数据估计连续时间模型的影响。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

将频率响应数据模型转换为传递函数gydF4y2Ba

这个例子展示了如何将频率响应数据(FRD)模型转换为传递函数模型。将FRD模型作为估计数据,然后估计传递函数。gydF4y2Ba

获取FRD模型。gydF4y2Ba

例如,使用gydF4y2Ba波德gydF4y2Ba获得以下五阶系统的幅值和相位响应数据:gydF4y2Ba

GgydF4y2Ba (gydF4y2Ba 年代gydF4y2Ba )gydF4y2Ba =gydF4y2Ba 年代gydF4y2Ba +gydF4y2Ba 0gydF4y2Ba .gydF4y2Ba 2gydF4y2Ba 年代gydF4y2Ba 5gydF4y2Ba +gydF4y2Ba 年代gydF4y2Ba 4gydF4y2Ba +gydF4y2Ba 0gydF4y2Ba .gydF4y2Ba 8gydF4y2Ba 年代gydF4y2Ba 3.gydF4y2Ba +gydF4y2Ba 0gydF4y2Ba .gydF4y2Ba 4gydF4y2Ba 年代gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba 0gydF4y2Ba .gydF4y2Ba 1gydF4y2Ba 2gydF4y2Ba 年代gydF4y2Ba +gydF4y2Ba 0gydF4y2Ba .gydF4y2Ba 0gydF4y2Ba 4gydF4y2Ba

使用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

图中包含2个轴对象。坐标轴对象1包含2个line类型的对象。这些对象表示frdModel、sys。坐标轴对象2包含2个line类型的对象。这些对象表示frdModel、sys。gydF4y2Ba

FRD模型由五阶系统生成gydF4y2Basys0gydF4y2Ba.而gydF4y2BasysgydF4y2Ba的整个响应,为三阶近似gydF4y2Basys0gydF4y2Ba,它能很好地捕捉响应,直到约0.6 rad/s。gydF4y2Ba

验证估计模型gydF4y2Ba

在为您的系统估计了一个模型之后,您可以验证它是否在可接受的范围内再现了系统行为。建议您使用单独的数据集来估计和验证您的模型。您可以使用时域或频域数据来验证使用频域数据估计的模型。如果您正在使用输入-输出验证数据来验证估计的模型,您可以将模拟的模型响应与测量的验证数据输出进行比较。如果您的验证数据是频率响应数据,您可以将其与模型的频率响应进行比较。例如,比较估计模型的输出gydF4y2BasysgydF4y2Ba测量的验证数据gydF4y2BazvgydF4y2Ba,使用以下语法:gydF4y2Ba

比较(zv sys);gydF4y2Ba

您还可以执行残差分析。欲了解更多信息,gydF4y2Ba评估后验证模型gydF4y2Ba.gydF4y2Ba

频域识别故障gydF4y2Ba

当您使用频域数据估计模型时,估计算法将使损失(成本)函数最小化。例如,如果你从频率响应数据估计一个SISO线性模型gydF4y2BafgydF4y2Ba,估计算法使最小二乘损失函数最小:gydF4y2Ba

最小化gydF4y2Ba GgydF4y2Ba (gydF4y2Ba ωgydF4y2Ba )gydF4y2Ba ∑gydF4y2Ba kgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba NgydF4y2Ba fgydF4y2Ba |gydF4y2Ba WgydF4y2Ba (gydF4y2Ba ωgydF4y2Ba kgydF4y2Ba )gydF4y2Ba (gydF4y2Ba GgydF4y2Ba (gydF4y2Ba ωgydF4y2Ba kgydF4y2Ba )gydF4y2Ba −gydF4y2Ba fgydF4y2Ba (gydF4y2Ba ωgydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba |gydF4y2Ba 2gydF4y2Ba

在这里gydF4y2BaWgydF4y2Ba是你指定的与频率相关的权重,gydF4y2BaGgydF4y2Ba是要估计的线性模型,ω是频率,和gydF4y2BaNgydF4y2BafgydF4y2Ba数据可用的频率数。的数量gydF4y2Ba (gydF4y2Ba GgydF4y2Ba (gydF4y2Ba ωgydF4y2Ba kgydF4y2Ba )gydF4y2Ba −gydF4y2Ba fgydF4y2Ba (gydF4y2Ba ωgydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 是频响误差。对于频域输入输出数据,该算法使输出误差的加权范数最小,而不是使频率响应误差最小。有关更多信息,请参见gydF4y2Ba损失函数和模型质量度量gydF4y2Ba.在估计期间,数据中的伪动态或未捕获的动态会影响损失函数并导致不满意的模型估计。gydF4y2Ba

  • 意想不到的、虚假的动态gydF4y2Ba-通常在数据的高量级区域具有低信噪比时观察到。这些数据部分的拟合误差对损失函数有很大的贡献。结果估计算法可能会对这些区域的噪声进行过拟合,并将意想不到的动态分配给噪声。解决此问题:gydF4y2Ba

    • 提高信噪比——您可以收集多组数据,并对它们求平均。如果有频域输入-输出数据,则可以使用gydF4y2Ba合并gydF4y2Ba命令。使用这些数据进行估计,以获得改进的结果。或者,您可以过滤数据集,并将其用于估计。例如,在数据上使用移动平均滤波器来平滑测量的响应。只在你确信不平滑是由于噪声而不是由于系统动力学的数据区域应用平滑滤波器。gydF4y2Ba

    • 减少数据的某些部分对损失函数的影响—您可以指定一个依赖于频率的权重。例如,如果您正在估计传递函数模型,请在中指定权重gydF4y2BaWeightingFiltergydF4y2Ba评估选项集的选项gydF4y2BatfestOptionsgydF4y2Ba.在杂散动态存在的频率区域指定一个小的权重。或者,在这个频率区域使用更少的数据点。gydF4y2Ba

  • 未捕获的动力学gydF4y2Ba-当你想要捕捉的动态相对于其他数据具有较低的量级时,通常会观察到。由于对低量级数据的较差拟合对损失函数的贡献较小,该算法可以忽略这些动态以减少其他频率的误差。解决此问题:gydF4y2Ba

    • 指定一个与频率相关的权重——为您想要捕获动态的频率区域指定一个较大的权重。gydF4y2Ba

    • 在这个区域使用更多的数据点。gydF4y2Ba

有关这些故障排除技术的示例,请参见gydF4y2Ba传递函数模型频域识别的故障排除gydF4y2Ba.gydF4y2Ba

如果使用这些故障排除技术不能获得令人满意的模型,请尝试不同的模型结构或估计算法。gydF4y2Ba

确定模型后的下一步gydF4y2Ba

在估计模型之后,您可以执行模型转换、提取模型参数以及模拟和预测模型响应。你可以执行的一些任务是:gydF4y2Ba

相关的话题gydF4y2Ba