主要内容

的朋友

频率特性的数据模型

描述

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

频率响应数据模型存储具有相应频率点的复杂频率响应数据。例如,频率响应数据模型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-…———具有ν输入和纽约输出时,指定大小为[纽约νNfS1...].

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

这个输入设置了ResponseData财产。

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

这个输入设置了频率财产。

采样时间,指定为标量。

输入设置TS.财产。

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

  • 连续时间或离散时间数值LTI模型,如TF.zpkSS.,或pid模型。

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

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

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

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

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

特性

全部展开

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

  • 对于输出系统,ResponseData是A.1——- - - - - -1——- - - - - -Nf频率响应值Nf中指定的频率点频率财产。

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

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

  • S1-…———具有ν输入和纽约输出,ResponseData是一个大小为[纽约νNfS1...].

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

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

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

  • “rad / TimeUnit”

  • “周期/ TimeUnit”

  • “rad / s”

  • “赫兹”

  • “赫兹”

  • “兆赫”

  • 'ghz'

  • 'rpm'

的单位“rad / TimeUnit”“周期/ TimeUnit”是相对于TimeUnit财产。

更改此属性不会重新确定或转换数据。修改属性仅更改现有数据的解释。使用chgFreqUnit将数据转换成不同的频率单位。

运输延误,指定为下列情形之一:

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

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

对于连续时间系统,使用指定的时间单位指定传输延迟TimeUnit财产。对于离散时间系统,在图案时间的整数倍数中指定传输延迟,TS.

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

  • 标量 - 指定SISO系统的输入延迟或多输入系统所有输入的相同延迟。

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

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

有关更多信息,请参见线性系统的时滞

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

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

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

对于连续时间系统,请在指定的时间单位中指定输出延迟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是组名,字段值是每个组的输入通道。例如,输入以下命令以创建名为控制噪音包括输入通道12,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 Systems的输出通道分配成组,请按名称引用每个组。的字段名OutputGroup是组名,字段值是每个组的输出通道。例如,创建名为温度测量包括输出通道1,3.5,分别。

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

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

SYS(“测量”:)

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

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

要与系统关联的用户指定的文本,指定为字符向量或字符向量的单元格数组。例如,'系统是mimo'

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

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

使用SamplingGrid.跟踪与模型数组中每个模型关联的变量值,包括已识别的线性时不变(IDLTI)模型数组。

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

例如,您可以创建一个11×1阵列的线性模型,sysarr,通过对线性时变系统进行定时快照t = 0:10.下面的代码使用线性模型存储时间样本。

sysarr.samplinggrid = struct(“时间”0:10)

类似地,你可以创建一个6乘9的模型数组,,通过对两个变量独立抽样,Zeta.w.下面的代码映射(ζ,w)

[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>)“ζ”,Zeta,' w 'w)

当您显示,数组中的每一项都包含相应的Zeta.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…

对于通过在多个参数值或操作点来实现的模拟模型生成的模型阵列,软件填充金宝appSamplingGrid.自动使用数组中每个条目对应的变量值。例如,金宝app仿真软件控制设计命令线性化(金宝app仿真软件控制设计)slLinearizer(金宝app仿真软件控制设计)填充SamplingGrid.自动地。

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

对象的功能

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

全部展开

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

例子

全部折叠

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

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

负载wtankdata.mat.

该数据包含为频率范围收集的频率响应数据 10 - 3. rad /年代 10 2 rad / s。

创建模型。

sys =朋友(响应、频率)
sys =频率(rad / s)的反应  ---------------- -------- 0.0010 - 1.562 e + 01 - 1.9904 0.0018 1.560 e + 01 - 2.0947我0.0034 - 1.513 e + 01 - 3.3670 0.0062 1.373 e + 01 - 5.4306我0.0113 - 1.047 e + 01 - 7.5227我0.0207 - 5.829 e + 00 - 7.6529 0.0379 2.340 e + 00 - 5.6271我e-01 7.765 0.0695 - 3.4188 0.1274 - 2.394 e-01 - 1.9295我e-02 7.216 0.2336 - 1.0648 0.4281 - 2.157 e-02 -连续时间的频率响应。

情节SYS.

波德(系统)

图中包含2个轴对象。轴对象1包含类型线的对象。该对象表示sys。axis对象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 =朋友(r, w, Ts)
sys =从输入1到:频率(rad / s)输出1输出2  ---------------- -------- -------- 0.0100 0.5377 1.8339 + 0.3129 + 0.3192我0.0464 - -0.4336 + 1.0933我0.3426 + 1.1093 0.2154 0.7254 - 0.0068 -0.0631 1.0000 - 1.4090 - 1.0891 + 1.5326我1.4172 + 0.0326我4.6416 0.4889 - 1.4916 1.0347 - 0.7423 21.5443 - 0.8884 - 0.1924我-1.1471 + 0.8886 100.0000 0.3252 - 0.1774从输入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频率(rad / s)输出1输出2  ---------------- -------- -------- 我0.0100 0.8622 - 0.0301 0.3188 - 0.1649 0.0464 - 2.7694 + 0.0774我-1.3499 - 1.2141 0.2154 - -0.2050 + 0.3714我-0.1241 - 0.2256 1.0000 - -1.2075 4.6416 - -0.3034我0.7172 + 1.5442 + 1.1006 + 2.3505我0.2939 - 0.6156 21.5443 -0.8095 - 1.4023 -2.9443 - 1.4224 100.0000 - -1.7115 + 0.2916我-0.1022+ 0.1978i From input 2 to: Frequency(rad/s) output 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 Sample time: 5 seconds Discrete-time frequency response.

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

对于此示例,创建具有从传输函数模型继承的属性的频率响应数据模型。

创建传递函数sys1TimeUnit属性设置为'分钟'InputDelay属性设置为3。

numerator1 = (2,0);denominator1 = (1 8 0);sys1 =特遣部队(numerator1 denominator1,“TimeUnit”'分钟'“InputDelay”3)
* --------- s^2 + 8s连续时间传递函数。
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 =朋友(响应,w, sys1)
SYS2 =频率(RAD /分钟)响应------------------------ 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 Input delays (minutes): 3 Continuous-time frequency response.
propValues2 = {sys2.TimeUnit, sys2.InputDelay}
propvalues2 =1×2单元阵列{“分钟”}{[3]}

观察到的的朋友模型sys2具有相同的性质sys1

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

负载wtankdata.mat.

该模型有一个输入,电压,和一个输出,水高度。

创建一个的朋友模型,指定输入和输出名称。

sys =朋友(响应、频率、“InputName”“电压”'outputname'“高度”);

绘制频率响应。

波德(系统)

图中包含2个轴对象。标题为“从:电压到:高度”的轴对象1包含一个类型为line的对象。该对象表示sys。axis对象2包含一个类型为line的对象。该对象表示sys。

输入和输出名称显示在Bode图中。在处理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 = [1 0];d = [0 1];LTISYS = SS(A,B,C,D);

转换状态空间模型ltiSys到一个的朋友用于频率在0.01和100 rad/s之间的模型。

w = logspace (2, 2, 50);sys =朋友(ltiSys w);

比较频率响应。

波德(ltiSys'B'系统,“r——”

图包含4个轴对象。具有标题的轴对象1来自:IN(1)包含2个类型的2个对象。这些对象代表LTISYS,SYS。轴对象2包含2个类型的2个对象。这些对象代表LTISYS,SYS。具有标题的轴对象3:(2)中包含2个类型的类型。这些对象代表LTISYS,SYS。轴对象4包含2个类型的2个对象。这些对象代表LTISYS,SYS。

答案是相同的。

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

例如,当您将响应数据指定为大小为[纽约νNFS1......时,函数返回aS1-By -...-的数组的朋友模型。每个模型都有纽约输出,ν输入,NF频率点。

在0.1和10 rad/s之间的10个频率点上生成一个2 × 3的随机响应数据阵列,具有一个输出,两个输入模型。

10 w = logspace (1, 1);r = randn(1、2、10 2 3)+ 1我* randn(1、2、10、2、3);sys =朋友(r, w);

从模型数组中提取索引(2,1)处的模型。

SYS21 = SYS(::,:2,1)
sys21 =从输入1:频率输出1 (rad / s)  ---------------- -------- 0.1000 - 0.6715 + 0.0229我0.1668 0.7172 - 1.7502 0.2783 - 0.4889 - 0.8314我0.4642 0.7269 - 1.1564 0.7743 0.2939 - 2.0026 1.2915 - 0.8884 + 0.5201我2.1544 -1.0689 - 0.0348 3.5938 - -2.9443 5.9948 - 0.3252 - 0.7145 + 1.0187我我从输入2到10.0000 - 1.3703 - 0.2248:输出频率(rad / s) 1  ---------------- -------- 我0.1000 -1.2075 - 0.2620 0.1668 - 1.6302 0.2783 - 1.0347 - 0.9792 - 0.2857我0.4642 -0.3034 - 0.5336 0.7743 - -0.7873 + 0.9642我1.2915 -1.1471 - 0.0200 2.1544 - -0.8095 - 0.7982我3.5938 1.4384 - 0.1332 5.9948 - -0.7549 10.0000 - -1.7115 - 0.5890 + 1.3514我连续时间频率响应。

你可以在一个frd对象中指定负频率值。当您希望捕获具有复杂系数的模型的频率响应数据时,此功能非常有用。

创建一个具有正负值的频率矢量。

w0 =排序([-logspace (2, 2, 50) 0 logspace (2, 2, 50)]);

创建一个具有复杂系数的状态空间模型。

一个=[-3.50,-1.25 - -0.25;2、0];B = (1, 0);C = (-0.75 - -0.5, 0.625 - -0.125);D = 0.5;Gc = ss (A, B, C, D);

在指定的频率将模型转换为frd模型。

sys =朋友(Gc, w0);

绘制模型的频率响应图。

波德(Gc,'B'系统,“r——”

图中包含2个轴对象。轴对象1包含2个类型的2个对象。这些对象代表GC,SYS。轴对象2包含2个类型的2个对象。这些对象代表GC,SYS。

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

之前介绍过的R2006a