主要内容

的朋友

频率特性的数据模型

描述

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

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

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

创造

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

描述

例子

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

例子

系统=朋友(响应频率ts创建一个离散时间的朋友模型与样本时间ts.若要不指定样本时间,请设置ts到–1。

例子

系统=朋友(响应频率ltiSys使用从动态系统模型继承的属性创建频率响应数据模型ltiSys,包括示例时间。

例子

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

例子

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

系统=朋友(ltiSys频率FrequencyUnits)用指定的单位解释频率FrequencyUnit

输入参数

全部展开

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

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

  • 对于具有ν输入和纽约输出,指定一个纽约——- - - - - -ν——- - - - - -Nf数组,在哪里Nf为频率点的个数。

  • 为了S1-…———具有ν输入和纽约输出时,指定大小为[纽约νNfS1...].

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

这个输入设置了ResponseData财产。

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

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

采样时间,指定为标量。

输入设置Ts财产。

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

  • 连续时间或离散时间数值LTI模型,如tfzpk党卫军,或pid模型。

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

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

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

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

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

性质

全部展开

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

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

  • 对于具有ν输入和纽约产出,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”

  • “赫兹”

  • “赫兹”

  • “兆赫”

  • “千兆赫”

  • “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。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.OutputName=“测量”

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

您也可以使用速记符号y参考OutputName财产。例如,sys.y相当于sys.OutputName

使用OutputName:

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

  • 提取MIMO系统的子系统。

  • 在连接模型时指定连接点。

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

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

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

  • '',没有为任何输出通道指定单位。

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

输出通道组,指定为结构。使用OutputGroup将MIMO系统的输出信道分配到组中,并按名称引用每个组。的字段名OutputGroup是组名,字段值是每个组的输出通道。例如,创建名为温度测量包括输出通道1,3.5,分别。

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

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

系统(“测量”:)

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

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

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

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

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

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

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

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

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

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

[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>)“ζ”,泽塔,' 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模型而生成的模型阵列,软件将填充金宝app取样网格自动使用数组中每个条目对应的变量值。例如,金宝app仿真软件控制设计命令线性化(金宝app仿真软件控制设计)slLinearizer(金宝app仿真软件控制设计)填充取样网格自动地

默认情况下,取样网格是一个没有字段的结构。

对象的功能

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

全部展开

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

例子

全部折叠

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

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

负载wtankData.mat

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

创建模型。

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 -连续时间的频率响应。

情节系统

波德(系统)

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

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

生成一个3 × 2 × 7的复杂阵列和一个频率矢量,有7个点,在0.01和100 rad/s之间。设置样本时间Ts5秒。

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}
属性值1=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.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 =朋友(响应、频率、“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=[11;2-1];C=[10];D=[01];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)的轴对象1包含2个line类型的对象。这些对象表示ltiSys,sys。轴对象2包含2个line类型的对象。这些对象表示ltiSys,sys。标题来自(2)的轴对象3包含2个line类型的对象。这些对象表示ltiSys,sys。轴对象4包含2个line类型的对象。这些对象表示ltiSys,sys。

答案是相同的。

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

例如,当您将响应数据指定为大小为[纽约νNFS1...时,函数返回aS1-由…-由-的数组的朋友模型。每个模型都有纽约产出,ν输入,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个line类型的对象。这些对象表示Gc,sys。轴对象2包含2个line类型的对象。这些对象表示Gc,sys。

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

之前介绍过的R2006a