主要内容

idfrd

频率响应数据或模型

描述

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

接受的命令iddata对象,例如模型估计命令SSEST.,一般也接受idfrd对象。但是idfrd对象只能包含来自一个实验的数据。它不具备多实验能力iddata对象。

接受已识别的线性模型的命令,例如分析和验证命令比较,模拟, 和b,一般也接受idfrd楷模。

对于表格的模型

Y ( T ) = G ( Q ) U ( T ) + H ( Q ) E ( T )

传递函数估计为 G ( E ω ) 加性噪声谱Φv输出为

Φ v ( ω ) = λ T | H ( E ω T ) | 2.

这里,λ的估计方差是E(T),T为采样时间。

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

Φ v ( ω ) = λ | H ( E ω ) | 2.

idfrd对象存储 G ( E ω ) Φv

创建

您可以获得idfrd以三种方式之一建模。

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

    sysfr=idfrd(响应数据、频率、Ts)
    例如,请参见从频率响应数据创建idfrd对象

  • 使用频率响应估计命令估计模型,例如温泉,使用时域、频域或频率响应数据。

    sysfr = spa(数据)

    有关频率响应估计命令的更多信息,请参见温泉,SPAFDR., 和etfe

  • 转换线性模型,例如智能决策支持系统模型化idfrd通过计算模型的频率响应,建立了模型。

    SYSFR = IDFRD(SYS)
    有关线性模型转换的示例,请参见将时域模型转换为频率响应模型

有关功能的信息,您可以用来从或转换中提取信息idfrd模型对象,看对象的功能

描述

创建频率响应对象

实例

sysfr= IDFRD(Remanctedata,频率,TS)创造一个离散时间idfrd存储频率响应的对象响应数据线性系统的频率值频率Ts为采样时间。对于连续时间系统,设置Ts0

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

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

实例

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

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

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

输入参数

全部展开

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

属性

全部展开

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

  • 对于输出系统,响应数据中规定的频率点的频率响应值向量是否为频率财产。

  • 对于MIMO系统NU投入和NY输出,响应数据是一个NY——- - - - - -NU——- - - - - -NF阵列,其中NF是频率点的数量。

    响应数据(ky、ku、kf)表示输入的频率响应ku到产出肯塔基州在频率频率(kf)

频率点对应于响应数据,指定为包含NF点在指定的单位FrequencyUnit

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

  • “rad/时间单位”

  • “周期/ TimeUnit”

  • 'rad / s'

  • “赫兹”

  • “赫兹”

  • “兆赫”

  • “GHz”

  • “转”

的单位“rad/时间单位”“周期/ TimeUnit”相对于中指定的时间单位时髦财产。

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

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

SpectrumData (ky1 ky2 kf)是输出噪声之间的横梁ky1以及输出端的噪声ky2在频率频率(kf).功率谱是交叉光谱的子集在其中ky1ky2是相等的。

协方差SpectrumData,指定为具有维度的5-D数组NY——- - - - - -NU——- - - - - -NF-by-2-by-2,NY为输出数,NU是输入的数量,和NF是频率点的数量。

Covaredata(Ky,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.软件使用Gause的近似公式来实现所有模型类型,除了灰盒模型。用于灰色盒式模型(idgrey),该软件应用数值微分。

  • 如果你创建的sys通过使用命令,例如智能决策支持系统,idtf,IDProc.,idgrey, 或者idpoly,然后软件集CovarianceData对于sysfr[]

功率谱差异,指定为向量(单输出系统)或3-D阵列(多输出系统)。用于响应数据NY输出和NW频率点,指定噪声方差作为一个NY——- - - - - -NY——- - - - - -NW数组中。噪声方差(ky1,ky2,千瓦)是相应功率谱的方差。

为了消除模型噪声分量的影响,指定噪声方差0.在协方差为零的情况下,预测输出与模拟输出相同。

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

对于每个输入通道,可能的样本间是:

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

  • 'foh'-一阶保持保持样本间的分段线性输入信号。

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

如果你得到sysfr通过模型的转换sys然后样本间等于Intersample财产的iddata你曾经估计过的对象sys

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

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

对于连续时间系统,传输延迟用存储在的时间单位表示时髦财产。对于离散时间系统,传输延迟表示为整数,表示为采样时间的倍数Ts

为MIMO系统NY输出和NU输入,集合IODelay作为一个NY——- - - - - -NU数组中。此阵列的每个条目是表示相应输入输出对的传输延迟的数值。你可以设置IODelay对标量值施加相同的延迟到所有输入输出对。

每个输入通道的输入延迟,指定为标量值或数字向量。对于连续时间系统,在存储的时间单元中指定输入延迟时髦财产。对于离散时间系统,以采样时间的整数倍指定输入延迟Ts.例如,设置输入延迟3.指定三次采样时间的延迟。

对于具有NU输入,集合输入延迟到一个NU-by-1向量。该向量的每个条目都是一个数值,表示对应输入通道的输入延迟。

你也可以设置输入延迟对标量值对所有通道应用相同的延迟。

对于已识别的系统,例如idfrd,输出延迟固定为零。

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

  • 具有指定采样时间的离散时间模型-表示采样周期的正标量,以指定的单位表示时髦模型的财产

  • 连续时间模型 -0

  • 带有未指定样本时间的离散时间模型-1

更改此属性不会离散或重新取样模型。使用C2D.D2C.在连续和离散时间表示之间转换。使用D2D.改变离散时间系统的采样时间。

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

  • “纳秒”

  • 微秒的

  • '毫秒'

  • “秒”

  • '分钟'

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

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

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

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

  • 多输入模型 - 字符向量的单元格阵列。

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

sys。InputName =“控制”

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

当你用iddata对象数据,软件自动设定输入名称数据。输入名称

你可以使用速记符号U参考输入名称所有物例如sys.u相当于sys。输入名称

您可以通过多种方式使用输入通道名称,包括:

  • 在模型显示和图表中识别通道

  • 提取MIMO系统的子系统

  • 连接模型时指定连接点

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

  • 单输入模型-特征向量

  • 多输入模型-字符向量的单元阵列

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

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

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

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

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

sys(:,“控制”)

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

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

  • 多输入模型-字符向量的单元阵列

或者,使用自动向量展开为多输出模型指定输出名称sys是一个双输出模型,输入:

sys.outputname =.“测量”

输出名称自动展开为{'测量(1)';'测量(2)'}

当你用iddata对象数据,软件自动设定outputName.data.OutputName

你可以使用速记符号Y参考outputName.所有物例如sys.y相当于sys.outputname.

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

  • 在模型显示和图表中识别通道

  • 提取MIMO系统的子系统

  • 连接模型时指定连接点

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

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

  • 多输入模型 - 字符向量的单元格阵列。

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

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

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

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

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

系统(“测量”,:)

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

要与系统关联的任何文本,指定为字符串或字符向量单元格数组。该属性存储您提供的任何数据类型。例如,如果sys1sys2是动态系统模型,可以设置它们吗笔记属性如下。

sys1.notes =."sys1有一个字符串。";sys2.notes =.'sys2有一个字符矢量。';sys1。笔记sys2.Notes
ans=“sys1有一个字符串。”ans=“sys2有一个字符向量。”

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

用于模型阵列的采样网格,指定为结构。

对于通过采样一个或多个独立变量来导出的识别线性(IDLTI)模型的阵列,该属性跟踪与每个模型关联的变量值。显示或绘制模型阵列时出现此信息。使用此信息将跟踪结果追溯到独立变量。

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

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

nominal_engine_rpm = [1000 5000 10000];sys.samplinggrid = struct(“转”,标称转速(发动机转速)

这里,sys是一个数组,包含三个确定的模型,分别在1000,5000,和10,000 rpm。

对于您通过线性化模拟链接生成的模型阵列万博1manbetx®模型在多个参数值或操作点,软件填充SamplingGrid自动使用数组中每个条目对应的变量值。

此属性是只读的。

当使用估计命令(例如)获得频率响应模型时,包含有关估计选项和结果的信息的摘要报告温泉,SPAFDR., 和etfe.使用报告查询模型是如何被估计的,包括它的:

  • 估算方法

  • 估计选项

的内容报告如果模型是通过构造创建的,则不相关。

f = logspace (1100);[mag,phase] = bode(idtf([1 .2],[1 2 1]),f);响应=杂志。* exp (1 j *期*π/ 180);sysfr = idfrd(响应,f, 0.08);sysfr.Report.Method
ans=“”

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

负载iddata3; sysfr=spa(z3);sysfr.Report.Method
ans = spa.

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

对象的功能

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

  • 运行和返回的功能idfrd模型对象使您能够转换和操作idfrd楷模。

  • 执行分析和仿真功能的功能idfrd对象,例如b模拟

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

不像其他确定的线性模型,您不能直接转换idfrd使用以下命令将模型转换为另一个模型类型:智能决策支持系统或者idtf.相反,使用您想要的模型的估计命令idfrd对象作为估计数据。例如,使用sys = ssest(sysfr,2)从内的频率响应数据估计二阶状态空间模型idfrd模型sysfr.举个例子idfrd对象作为估计数据,参见利用频率响应数据估计时域模型

下面的列表包含可以使用的具有代表性的函数子集智能决策支持系统楷模。

全部展开

chgTimeUnit 改变动态系统的时间单位
CHGFREQ单元 改变频率响应数据模型的频率单位
fselect 在FRD模型中选择频率点或范围
frdata 访问频率响应数据对象的数据
FCAT. 沿频率维度连接FRD模型

全部展开

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

全部展开

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

例子

全部折叠

创建一个idfrd对象从频响数据。

加载星等数据amp.,相位数据PHA,频率矢量W.设置采样时间Ts到0.1。

负载demoframp.PHAWTs=0.1;

使用amp.PHA来计算复值响应响应

响应=放大器。* exp(1J * PHA * PI / 180);

创建一个idfrd对象储藏响应idfrd对象frdata

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

绘制数据。

波德(frdata)

图中包含两个轴。轴1包含类型为line的对象。此对象表示数据。轴2包含类型为line的对象。此对象表示数据。

frdata是一个复杂的idfrd对象,该对象具有可以使用点符号访问的对象属性。例如,确认的值Ts

tsproperty = frdata。Ts
tsproperty = 0.1000

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

frdata。Name =“DC_Converter”

如果你进口frdata进入系统识别App, 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 Ts: 0.1000 TimeUnit: 'seconds' InputName: {"} InputUnit: {"} InputGroup: [1x1 struct] OutputName: {"} OutputUnit: {"} outpugroup:[1x1 struct]注意:[0x1 string] UserData: [] Name: 'DC_Converter' SamplingGrid: [1x1 struct]频率:[1000x1 double]

使用使用的频率响应模型将状态空间模型转换为频率响应模型idfrd命令。

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

负载iddata2z2sys = ss (z2, 2);

转变sysidfrd模型frsys

FRSYS = IDFRD(SYS)
frsys = IDFRD模型。包含1个输出(s)和1个输入(s)的频响数据,以及输出扰动的频谱。响应数据和干扰谱可在68个频率点,范围从0.1 rad/s到1000 rad/s。输出通道:'y1'输入通道:'u1'

情节frsys

博德(frsys)

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

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

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

构造一个具有一个零极点和三个极点的传递函数模型。

systf=idtf([1.2],[1.2]);

使用b的频率响应systf,就频率矢量而言,在幅度和阶段方面F

f = logspace (1100);(杂志、相位)=预示(systf f);

使用玛格阶段来计算复值响应响应

响应=mag*exp(1j*相位*pi/180);

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

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

绘制数据。

波德(frdata)

图中包含两个轴。轴1包含类型为line的对象。此对象表示数据。轴2包含类型为line的对象。此对象表示数据。

frdata是一个复杂的idfrd目的。

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

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

负载iddata2z2sys =特遣部队(z2 2 1);

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

frsys = idfrd(系统);波德(系统)

图中包含2个轴。标题为From: u1 To: y1的轴1包含一个line类型的对象。此对象表示SYS。Axes 2包含一个类型为line的对象。此对象表示SYS。

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

sys1 =特遣部队(frsys 2 1);

比较syssys1用原始的估计数据z2

比较(z2、sys、sys1)

图包含轴。轴包含3个类型的线。这些物体代表Z2(Y1),SYS:85.71%,SYS1:85.71%。

模型响应是相同的。

在R2006A之前介绍