主要内容

的朋友

频率响应数据模型

描述

使用的朋友创建实值或复值频率响应数据模型,或进行转换动态系统模型以频率响应数据模型形式。

频率响应数据模型存储了具有相应频率点的复杂频率响应数据。例如,一个频率响应数据模型Hjw,存储每个输入频率下的频率响应w,在那里= 1,…,n.的的朋友模型对象可以表示连续时间或离散时间的SISO或MIMO频响数据模型。有关更多信息,请参见频响数据(FRD)模型

你也可以使用的朋友要创建广义频率响应数据(genfrd)模型。

创建

你可以获得的朋友以下列方式之一建模。

描述

例子

sys=朋友(响应频率创建连续时间频率响应数据(的朋友)模型,设置ResponseData而且频率属性。频率可以同时包含负频率和正频率。

例子

sys=朋友(响应频率ts创建一个离散时间的朋友用样本时间建模ts.若不指定采样时间,请设置ts为1。

例子

sys=朋友(响应频率ltiSys创建具有从动态系统模型继承的属性的频率响应数据模型ltiSys,包括采样时间。

例子

sys=朋友(___名称,值使用一个或多个先前任何输入参数组合的名称-值参数设置频率响应数据模型的属性。

例子

sys=朋友(ltiSys频率转换动态系统模型ltiSys到频率响应数据模型。的朋友计算指定频率处的频率响应频率sys继承其频率单位rad/TimeUnitltiSys。TimeUnit

sys=朋友(ltiSys频率FrequencyUnits)属性指定的单位中的频率FrequencyUnit

输入参数

全部展开

频率响应数据,指定为矢量或复数的多维数组。

  • 对于SISO系统,在指定的频率点指定频率响应值的矢量频率

  • 用于MIMO系统ν输入和纽约输出,指定纽约——- - - - - -ν——- - - - - -Nf数组,Nf是频率点的个数。

  • 对于一个S1-…———Sn模型阵列ν输入和纽约输出,指定大小为[纽约νNfS1...Sn].

    例如,a响应大小的[纽约νNf3.4]表示3 × 4模型数组的响应数据。每个模型都有纽约输出,ν输入,Nf频率点。

此输入设置ResponseData财产。

对应的频率点响应,指定为包含Nf点。频率可以同时包含正频率和负频率。

此输入设置频率财产。

采样时间,指定为标量。

输入设置Ts财产。

动态系统,指定为SISO或MIMO动态系统模型或者一组动态系统模型。您可以使用的动态系统包括:

  • 连续时间或离散时间数值LTI模型,例如特遣部队zpk党卫军,或pid模型。

  • 广义的或不确定的LTI模型,如一族号航空母舰(鲁棒控制工具箱)模型。(使用不确定模型需要鲁棒控制工具箱™软件。)

    由此产生的的朋友模型假设:

    • 可调控制设计块的可调组件的当前值

    • 不确定控制设计块的标称模型值

  • 确定的LTI模型,例如idtf(系统识别工具箱)中的难点(系统识别工具箱)idproc(系统识别工具箱)idpoly(系统识别工具箱),idgrey(系统识别工具箱)模型。(使用识别的模型需要系统识别工具箱™软件。)

属性

全部展开

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

  • 对于SISO系统,ResponseData是一个1——- - - - - -1——- - - - - -Nf的频率响应值数组Nf中指定的频率点频率财产。

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

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

  • 对于一个S1-…———Sn模型阵列ν输入和纽约输出,ResponseData是一个多维数组,大小为[纽约νNfS1...Sn].

    例如,aResponseData大小的[纽约νNf3.4]表示3 × 4模型数组的响应数据。每个模型都有纽约输出,ν输入,Nf频率点。

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

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

  • “rad / TimeUnit”

  • “周期/ TimeUnit”

  • “rad / s”

  • “赫兹”

  • “赫兹”

  • “兆赫”

  • “GHz”

  • “转”

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

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

传输延迟,指定为下列之一:

  • 标量-为SISO系统指定传输延迟,或为MIMO系统的所有输入/输出对指定相同的传输延迟。

  • 纽约——- - - - - -νarray -为MIMO系统的每个输入/输出对指定单独的传输延迟。在这里,纽约输出的数量和ν是输入的数量。

类指定的时间单位指定传输延迟TimeUnit财产。对于离散时间系统,指定传输延迟为采样时间的整数倍,Ts

每个输入通道的输入延迟,指定为以下之一:

  • 标量——为单输入输入系统指定输入延迟,或为多输入系统的所有输入指定相同的延迟。

  • ν-by-1 vector -为多输入系统的输入指定单独的输入延迟,其中ν是输入的数量。

方法所指定的时间单位指定输入延迟TimeUnit财产。对于离散时间系统,指定输入延迟为采样时间的整数倍,Ts

有关更多信息,请参见线性系统中的时间延迟

每个输出通道的输出延迟,指定为以下之一:

  • 标量-为单输出输出系统指定输出延迟,或为多输出系统的所有输出指定相同的延迟。

  • 纽约-by-1 vector -为多输出系统的输出指定单独的输出延迟,其中纽约是输出的数量。

方法所指定的时间单位指定输出延迟TimeUnit财产。对于离散时间系统,指定输出延迟为采样时间的整数倍,Ts

有关更多信息,请参见线性系统中的时间延迟

采样时间,指定为:

  • 0对于连续时间系统。

  • 表示离散时间系统采样周期的正标量。指定Ts方法指定的时间单位TimeUnit财产。

  • -1对于一个采样时间不确定的离散系统。

请注意

改变Ts不对模型进行离散化或重新采样。

时间变量单位,指定为下列之一:

  • “纳秒”

  • 微秒的

  • 的毫秒

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

改变TimeUnit对其他属性没有影响,但会改变整个系统行为。使用chgTimeUnit在时间单位之间转换而不修改系统行为。

输入通道名称,指定为以下之一:

  • 一个字符向量,用于单输入模型。

  • 字符向量的单元格数组,用于多输入模型。

  • ,没有为任何输入通道指定名称。

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

sys。InputName =“控制”

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

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

使用InputName:

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

  • 提取MIMO系统的子系统。

  • 对接模型时,请指定连接点。

输入通道单位,指定为下列之一:

  • 一个字符向量,用于单输入模型。

  • 字符向量的单元格数组,用于多输入模型。

  • ,没有指定任何输入通道的单位。

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

输入通道组,指定为结构。使用InputGroup将MIMO系统的输入通道划分为组,并以名称引用每个组。的字段名InputGroup是组名,字段值是每个组的输入通道。例如,输入以下内容创建名为控制而且噪音包括输入通道1而且2,3.而且5,分别。

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

然后,您可以从控制输入到所有输出使用以下。

sys (:,“控制”

默认情况下,InputGroup是一个没有字段的结构。

输出通道名称,指定为以下之一:

  • 一个字符向量,用于单输出模型。

  • 字符向量的单元格数组,用于多输出模型。

  • ,没有为任何输出通道指定名称。

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

sys。OutputName =“测量”

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

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

使用OutputName:

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

  • 提取MIMO系统的子系统。

  • 对接模型时,请指定连接点。

输出通道单位,指定为下列之一:

  • 一个字符向量,用于单输出模型。

  • 字符向量的单元格数组,用于多输出模型。

  • ,不指定任何输出通道的单位。

使用OutputUnit指定输出信号单位。OutputUnit对系统行为没有影响。

输出通道组,指定为结构。使用OutputGroup将MIMO系统的输出通道划分为组,并以名称引用每个组。的字段名OutputGroup是组名,字段值是每个组的输出通道。例如,创建名为温度而且测量包括输出通道1,3.而且5,分别。

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

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

系统(“测量”:)

默认情况下,OutputGroup是一个没有字段的结构。

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

希望与系统关联的用户指定文本,指定为字符向量或字符向量的单元格数组。例如,“系统是MIMO”

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

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

使用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模型生成的模型数组,软件进行填充金宝appSamplingGrid自动使用对应于数组中每个条目的变量值。例如,金宝appSimulink控制设计命令线性化(金宝appSimulink控制设计)而且slLinearizer(金宝appSimulink控制设计)填充SamplingGrid自动。

默认情况下,SamplingGrid是一个没有字段的结构。

对象的功能

下面的列表包含您可以使用的函数的一个代表性子集的朋友模型。一般来说,许多函数适用于动态系统模型也适用于a的朋友对象。的朋友模型不能与任何时域分析函数一起工作。

全部展开

波德 波德图的频率响应,或幅度和相位数据
σ 动态系统奇异值图
尼奎斯特 频率响应的奈奎斯特图
尼克尔斯 尼克尔斯频率响应图
带宽 频响带宽
freqresp 在一个频率网格上评估系统响应
保证金 增益裕度、相位裕度和交叉频率
chgFreqUnit 改变频率响应数据模型的频率单位
chgTimeUnit 改变动态系统的时间单位
frdfun 将函数应用于频率响应值在每个频率上的朋友模型对象
fselect 在FRD模型中选择频率点或范围
插值函数 插值FRD模型
fcat 沿频率维级联FRD模型
fnorm FRD模型的点向峰值增益
反馈 多型号反馈连接
连接 动态系统连接的框图
系列 两种型号串联
平行 两种型号并联
pidtune 线性植物模型的PID整定算法

例子

全部折叠

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

对于本例,加载为水箱模型收集的频率响应数据。

负载wtankData.mat

此数据包含在频率范围内收集的频率响应数据 10 - 3. rad /年代 10 2 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

波德(系统)

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

对于本例,考虑随机生成的响应数据和频率。

生成一个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秒离散时间频率响应。

指定的数据产生两个输入,三个输出的朋友模型。

对于本例,创建一个具有从传递函数模型继承的属性的频率响应数据模型。

创建传递函数sys1TimeUnit属性设置为“分钟”而且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”“高度”);

画出频率响应。

波德(系统)

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

输入和输出名称出现在波德图上。在处理MIMO系统的响应图时,命名输入和输出是有用的。

对于本例,计算的朋友以下状态空间模型的模型:

一个 - 2 - 1 1 - 2 B 1 1 2 - 1 C 1 0 D 0 1

使用状态空间矩阵创建状态空间模型。

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——”

图中包含4个轴对象。轴对象1,标题From: In(1)包含2个类型为line的对象。这些对象分别代表ltiSys、sys。坐标轴对象2包含2个line类型的对象。这些对象分别代表ltiSys、sys。轴对象3,标题From: In(2)包含2个类型为line的对象。这些对象分别代表ltiSys、sys。Axes对象4包含2个line类型的对象。这些对象分别代表ltiSys、sys。

反应是相同的。

创建的数组的朋友模型中,可以指定多维频响数据数组。

例如,当您将响应数据指定为大小为[纽约νNFS1...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——”

图中包含2个轴对象。坐标轴对象1包含2个line类型的对象。这些对象代表Gc, sys。坐标轴对象2包含2个line类型的对象。这些对象代表Gc, sys。

情节反应非常吻合。该图显示了复系数模型的两个分支,一个是正频率,带有指向右的箭头,另一个是负频率,带有指向左的箭头。在两个分支中,箭头表示频率增加的方向。

版本历史

R2006a之前介绍