idfrd
频响数据或模型
描述
一个idfrd
对象存储频率值范围内的频率响应数据。你可以使用idfrd
对象有两种方式。您可以使用对象作为估计数据来估计时域或频域模型,类似于iddata
对象。或者,您可以使用对象作为线性模型,类似于如何使用中的难点
状态空间模型或任何其他确定的线性模型。使用idfrd
命令封装频率响应数据或将线性时域或频域动态模型转换为频率响应模型。
接受的命令iddata
对象,例如模型估计命令党卫军
,一般也接受idfrd
对象。然而,一个idfrd
对象只能包含一个实验的数据。它不具备传统的多实验能力iddata
对象。
接受确定的线性模型的命令,例如分析和验证命令比较
,sim卡
,波德
,一般也接受idfrd
模型。
用于表单的模型
传递函数估计为 和附加噪声谱Φv输出为
在这里,λ估计方差为e(t),T是采样时间。
对于连续时间系统,噪声谱为
一个idfrd
对象存储
而且Φv.
创建
你可以获取idfrd
用三种方法之一建模。
方法从频率响应数据创建模型
idfrd
命令。例如,创建一个idfrd
封装使用采样时间在特定频率采集的频率响应数据的模型Ts
.sysfr = idfrd(ResponseData,Freq,Ts)
使用频响估计命令来估计模型,例如
水疗中心
,使用时域、频域或频响数据。Sysfr = spa(数据)
转换线性模型,例如
中的难点
建模成idfrd
通过计算模型的频率响应来建立模型。Sysfr = idfrd(sys)
有关可用于从中提取信息或转换信息的函数的信息idfrd
建模对象,请参见对象的功能.
语法
描述
创建频率响应对象
创建一个离散时间sysfr
= idfrd (ResponseData、中频率、Ts)idfrd
对象,该对象存储频率响应ResponseData
线性系统的频率值频率
.Ts
是采样时间。对于连续时间系统,设置Ts
来0
.
使用一个或多个名称-值参数设置其他属性。在前三个参数之后指定名称-值参数。例如,要将频率单位指定为MHz,请使用sysfr
= idfrd (___,名称,值
)sysfr = idfrd(ResponseData,Frequency,Ts,'FrequencyUnits','MHz')
.
输入参数
sys
- - - - - -线性动力系统模型
线性动力系统模型
线性动态系统模型,指定为系统识别工具箱或控制系统工具箱线性模型。
属性
ResponseData
- - - - - -频率响应数据
三维复数数组
频率响应数据,指定为三维复数数组。
对于SISO系统,
ResponseData
是频率响应值在频率点的矢量频率
财产。用于MIMO系统Nu输入和Ny输出,
ResponseData
是一个Ny——- - - - - -Nu——- - - - - -Nf数组,Nf是频率点的个数。ResponseData (kf,肯塔基州,ku)中
表示来自输入的频率响应ku
到输出肯塔基州
在频率上频率(kf)
.
频率
- - - - - -频率点
列向量
对应的频率点ResponseData
,指定为列向量,包含Nf所指定的单位中的点FrequencyUnit
.
FrequencyUnit
- - - - - -频率矢量单位
“rad / TimeUnit”
(默认)|“周期/ TimeUnit”
|“rad / s”
|“赫兹”
|“赫兹”
|“兆赫”
|“GHz”
|“转”
频率矢量的单位频率
属性,指定为以下值之一:
“rad / TimeUnit”
“周期/ TimeUnit”
“rad / s”
“赫兹”
“赫兹”
“兆赫”
“GHz”
“转”
的单位“rad / TimeUnit”
而且“周期/ TimeUnit”
中指定的时间单位TimeUnit
财产。
更改此属性不会重新采样或转换数据。修改属性只会改变对现有数据的解释。使用chgTimeUnit
将数据转换为不同的频率单位。
SpectrumData
- - - - - -功率谱和交叉谱
复数向量|三维复数数组
系统输出扰动(噪声)的功率谱和交叉谱,指定为矢量(单输出系统)或复数的三维阵列(多输出系统)。对于响应数据,使用Ny输出和Nf频率点,指定SpectrumData
作为一个Ny——- - - - - -Ny——- - - - - -Nf数组中。
SpectrumData (ky1 ky2 kf)
输出噪声之间是否存在交叉谱ky1
以及输出端的噪声ky2
在频率上频率(kf)
.功率谱是其中交叉谱的子集ky1
而且ky2
是相等的。
CovarianceData
- - - - - -响应协方差
五维数值数组
协方差的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
通过使用命令中的难点
,idtf
,idproc
,idgrey
,或idpoly
,然后软件设置CovarianceData
为sysfr
来[]
.
NoiseCovariance
- - - - - -功率谱方差
数值向量|三维数值阵列|0
功率谱方差,指定为矢量(单输出系统)或三维阵列(多输出系统)。对于响应数据,使用Ny输出和Nf频率点,指定NoiseCovariance
作为一个Ny——- - - - - -Ny——- - - - - -Nf数组中。NoiseCovariance (ky1 ky2 kf)
为对应功率谱的方差。
若要消除模型中噪声分量的影响,请指定NoiseCovariance
作为0
.协方差为零时,预测输出与模拟输出相同。
InterSample
- - - - - -Intersample行为
“zoh”
|“呸”
|“提单”
|字符向量的单元格数组
输入信号在离散时间和连续时间之间转换时的采样间行为,指定为字符向量或Nu-by-1单元格数组的字符向量,其中Nu是输入通道的数量。只有在估计连续时间模型(采样时间)时,此属性才有意义Ts
> 0)从离散时间数据。
对于每个输入通道,的可能值InterSample
是:
“zoh”
-零阶保持器在样本之间保持分段恒定的输入信号。“呸”
-一阶保持器在样本之间保持分段线性输入信号。“提单”
-带限行为指定连续时间输入信号在奈奎斯特频率(π/ sys。Ts
rad / s)。当使用抗混叠滤波器和采样器对输入信号进行实验测量时,通常会发生这种行为。理想情况下,将数据视为连续时间。也就是说,如果用于估计频率响应的信号服从于抗混叠滤波器,则设置sys。Ts
为零。
如果你获得sysfr
通过模型转换sys
,然后InterSample
等于Intersample
的属性iddata
用于估计的对象sys
.
有关此属性的详细信息,请参见输入样本间行为对连续时间模型的影响.
IODelay
- - - - - -运输延误
0
(默认)|数字数组
传输延迟,指定为一个数字数组,其中包含每个输入-输出对的单独传输延迟。
中存储的时间单位表示传输延迟TimeUnit
财产。对于离散时间系统,传输延迟用整数表示,表示延迟是采样时间的倍数Ts
.
对于MIMO系统Ny输出和Nu输入,设置IODelay
作为一个Ny——- - - - - -Nu数组中。该数组的每个条目都是一个数值,表示对应输入-输出对的传输延迟。你可以设置IODelay
对所有输入-输出对应用相同的延迟。
InputDelay
- - - - - -每个输入通道的输入延迟
0
(默认)|标量|向量
每个输入通道的输入延迟,指定为标量值或数字向量。方法中存储的时间单位指定输入延迟TimeUnit
财产。对于离散时间系统,指定输入延迟为采样时间的整数倍Ts
.例如,设置InputDelay
来3.
指定三个采样时间的延迟。
对于一个系统Nu输入,设置InputDelay
到一个Nu1的向量。该向量的每一项都是一个数值,表示对应输入通道的输入延迟。
你也可以设置InputDelay
到一个标量值,以便对所有通道应用相同的延迟。
OutputDelay
- - - - - -每个输出通道的输出延迟
0
(默认)
对于已识别的系统,例如idfrd
,OutputDelay
固定为零。
TimeUnit
- - - - - -时间变量单位
“秒”
(默认)|“纳秒”
|微秒的
|的毫秒
|“分钟”
|“小时”
|“天”
|“周”
|“月”
|“年”
时间变量的单位是采样时间Ts
,以及模型中的任何时间延迟,指定为以下值之一。
“纳秒”
微秒的
的毫秒
“秒”
“分钟”
“小时”
“天”
“周”
“月”
“年”
更改此属性不会重新采样或转换数据。修改属性只会改变对现有数据的解释。使用chgTimeUnit
(控制系统工具箱)将数据转换为不同的时间单位
InputName
- - - - - -输入通道名称
”
(默认)|特征向量|单元阵列
输入通道名称,指定为字符向量或单元格数组。
单输入模型-字符向量。例如,
“控制”
.多输入模型-字符向量的单元数组。
或者,使用自动向量展开为多输入模型分配输入名称。例如,如果sys
是一个双输入模型,输入:
sys。InputName =“控制”;
输入名称自动展开为{“控制(1)”,“控制”(2)}
.
当你估计一个模型使用iddata
对象数据
,软件自动设置InputName
来数据。InputName
.
你可以用速记法u
请参阅InputName
财产。例如,sys.u
等于sys。InputName
.
你可以通过几种方式使用输入通道名,包括:
识别模型显示和图上的通道
提取MIMO系统的子系统
在连接模型时指定连接点
InputUnit
- - - - - -输入通道单元
”
(默认)|特征向量|单元阵列
输入通道单位,指定为字符向量或单元格数组:
单输入模型-字符向量
多输入模型-字符向量的单元数组
使用InputUnit
跟踪输入信号单位。InputUnit
对系统行为没有影响。
InputGroup
- - - - - -输入通道组
结构
没有字段(默认)|结构
输入通道组,指定为结构。的InputGroup
属性允许您将MIMO系统的输入通道划分为组,以便您可以通过名称引用每个组。在InputGroup
结构,将字段名设置为组名,将字段值设置为属于每个组的输入通道。
例如,创建名为控制
而且噪音
分别包括输入通道1和2以及通道3和5。
sys.InputGroup.controls = [1 2];sys.InputGroup.noise = [3 5];
然后,您可以从控制
使用以下语法输入所有输出:
sys (:,“控制”)
OutputName
- - - - - -输出通道名称
”
(默认)|特征向量|单元阵列
输出通道名称,指定为字符向量或单元格数组。
单输入模型-字符向量。例如,
“测量”
多输入模型-字符向量的单元数组
或者,使用自动向量展开为多输出模型分配输出名称。例如,如果sys
是一个双输出模型,输入:
sys。OutputName =“测量”;
输出名称自动展开为{“测量(1)”,“测量”(2)}
.
当你估计一个模型使用iddata
对象数据
,软件自动设置OutputName
来数据。OutputName
.
你可以用速记法y
请参阅OutputName
财产。例如,sys.y
等于sys。OutputName
.
你可以通过多种方式使用输出通道名,包括:
识别模型显示和图上的通道
提取MIMO系统的子系统
在连接模型时指定连接点
OutputUnit
- - - - - -输出通道单元
”
(默认)|特征向量|单元阵列
输出通道单元,指定为字符向量或单元格数组。
单输入模型-字符向量。例如,
“秒”
.多输入模型-字符向量的单元数组。
使用OutputUnit
跟踪输出信号单元。OutputUnit
对系统行为没有影响。
OutputGroup
- - - - - -输出通道组
结构
没有字段(默认)|结构
输出通道组,指定为结构。的OutputGroup
属性允许您将MIMO系统的输出通道划分为组,并通过名称引用每个组。在OutputGroup
结构,将字段名设置为组名,将字段值设置为属于每个组的输出通道。
例如,创建名为温度
而且测量
分别包括输出通道1、通道3和通道5。
sys.OutputGroup.temperature = [1];sys.OutputGroup.measurement = [3 5];
的所有输入中提取子系统测量
使用以下语法输出。
系统(“测量”,:)
的名字
- - - - - -系统名称
”
(默认)|特征向量
系统名称,指定为字符向量。例如,“system_1”
.
笔记
- - - - - -系统说明
0
——- - - - - -1
字符串(默认)|字符串|特征向量
希望与系统关联的任何文本,指定为字符串或字符向量的单元格数组。属性存储您提供的任何数据类型。例如,如果sys1
而且sys2
系统模型都是动态的,你可以自己设置吗笔记
属性如下。
sys1。笔记=sys1有一个字符串。;sys2。笔记=sys2有一个字符向量;sys1。笔记sys2。笔记
Ans = "sys1有一个字符串" Ans = " sys2有一个字符向量"
用户数据
- - - - - -要与系统关联的数据
[]
(默认)|任何MATLAB®数据类型
与系统关联的数据,指定为任何MATLAB数据类型。
SamplingGrid
- - - - - -采样网格
[]
(默认)|结构体
模型数组的采样网格,指定为结构。
对于通过对一个或多个自变量采样而得到的已识别线性(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
使用命令将模型建模为另一种模型类型中的难点
或idtf
.方法对所需的模型使用估计命令idfrd
对象作为估计数据。例如,使用Sys = sest(sysfr,2)
从频响数据估计二阶状态空间模型idfrd
模型sysfr
.一个使用的例子idfrd
对象作为估计数据,参见利用频响数据估计时域模型.
下面的列表包含您可以使用的函数的一个代表性子集中的难点
模型。
转换与操作
chgTimeUnit |
改变动态系统的时间单位 |
chgFreqUnit |
改变频率响应数据模型的频率单位 |
fselect |
在FRD模型中选择频率点或范围 |
frdata |
访问频率响应数据(FRD)对象的数据 |
fcat |
沿频率维级联FRD模型 |
例子
创建idfrd
对象的频率响应数据
创建一个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)
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);
转换sys
到idfrd
模型frsys
.
Frsys = idfrd(sys)
frsys = IDFRD模型。包含1个输出(s)和1个输入(s)的频率响应数据,以及输出扰动的频谱。响应数据和扰动谱可在68个频率点上获得,范围从0.1 rad/s到1000 rad/s。输出通道:'y1'输入通道:'u1'状态:由idss模型转换创建。
情节frsys
.
波德(frsys)
frsys
是一个idfrd
可以用作动态系统模型或用作时域或频域模型的估计数据的模型。
创建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
来存储响应
,指定抽样率Ts
0.8。
Ts = 0.8;frdata = idfrd(response,f,Ts)
frdata = IDFRD模型。包含1个输出和1个输入的频率响应数据。响应数据以100个频率点提供,范围从0.1 rad/s到10 rad/s。采样时间:0.8秒状态:直接构建或转换创建。不估计。
绘制数据图。
波德(frdata)
frdata
是复数idfrd
对象。
利用频响数据估计时域模型
从时域数据估计传递函数模型并转换结果idtf
模型到idfrd
模型。从频响数据中估计一个新的传递函数模型idfrd
模型。将模型响应与原始数据进行比较。
加载时域数据z2
然后用它来估计传递函数sys
它有两个极点和一个零。
负载iddata2z2Sys = tfest(z2,2,1);
转换sys
到一个idfrd
建模并绘制频率响应图。
Frsys = idfrd(sys);波德(系统)
估计一个新的传递函数sys1
使用来自frsys
作为估计数据。
Sys1 = tfest(frsys,2,1);
比较sys
而且sys1
与原始估计数据z2
.
比较(z2 sys sys1)
模型响应是相同的。
版本历史
R2006a之前介绍
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。