的朋友
频率响应数据模型
描述
使用的朋友
创建实值或复值频率响应数据模型,或进行转换动态系统模型以频率响应数据模型形式。
频率响应数据模型存储了具有相应频率点的复杂频率响应数据。例如,一个频率响应数据模型H(jw我),存储每个输入频率下的频率响应w我,在那里我= 1,…,n.的的朋友
模型对象可以表示连续时间或离散时间的SISO或MIMO频响数据模型。有关更多信息,请参见频响数据(FRD)模型.
你也可以使用的朋友
要创建广义频率响应数据(genfrd
)模型。
创建
你可以获得的朋友
以下列方式之一建模。
方法从频率响应数据创建模型
的朋友
命令。例如,您可以创建一个的朋友
用特定频率下的频响数据建立模型。有关示例,请参见SISO频率响应数据模型.
转换线性模型,例如
党卫军
建模成的朋友
通过计算模型在指定频率下的频率响应来建立模型。有关示例,请参见将状态空间模型转换为频率响应数据模型.
使用离线频响估计工作流程估计模型。这些工作流程需要动态仿真模块®控制设计™软件
有关更多信息,请参见在命令行上估计频率响应(Simulink控制设计)而且使用模型线性器估计频率响应(Simulink控制设计).
语法
描述
使用一个或多个先前任何输入参数组合的名称-值参数设置频率响应数据模型的属性。sys
=朋友(___,名称,值
)
输入参数
响应
- - - - - -频率响应数据
向量|多维数组
频率响应数据,指定为矢量或复数的多维数组。
对于SISO系统,在指定的频率点指定频率响应值的矢量
频率
.用于MIMO系统
ν
输入和纽约
输出,指定纽约
——- - - - - -ν
——- - - - - -Nf
数组,Nf
是频率点的个数。对于一个
S1
-…———Sn
模型阵列ν
输入和纽约
输出,指定大小为[纽约
ν
Nf
S1
...Sn
].例如,a
响应
大小的[纽约
,ν
,Nf
,3.
,4
]表示3 × 4模型数组的响应数据。每个模型都有纽约
输出,ν
输入,Nf
频率点。
此输入设置ResponseData财产。
频率
- - - - - -频率点
向量
对应的频率点响应
,指定为包含Nf
点。频率
可以同时包含正频率和负频率。
此输入设置频率财产。
ts
- - - - - -样品时间
标量
采样时间,指定为标量。
输入设置Ts财产。
ltiSys
- - - - - -动态系统
动态系统模型|模型组
动态系统,指定为SISO或MIMO动态系统模型或者一组动态系统模型。您可以使用的动态系统包括:
属性
ResponseData
- - - - - -频率响应数据
复数的多维数组
频率响应数据,指定为复数的多维数组。
对于SISO系统,
ResponseData
是一个1
——- - - - - -1
——- - - - - -Nf
的频率响应值数组Nf
中指定的频率点频率
财产。用于MIMO系统
ν
输入和纽约
输出,ResponseData
是一个纽约
——- - - - - -ν
——- - - - - -Nf
数组,Nf
是频率点的个数。例如,
ResponseData (kf,肯塔基州,ku)中
表示来自输入的频率响应ku
到输出肯塔基州
在频率上频率(kf)
.对于一个
S1
-…———Sn
模型阵列ν
输入和纽约
输出,ResponseData
是一个多维数组,大小为[纽约
ν
Nf
S1
...Sn
].例如,a
ResponseData
大小的[纽约
,ν
,Nf
,3.
,4
]表示3 × 4模型数组的响应数据。每个模型都有纽约
输出,ν
输入,Nf
频率点。
频率
- - - - - -频率点
向量
对应的频率点ResponseData
,指定为包含Nf
所指定的单位中的点FrequencyUnit
.
FrequencyUnit
- - - - - -频率矢量单位
“rad / TimeUnit”
(默认)|“周期/ TimeUnit”
|“rad / s”
|“赫兹”
|“赫兹”
|“兆赫”
|“GHz”
|“转”
频率矢量的单位频率
属性,指定为以下值之一:
“rad / TimeUnit”
“周期/ TimeUnit”
“rad / s”
“赫兹”
“赫兹”
“兆赫”
“GHz”
“转”
的单位“rad / TimeUnit”
而且“周期/ TimeUnit”
中指定的时间单位TimeUnit
财产。
更改此属性不会重新采样或转换数据。修改属性只会改变对现有数据的解释。使用chgFreqUnit
将数据转换为不同的频率单位。
IODelay
- - - - - -运输延迟
0
(默认)|标量|纽约
——- - - - - -ν
数组
传输延迟,指定为下列之一:
标量-为SISO系统指定传输延迟,或为MIMO系统的所有输入/输出对指定相同的传输延迟。
纽约
——- - - - - -ν
array -为MIMO系统的每个输入/输出对指定单独的传输延迟。在这里,纽约
输出的数量和ν
是输入的数量。
类指定的时间单位指定传输延迟TimeUnit
财产。对于离散时间系统,指定传输延迟为采样时间的整数倍,Ts
.
InputDelay
- - - - - -输入延迟
0
(默认)|标量|ν
1的向量
每个输入通道的输入延迟,指定为以下之一:
标量——为单输入输入系统指定输入延迟,或为多输入系统的所有输入指定相同的延迟。
ν
-by-1 vector -为多输入系统的输入指定单独的输入延迟,其中ν
是输入的数量。
方法所指定的时间单位指定输入延迟TimeUnit
财产。对于离散时间系统,指定输入延迟为采样时间的整数倍,Ts
.
有关更多信息,请参见线性系统中的时间延迟.
OutputDelay
- - - - - -输出延迟
0
(默认)|标量|纽约
1的向量
每个输出通道的输出延迟,指定为以下之一:
标量-为单输出输出系统指定输出延迟,或为多输出系统的所有输出指定相同的延迟。
纽约
-by-1 vector -为多输出系统的输出指定单独的输出延迟,其中纽约
是输出的数量。
方法所指定的时间单位指定输出延迟TimeUnit
财产。对于离散时间系统,指定输出延迟为采样时间的整数倍,Ts
.
有关更多信息,请参见线性系统中的时间延迟.
Ts
- - - - - -样品时间
0
(默认)|积极的标量|-1
采样时间,指定为:
0
对于连续时间系统。表示离散时间系统采样周期的正标量。指定
Ts
方法指定的时间单位TimeUnit
财产。-1
对于一个采样时间不确定的离散系统。
请注意
改变Ts
不对模型进行离散化或重新采样。
TimeUnit
- - - - - -时间变量单位
“秒”
(默认)|“纳秒”
|微秒的
|的毫秒
|“分钟”
|“小时”
|“天”
|“周”
|“月”
|“年”
|……
时间变量单位,指定为下列之一:
“纳秒”
微秒的
的毫秒
“秒”
“分钟”
“小时”
“天”
“周”
“月”
“年”
改变TimeUnit
对其他属性没有影响,但会改变整个系统行为。使用chgTimeUnit
在时间单位之间转换而不修改系统行为。
InputName
- - - - - -输入通道名称
”
(默认)|特征向量|字符向量的单元格数组
输入通道名称,指定为以下之一:
一个字符向量,用于单输入模型。
字符向量的单元格数组,用于多输入模型。
”
,没有为任何输入通道指定名称。
或者,您可以使用自动向量展开为多输入模型分配输入名称。例如,如果sys
是双输入模型,输入如下:
sys。InputName =“控制”;
输入名称自动展开为{“控制(1)”,“控制”(2)}
.
你可以用速记法u
请参阅InputName
财产。例如,sys.u
等于sys。InputName
.
使用InputName
:
识别模型显示和图上的通道。
提取MIMO系统的子系统。
对接模型时,请指定连接点。
InputUnit
- - - - - -输入通道单元
”
(默认)|特征向量|字符向量的单元格数组
输入通道单位,指定为下列之一:
一个字符向量,用于单输入模型。
字符向量的单元格数组,用于多输入模型。
”
,没有指定任何输入通道的单位。
使用InputUnit
指定输入信号单位。InputUnit
对系统行为没有影响。
InputGroup
- - - - - -输入通道组
结构
输入通道组,指定为结构。使用InputGroup
将MIMO系统的输入通道划分为组,并以名称引用每个组。的字段名InputGroup
是组名,字段值是每个组的输入通道。例如,输入以下内容创建名为控制
而且噪音
包括输入通道1
而且2
,3.
而且5
,分别。
sys.InputGroup.controls = [1 2];sys.InputGroup.noise = [3 5];
然后,您可以从控制
输入到所有输出使用以下。
sys (:,“控制”)
默认情况下,InputGroup
是一个没有字段的结构。
OutputName
- - - - - -输出通道名称
”
(默认)|特征向量|字符向量的单元格数组
输出通道名称,指定为以下之一:
一个字符向量,用于单输出模型。
字符向量的单元格数组,用于多输出模型。
”
,没有为任何输出通道指定名称。
或者,您可以使用自动向量展开为多输出模型分配输出名称。例如,如果sys
是一个双输出模型,输入以下内容。
sys。OutputName =“测量”;
输出名称自动展开为{“测量(1)”,“测量”(2)}
.
你也可以使用速记符号y
请参阅OutputName
财产。例如,sys.y
等于sys。OutputName
.
使用OutputName
:
识别模型显示和图上的通道。
提取MIMO系统的子系统。
对接模型时,请指定连接点。
OutputUnit
- - - - - -输出通道单元
”
(默认)|特征向量|字符向量的单元格数组
输出通道单位,指定为下列之一:
一个字符向量,用于单输出模型。
字符向量的单元格数组,用于多输出模型。
”
,不指定任何输出通道的单位。
使用OutputUnit
指定输出信号单位。OutputUnit
对系统行为没有影响。
OutputGroup
- - - - - -输出通道组
结构
输出通道组,指定为结构。使用OutputGroup
将MIMO系统的输出通道划分为组,并以名称引用每个组。的字段名OutputGroup
是组名,字段值是每个组的输出通道。例如,创建名为温度
而且测量
包括输出通道1
,3.
而且5
,分别。
sys.OutputGroup.temperature = [1];sys.OutputGroup.measurement = [3 5];
的所有输入中提取子系统测量
使用以下输出。
系统(“测量”:)
默认情况下,OutputGroup
是一个没有字段的结构。
的名字
- - - - - -系统名称
”
(默认)|特征向量
系统名称,指定为字符向量。例如,“system_1”
.
笔记
- - - - - -指定的文本
{}
(默认)|特征向量|字符向量的单元格数组
希望与系统关联的用户指定文本,指定为字符向量或字符向量的单元格数组。例如,“系统是MIMO”
.
用户数据
- - - - - -用户指定的数据
[]
(默认)|任何MATLAB®数据类型
希望与系统关联的用户指定数据,指定为任何MATLAB数据类型。
SamplingGrid
- - - - - -用于模型阵列的采样网格
结构数组
模型数组的采样网格,指定为结构数组。
使用SamplingGrid
跟踪与模型数组中每个模型相关的变量值,包括已识别的线性时不变(IDLTI)模型数组。
将结构的字段名设置为采样变量的名称。将字段值设置为与数组中的每个模型相关联的采样变量值。所有抽样变量必须是数字标量,所有抽样值的数组必须与模型数组的尺寸匹配。
例如,你可以创建一个11乘1的线性模型数组,sysarr
,通过不时地对线性时变系统进行快照T = 0:10
.下面的代码使用线性模型存储时间样本。
sysarr。SamplingGrid = struct(“时间”0:10)
类似地,你可以创建一个6乘9的模型数组,米
,通过独立抽样两个变量,ζ
而且w
.下面的代码映射(ζ,w)
值米
.
[zeta,w] = ndgrid(zeta> <6个值,w > <9个值)“ζ”ζ,' w 'w)
当你显示的时候米
,数组中的每个条目都包含相应的ζ
而且w
值。
米
(:: 1, - 1)(ζ= 0.3 w = 5) = 25 -------------- s ^ 2 + 3 s + 25米(:,:,2,1)[ζ= 0.35 w = 5] = 25 ---------------- s ^ 2 + 3.5 s + 25…
对于通过在多个参数值或工作点线性化Simulink模型生成的模型数组,软件进行填充SamplingGrid
自动使用对应于数组中每个条目的变量值。例如,Simulink控制设计命令线性化
(Simulink控制设计)而且slLinearizer
(Simulink控制设计)填充SamplingGrid
自动。
默认情况下,SamplingGrid
是一个没有字段的结构。
对象的功能
下面的列表包含您可以使用的函数的一个代表性子集的朋友
模型。一般来说,许多函数适用于动态系统模型也适用于a的朋友
对象。的朋友
模型不能与任何时域分析函数一起工作。
频率响应分析
模型转换
chgFreqUnit |
改变频率响应数据模型的频率单位 |
chgTimeUnit |
改变动态系统的时间单位 |
frdfun |
将函数应用于频率响应值在每个频率上的朋友 模型对象 |
fselect |
在FRD模型中选择频率点或范围 |
插值函数 |
插值FRD模型 |
fcat |
沿频率维级联FRD模型 |
fnorm |
FRD模型的点向峰值增益 |
控制器设计
pidtune |
线性植物模型的PID整定算法 |
例子
SISO频率响应数据模型
创建一个的朋友
对象的频率响应数据。
对于本例,加载为水箱模型收集的频率响应数据。
负载wtankData.mat
此数据包含在频率范围内收集的频率响应数据 rad /年代 rad / s。
创建模型。
Sys = frd(响应,频率)
sys =频率(rad/s)响应---------------- -------- 0.0010 1.562e+01 - 1.9904i 0.0018 1.560e+01 - 2.0947i 0.0034 1.513e+01 - 3.3670i 0.0062 1.373e+01 - 5.4306i 0.0207 5.829e+00 - 7.6527 i 0.0379 2.340e+00 - 5.6271i 0.0695 7.765e-01 - 3.4188i 0.1274 2.394e-01 - 1.9295i 0.2336 7.433e -02 - 1.0648i 0.4384 1.916e-03 - 0.1740i 4.8329 1.698e-04 - 0.0550i 8.8587 5.055e-05 - 0.0283i 16.23781.505e-05 - 0.0154i 29.7635 4.478e-06 - 0.0084i 54.5559 1.333e-06 - 0.0046i 100.0000 3.967e-07 - 0.0025i连续时间频率响应。
情节sys
.
波德(系统)
离散MIMO频响数据模型
对于本例,考虑随机生成的响应数据和频率。
生成一个3 × 2 × 7的复杂阵列和一个频率矢量,其中7个点在0.01到100 rad/s之间。设置采样时间Ts
到5秒。
Rng (0) r = randn(3,2,7)+1i*randn(3,2,7);W = logspace(-2,2,7);Ts = 5;
创建模型。
sys = frd(r,w,Ts)
sys = From input 1 to: Frequency(rad/s) output 1 output 2 ---------------- ---------------- 0.0100 0.5377 + 0.3192i 1.8339 + 0.3129i 0.0464 -0.4336 + 1.0933i 0.3426 + 1.1093i 0.2154 0.7254 - 0.0068i -0.0631 + 1.5326i 1.0000 1.4090 - 1.0891i 1.4172 + 0.0326i 4.6416 0.4889 - 1.4916i 1.0347 - 0.7423i 21.5443 0.8884 - 0.2424 i -1.1471 + 0.8886i 100.0000 0.3252 - 0.1774i -0.7549 - 0.1961i从输入1到:频率(rad/s)输出3 ---------------- -------- 0.0100 -2.2588 - 0.8649i 0.0464 3.5784 - 0.8637i 0.2154 0.7147 - 0.7697i 1.0000 0.6715 + 0.5525i 4.6416 0.7269 - 1.0616i 21.5443 -1.0689 - 0.7648i 100.0000 1.3703 + 1.4193i从输入2到:频率(rad/s)输出1输出2 ---------------- ---------------- 0.0100 0.8622 - 0.0301i 0.3188 - 0.1649i 0.0464 2.7694 + 0.0774i -1.3499 - 1.2141i 0.2154 -0.2050 + 0.3714i -0.1241 - 0.2256i 1.0000 -1.2075 + 1.1006i 0.7172 + 1.5442i 4.6416 -0.3034 + 2.3505i 0.2939 - 0.6156i 21.5443 - 0.9443 - 1.4224i 100.0000 -1.7115 + 0.2916i -0.1022 + 0.1978i从输入2到:频率(rad/s)输出3 ---------------- -------- 0.0100 -1.3077 + 0.6277i 0.0464 3.0349 - 1.1135i 0.2154 1.4897 + 1.1174i 1.0000 1.6302 + 0.0859i 4.6416 -0.7873 + 0.7481i 21.5443 1.4384 + 0.4882i 100.0000 -0.2414 + 1.5877i采样时间:5秒离散时间频率响应。
指定的数据产生两个输入,三个输出的朋友
模型。
具有遗传特性的频率响应数据模型
对于本例,创建一个具有从传递函数模型继承的属性的频率响应数据模型。
创建传递函数sys1
与TimeUnit
属性设置为“分钟”
而且InputDelay
属性设置为3。
Numerator1 = [2,0];Denominator1 = [1,8,0];Sys1 = tf(分子1,分母1,“TimeUnit”,“分钟”,“InputDelay”3)
sys1 = 2s exp(-3*s) * --------- s^2 + 8 s连续时间传递函数。
propValues1 = {sys1.TimeUnit,sys1.InputDelay}
propValues1 =1×2单元格数组{“分钟”}{[3]}
创建一个的朋友
的属性继承的模型sys1
.
Rng (0) response = randn(1,1,7)+1i*randn(1,1,7);W = logspace(-2,2,7);Sys2 = frd(response,w,sys1)
sys2 =频率(rad/minute)响应--------------------- -------- 0.0100 0.5377 + 0.3426i 0.0464 1.8339 + 3.5784i 0.2154 -2.2588 + 2.7694i 1.0000 0.8622 - 1.3499i 4.6416 0.3188 + 3.0349i 21.5443 -1.3077 + 0.7254i 100.0000 -0.4336 - 0.0631i输入延迟(分钟):3连续时间频率响应。
propValues2 = {sys2.TimeUnit,sys2.InputDelay}
propValues2 =1×2单元格数组{“分钟”}{[3]}
观察到的朋友
模型sys2
具有相同的性质sys1
.
为频率响应数据模型指定状态名和输入名
对于本例,加载为水箱模型收集的频率响应数据。
负载wtankData.mat
该模型有一个输入,电压,和一个输出,水高度。
创建一个的朋友
模型,指定输入和输出名称。
Sys = frd(响应,频率,“InputName”,“电压”,“OutputName”,“高度”);
画出频率响应。
波德(系统)
输入和输出名称出现在波德图上。在处理MIMO系统的响应图时,命名输入和输出是有用的。
将状态空间模型转换为频率响应数据模型
对于本例,计算的朋友
以下状态空间模型的模型:
使用状态空间矩阵创建状态空间模型。
A = [-2 -1;1 -2];B = [1 1;2 -1];C = [10];D = [0 1];ltiSys = ss(A,B,C,D);
转换状态空间模型ltiSys
到一个的朋友
频率介于0.01和100 rad/s之间的模型。
W = logspace(-2,2,50);sys = frd(ltiSys,w);
比较频率响应。
波德(ltiSys“b”系统,“r——”)
反应是相同的。
频率响应数据模型阵列
创建的数组的朋友
模型中,可以指定多维频响数据数组。
例如,当您将响应数据指定为大小为[纽约
ν
NF
S1
...Sn
,函数返回一个S1
——-…——-Sn
的数组的朋友
模型。每个模型都有纽约
输出,ν
输入,NF
频率点。
生成一个2 × 3的随机响应数据数组,具有1输出2输入模型,频率点在0.1到10拉德/秒之间。
W = logspace(-1,1,10);R = randn(1,2,10,2,3)+1i*randn(1,2,10,2,3);Sys = frd(r,w);
从模型数组中提取索引(2,1)处的模型。
Sys21 = sys(:,:,2,1)
sys21 =从输入1到:频率(rad/s)输出1 ---------------- -------- 0.1000 0.6715 + 0.0229i 0.1668 0.7172 - 1.7502i 0.2783 0.4889 - 0.8314i 0.4642 0.7269 - 1.1564i 0.7743 0.2939 - 2.0026i 1.2915 0.8884 + 0.5201i 2.1544 -1.0689 - 0.0348i 3.5938 -2.9443 + 1.0187i 5.9948 0.3252 - 0.7145i 10.0000 1.3703 - 0.2248i从输入2到:频率(rad/s)输出1 ---------------- -------- 0.1000 -1.2075 - 0.2620i 0.1668 1.6302 - 0.2857i 0.2783 1.0347 - 0.9792i 0.4642 -0.3034 - 0.5336i 0.7743 -0.7873 + 0.9642i 1.2915 -1.1471 - 0.0200i 2.1544 -0.8095 - 0.7982i 3.5938 1.4384 - 0.1332i 5.9948 -0.75 549 + 1.3514i 10.0000 -1.7115 - 0.5890i连续时间频率响应。
具有负频率的频率响应数据模型
可以在frd对象中指定负频率值。当您希望捕获具有复系数的模型的频率响应数据时,此功能非常有用。
创建一个具有正负值的频率向量。
w0 =排序([-logspace (2, 2, 50) 0 logspace (2, 2, 50)]);
创建一个具有复系数的状态空间模型。
A = [-3.50,-1.25-0.25i;2,0];B = [1;0];C = [-0.75-0.5i,0.625-0.125i];D = 0.5;Gc = ss(A,B,C,D);
将模型转换为指定频率的frd模型。
sys = frd(Gc,w0);
绘制模型的频率响应图。
波德(Gc,“b”系统,“r——”)
情节反应非常吻合。该图显示了复系数模型的两个分支,一个是正频率,带有指向右的箭头,另一个是负频率,带有指向左的箭头。在两个分支中,箭头表示频率增加的方向。
版本历史
R2006a之前介绍
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。