主要内容

idfrd

频响数据或模型

描述

一个idfrd对象存储频率值范围内的频率响应数据。你可以使用idfrd对象有两种方式。您可以使用对象作为估计数据来估计时域或频域模型,类似于iddata对象。或者,您可以使用对象作为线性模型,类似于如何使用中的难点状态空间模型或任何其他确定的线性模型。使用idfrd命令封装频率响应数据或将线性时域或频域动态模型转换为频率响应模型。

接受的命令iddata对象,例如模型估计命令党卫军,一般也接受idfrd对象。然而,一个idfrd对象只能包含一个实验的数据。它不具备传统的多实验能力iddata对象。

接受确定的线性模型的命令,例如分析和验证命令比较sim卡,波德,一般也接受idfrd模型。

用于表单的模型

y t G u t + H e t

传递函数估计为 G e ω 和附加噪声谱Φv输出为

Φ v ω λ T | H e ω T | 2

在这里,λ估计方差为et),T是采样时间。

对于连续时间系统,噪声谱为

Φ v ω λ | H e ω | 2

一个idfrd对象存储 G e ω 而且Φv

创建

你可以获取idfrd用三种方法之一建模。

  • 方法从频率响应数据创建模型idfrd命令。例如,创建一个idfrd封装使用采样时间在特定频率采集的频率响应数据的模型Ts

    sysfr = idfrd(ResponseData,Freq,Ts)
    有关示例,请参见从频响数据创建idfrd对象

  • 使用频响估计命令来估计模型,例如水疗中心,使用时域、频域或频响数据。

    Sysfr = spa(数据)

    有关频率响应估计命令的详细信息,请参见水疗中心spafdr,etfe

  • 转换线性模型,例如中的难点建模成idfrd通过计算模型的频率响应来建立模型。

    Sysfr = idfrd(sys)
    有关线性模型转换的示例,请参见将时域模型转换为频响模型

有关可用于从中提取信息或转换信息的函数的信息idfrd建模对象,请参见对象的功能

描述

创建频率响应对象

例子

sysfr= idfrd (ResponseData、中频率、Ts)创建一个离散时间idfrd对象,该对象存储频率响应ResponseData线性系统的频率值频率Ts是采样时间。对于连续时间系统,设置Ts0

sysfr= idfrd (___名称,值使用一个或多个名称-值参数设置其他属性。在前三个参数之后指定名称-值参数。例如,要将频率单位指定为MHz,请使用sysfr = idfrd(ResponseData,Frequency,Ts,'FrequencyUnits','MHz')

将线性辨识模型转换为频响模型

例子

sysfr= idfrd (sys将系统识别工具箱™或控制系统工具箱™线性模型转换为默认频率的频率响应数据,包括输出噪声谱和谱协方差。

sysfr= idfrd (sys、频率)计算频率处的频率响应频率,在那里频率以弧度/TimeUnit

sysfr= idfrd (sys、频率、FrequencyUnits)中的频率解释频率向量的单位FrequencyUnit

输入参数

全部展开

线性动态系统模型,指定为系统识别工具箱或控制系统工具箱线性模型。

属性

全部展开

频率响应数据,指定为三维复数数组。

  • 对于SISO系统,ResponseData是频率响应值在频率点的矢量频率财产。

  • 用于MIMO系统Nu输入和Ny输出,ResponseData是一个Ny——- - - - - -Nu——- - - - - -Nf数组,Nf是频率点的个数。

    ResponseData (kf,肯塔基州,ku)中表示来自输入的频率响应ku到输出肯塔基州在频率上频率(kf)

对应的频率点ResponseData,指定为列向量,包含Nf所指定的单位中的点FrequencyUnit

频率矢量的单位频率属性,指定为以下值之一:

  • “rad / TimeUnit”

  • “周期/ TimeUnit”

  • “rad / s”

  • “赫兹”

  • “赫兹”

  • “兆赫”

  • “GHz”

  • “转”

的单位“rad / TimeUnit”而且“周期/ TimeUnit”中指定的时间单位TimeUnit财产。

更改此属性不会重新采样或转换数据。修改属性只会改变对现有数据的解释。使用chgTimeUnit将数据转换为不同的频率单位。

系统输出扰动(噪声)的功率谱和交叉谱,指定为矢量(单输出系统)或复数的三维阵列(多输出系统)。对于响应数据,使用Ny输出和Nf频率点,指定SpectrumData作为一个Ny——- - - - - -Ny——- - - - - -Nf数组中。

SpectrumData (ky1 ky2 kf)输出噪声之间是否存在交叉谱ky1以及输出端的噪声ky2在频率上频率(kf).功率谱是其中交叉谱的子集ky1而且ky2是相等的。

协方差的SpectrumData,指定为具有维度的5维数组Ny——- - - - - -Nu——- - - - - -Nf-by-2-by-2,Ny是输出的数量,Nu输入的数量,和Nf是频率点的个数。

CovarianceData(肯塔基州,ku, kf、::)2 × 2的协方差矩阵是kf SpectrumData(肯塔基州,ku).(1,1)元素是实部的方差,(2,2)元素是虚部的方差,(1,2)和(2,1)元素是实部和虚部之间的协方差。挤压(CovarianceData (kf,肯塔基州,ku:,))从而给出相应响应的协方差矩阵。

如果你获得sysfr通过转换模型sys的值。CovarianceData这取决于你是如何获得的sys

  • 如果你得到了sys通过识别,软件计算估计的协方差sysfr从不确定信息中sys.该软件使用高斯近似公式进行所有模型类型的计算,除了灰盒模型。对于灰盒模型(idgrey),软件应用数值微分。

  • 如果你创建了sys通过使用命令中的难点idtfidprocidgrey,或idpoly,然后软件设置CovarianceDatasysfr[]

功率谱方差,指定为矢量(单输出系统)或三维阵列(多输出系统)。对于响应数据,使用Ny输出和Nf频率点,指定NoiseCovariance作为一个Ny——- - - - - -Ny——- - - - - -Nf数组中。NoiseCovariance (ky1 ky2 kf)为对应功率谱的方差。

若要消除模型中噪声分量的影响,请指定NoiseCovariance作为0.协方差为零时,预测输出与模拟输出相同。

输入信号在离散时间和连续时间之间转换时的采样间行为,指定为字符向量或Nu-by-1单元格数组的字符向量,其中Nu是输入通道的数量。只有在估计连续时间模型(采样时间)时,此属性才有意义Ts> 0)从离散时间数据。

对于每个输入通道,的可能值InterSample是:

  • “zoh”-零阶保持器在样本之间保持分段恒定的输入信号。

  • “呸”-一阶保持器在样本之间保持分段线性输入信号。

  • “提单”-带限行为指定连续时间输入信号在奈奎斯特频率(π/ sys。Tsrad / s)。当使用抗混叠滤波器和采样器对输入信号进行实验测量时,通常会发生这种行为。理想情况下,将数据视为连续时间。也就是说,如果用于估计频率响应的信号服从于抗混叠滤波器,则设置sys。Ts为零。

如果你获得sysfr通过模型转换sys,然后InterSample等于Intersample的属性iddata用于估计的对象sys

有关此属性的详细信息,请参见输入样本间行为对连续时间模型的影响

传输延迟,指定为一个数字数组,其中包含每个输入-输出对的单独传输延迟。

中存储的时间单位表示传输延迟TimeUnit财产。对于离散时间系统,传输延迟用整数表示,表示延迟是采样时间的倍数Ts

对于MIMO系统Ny输出和Nu输入,设置IODelay作为一个Ny——- - - - - -Nu数组中。该数组的每个条目都是一个数值,表示对应输入-输出对的传输延迟。你可以设置IODelay对所有输入-输出对应用相同的延迟。

每个输入通道的输入延迟,指定为标量值或数字向量。方法中存储的时间单位指定输入延迟TimeUnit财产。对于离散时间系统,指定输入延迟为采样时间的整数倍Ts.例如,设置InputDelay3.指定三个采样时间的延迟。

对于一个系统Nu输入,设置InputDelay到一个Nu1的向量。该向量的每一项都是一个数值,表示对应输入通道的输入延迟。

你也可以设置InputDelay到一个标量值,以便对所有通道应用相同的延迟。

对于已识别的系统,例如idfrdOutputDelay固定为零。

采样时间,指定为下列之一。

  • 具有指定采样时间的离散时间模型-一个正标量,表示以指定单位表示的采样周期TimeUnit模型属性

  • 连续时间模型-0

  • 不确定采样时间的离散时间模型-1

更改此属性不会对模型进行离散化或重新采样。使用汇集而且d2c在连续时间表示和离散时间表示之间进行转换。使用d2d改变离散时间系统的采样时间。

时间变量的单位是采样时间Ts,以及模型中的任何时间延迟,指定为以下值之一。

  • “纳秒”

  • 微秒的

  • 的毫秒

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

更改此属性不会重新采样或转换数据。修改属性只会改变对现有数据的解释。使用chgTimeUnit(控制系统工具箱)将数据转换为不同的时间单位

输入通道名称,指定为字符向量或单元格数组。

  • 单输入模型-字符向量。例如,“控制”

  • 多输入模型-字符向量的单元数组。

或者,使用自动向量展开为多输入模型分配输入名称。例如,如果sys是一个双输入模型,输入:

sys。InputName =“控制”

输入名称自动展开为{“控制(1)”,“控制”(2)}

当你估计一个模型使用iddata对象数据,软件自动设置InputName数据。InputName

你可以用速记法u请参阅InputName财产。例如,sys.u等于sys。InputName

你可以通过几种方式使用输入通道名,包括:

  • 识别模型显示和图上的通道

  • 提取MIMO系统的子系统

  • 在连接模型时指定连接点

输入通道单位,指定为字符向量或单元格数组:

  • 单输入模型-字符向量

  • 多输入模型-字符向量的单元数组

使用InputUnit跟踪输入信号单位。InputUnit对系统行为没有影响。

输入通道组,指定为结构。的InputGroup属性允许您将MIMO系统的输入通道划分为组,以便您可以通过名称引用每个组。在InputGroup结构,将字段名设置为组名,将字段值设置为属于每个组的输入通道。

例如,创建名为控制而且噪音分别包括输入通道1和2以及通道3和5。

sys.InputGroup.controls = [1 2];sys.InputGroup.noise = [3 5];

然后,您可以从控制使用以下语法输入所有输出:

sys (:,“控制”

输出通道名称,指定为字符向量或单元格数组。

  • 单输入模型-字符向量。例如,“测量”

  • 多输入模型-字符向量的单元数组

或者,使用自动向量展开为多输出模型分配输出名称。例如,如果sys是一个双输出模型,输入:

sys。OutputName =“测量”

输出名称自动展开为{“测量(1)”,“测量”(2)}

当你估计一个模型使用iddata对象数据,软件自动设置OutputName数据。OutputName

你可以用速记法y请参阅OutputName财产。例如,sys.y等于sys。OutputName

你可以通过多种方式使用输出通道名,包括:

  • 识别模型显示和图上的通道

  • 提取MIMO系统的子系统

  • 在连接模型时指定连接点

输出通道单元,指定为字符向量或单元格数组。

  • 单输入模型-字符向量。例如,“秒”

  • 多输入模型-字符向量的单元数组。

使用OutputUnit跟踪输出信号单元。OutputUnit对系统行为没有影响。

输出通道组,指定为结构。的OutputGroup属性允许您将MIMO系统的输出通道划分为组,并通过名称引用每个组。在OutputGroup结构,将字段名设置为组名,将字段值设置为属于每个组的输出通道。

例如,创建名为温度而且测量分别包括输出通道1、通道3和通道5。

sys.OutputGroup.temperature = [1];sys.OutputGroup.measurement = [3 5];

的所有输入中提取子系统测量使用以下语法输出。

系统(“测量”,:)

系统名称,指定为字符向量。例如,“system_1”

希望与系统关联的任何文本,指定为字符串或字符向量的单元格数组。属性存储您提供的任何数据类型。例如,如果sys1而且sys2系统模型都是动态的,你可以自己设置吗笔记属性如下。

sys1。笔记=sys1有一个字符串。;sys2。笔记=sys2有一个字符向量;sys1。笔记sys2。笔记
Ans = "sys1有一个字符串" Ans = " sys2有一个字符向量"

与系统关联的数据,指定为任何MATLAB数据类型。

模型数组的采样网格,指定为结构。

对于通过对一个或多个自变量采样而得到的已识别线性(IDLTI)模型数组,此属性跟踪与每个模型相关的变量值。当您显示或绘制模型数组时,将显示此信息。使用这些信息将结果追溯到自变量。

将数据结构的字段名设置为采样变量的名称。将字段值设置为与数组中的每个模型相关联的采样变量值。所有抽样变量必须是数值和标量值,并且所有抽样值的数组必须与模型数组的维度匹配。

例如,假设您在系统的各个操作点上收集数据。您可以分别为每个工作点标识模型,然后将结果叠加到单个系统数组中。您可以用有关操作点的信息标记数组中的各个模型。

Nominal_engine_rpm = [1000 5000 10000];sys。SamplingGrid = struct(“转”nominal_engine_rpm)

在这里,sys包含分别以1000,5000和10,000 rpm获得的三个已标识的模型的数组。

对于通过线性化Simulink生成的模型数组®在多个参数值或工作点建模,软件进行填充SamplingGrid自动使用对应于数组中每个条目的变量值。

此属性是只读的。

摘要报告,其中包含有关使用估计命令获得频率响应模型时的估计选项和结果的信息,例如水疗中心spafdr,etfe.使用报告查询一个模型的估计方法,包括:

  • 估算方法

  • 估计选项

的内容报告如果模型是由构造创建的,则无关紧要。

F = logspace(-1,1,100);[mag,phase] = bode(idtf([1 .2],[1 2 1 1]),f);Response = mag.*exp(1j*phase*pi/180);Sysfr = idfrd(response,f,0.08);sysfr.Report.Method
Ans = "

如果使用估计命令获取频率响应模型,则报告包含关于估计数据、选项和结果的信息。

负载iddata3;sysfr = spa(z3)
SPA

有关此属性以及如何使用它的更多信息,请参阅相应估计命令参考页的Output Arguments部分评估报告

对象的功能

多种功能适用于动态系统模型也适用于idfrd模型对象。这些函数一般有三种类型。

  • 操作并返回的函数idfrd模型对象使您能够转换和操作idfrd模型。

  • 在上面执行分析和模拟功能的函数idfrd对象,例如波德而且sim卡

  • 检索或解释模型信息的函数,例如getcov

与其他确定的线性模型不同,您不能直接转换idfrd使用命令将模型建模为另一种模型类型中的难点idtf.方法对所需的模型使用估计命令idfrd对象作为估计数据。例如,使用Sys = sest(sysfr,2)从频响数据估计二阶状态空间模型idfrd模型sysfr.一个使用的例子idfrd对象作为估计数据,参见利用频响数据估计时域模型

下面的列表包含您可以使用的函数的一个代表性子集中的难点模型。

全部展开

chgTimeUnit 改变动态系统的时间单位
chgFreqUnit 改变频率响应数据模型的频率单位
fselect 在FRD模型中选择频率点或范围
frdata 访问频率响应数据(FRD)对象的数据
fcat 沿频率维级联FRD模型

全部展开

波德 波德图的频率响应,或幅度和相位数据
光谱 绘制时间序列模型的输出功率谱或线性输入输出模型的扰动谱

全部展开

得到 访问模型属性值
getcov 确定模型的参数协方差

例子

全部折叠

创建一个idfrd对象的频率响应数据。

加载震级数据AMP,相位数据PHA,和频率向量W.设定采样时间Ts到0.1。

负载demofrAMPPHAWTs = 0.1;

使用的值AMP而且PHA计算复值响应响应

response = AMP.*exp(1j*PHA*pi/180);

创建一个idfrd对象来存储响应idfrd对象frdata

frdata = idfrd(response,W,Ts)
frdata = IDFRD模型。包含1个输出和1个输入的频率响应数据。响应数据在1000个频率点上可用,范围从0.03142 rad/s到31.42 rad/s。采样时间:0.1秒状态:由直接构造或转换创建。不估计。

绘制数据图。

波德(frdata)

图中包含2个轴对象。Axes对象1包含一个line类型的对象。该对象表示frdata。坐标轴对象2包含一个line类型的对象。该对象表示frdata。

frdata是复数idfrd具有可以使用点表示法访问的对象属性的对象。例如,确认的值Ts

Tsproperty = frdata。Ts
Tsproperty = 0.1000

您还可以设置属性值。设置的名字财产“DC_Converter”

frdata。Name =“DC_Converter”

如果你导入frdata系统识别App为这个数据命名DC_Converter,而不是变量名frdata

使用得到获取完整的属性设置集。

get (frdata)
FrequencyUnit: 'rad/TimeUnit' Report: [1x1 idresults.frdest] SpectrumData: [] CovarianceData: [] NoiseCovariance: [] InterSample: {'zoh'} ResponseData: [1x1x1000 double] IODelay: 0 InputDelay: 0 OutputDelay: 0 InputName: {"} InputUnit: {"} InputGroup: [1x1 struct] OutputName: {"} OutputUnit: {"} OutputGroup: [1x1 struct]备注:[0x1 string] UserData: [] Name: 'DC_Converter' Ts: 0.1000 TimeUnit: 'seconds' SamplingGrid: [1x1 struct] Frequency: [1000x1 double]

方法将状态空间模型转换为频率响应模型idfrd命令。

加载数据z2并估计一个二阶状态空间模型sys

负载iddata2z2Sys = sest(z2,2);

转换sysidfrd模型frsys

Frsys = idfrd(sys)
frsys = IDFRD模型。包含1个输出(s)和1个输入(s)的频率响应数据,以及输出扰动的频谱。响应数据和扰动谱可在68个频率点上获得,范围从0.1 rad/s到1000 rad/s。输出通道:'y1'输入通道:'u1'状态:由idss模型转换创建。

情节frsys

波德(frsys)

图中包含2个轴对象。标题为From: u1 To: y1的坐标轴对象1包含一个line类型的对象。该节点表示frsys。坐标轴对象2包含一个line类型的对象。该节点表示frsys。

frsys是一个idfrd可以用作动态系统模型或用作时域或频域模型的估计数据的模型。

得到传递函数模型的频率响应,并将其转换为频率响应idfrd对象。

构造一个一零三极的传递函数模型。

Systf = idtf([1 .2],[1 2 1 1]);

使用波德的频率响应systf,表示频率矢量的幅值和相位f

F = logspace(-1,1,100);[mag,phase] = bode(systf,f);

使用的值玛格而且阶段计算复值响应响应

Response = mag.*exp(1j*phase*pi/180);

创建一个idfrd对象frdata来存储响应,指定抽样率Ts0.8。

Ts = 0.8;frdata = idfrd(response,f,Ts)
frdata = IDFRD模型。包含1个输出和1个输入的频率响应数据。响应数据以100个频率点提供,范围从0.1 rad/s到10 rad/s。采样时间:0.8秒状态:直接构建或转换创建。不估计。

绘制数据图。

波德(frdata)

图中包含2个轴对象。Axes对象1包含一个line类型的对象。该对象表示frdata。坐标轴对象2包含一个line类型的对象。该对象表示frdata。

frdata是复数idfrd对象。

从时域数据估计传递函数模型并转换结果idtf模型到idfrd模型。从频响数据中估计一个新的传递函数模型idfrd模型。将模型响应与原始数据进行比较。

加载时域数据z2然后用它来估计传递函数sys它有两个极点和一个零。

负载iddata2z2Sys = tfest(z2,2,1);

转换sys到一个idfrd建模并绘制频率响应图。

Frsys = idfrd(sys);波德(系统)

图中包含2个轴对象。标题为From: u1 To: y1的坐标轴对象1包含一个line类型的对象。该节点表示sys。坐标轴对象2包含一个line类型的对象。该节点表示sys。

估计一个新的传递函数sys1使用来自frsys作为估计数据。

Sys1 = tfest(frsys,2,1);

比较sys而且sys1与原始估计数据z2

比较(z2 sys sys1)

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象表示验证数据(y1), sys: 85.71%, sys1: 85.71%。

模型响应是相同的。

版本历史

R2006a之前介绍

Baidu
map