主要内容

FRD.

频率特性的数据模型

描述

FRD.创建实值或复数值频率响应数据模型,或转换动态系统模型以频响数据模型形式表示。

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

你也可以用FRD.创建广义频率响应数据(genfrd)模型。

创建

你可以获得FRD.模型以下列方式之一。

描述

例子

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

例子

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

例子

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

例子

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

例子

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

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

输入参数

全部展开

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

  • 对于单输入单输出(SISO)系统,请指定在中规定的频率点处的频率响应值向量频率

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

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

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

这个输入设置了ResponseData财产。

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

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

样本时间,指定为标量。

输入设置Ts财产。

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

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

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

    由此产生的FRD.模型假设:

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

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

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

属性

全部展开

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

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

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

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

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

    例如,一个ResponseData的大小(纽约ν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

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

  • 标量-指定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对系统行为没有影响。

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

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

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

系统(“测量”:)

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

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

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

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

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

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

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

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

sysarr。SamplingGrid =结构(“时间”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模型生成的模型阵列,软件填充金宝appSamplingGrid自动使用数组中每个条目对应的变量值。例如,金宝appSimulink控制设计命令线性化(金宝app仿真软件控制设计)slLinearizer(金宝app仿真软件控制设计)填充SamplingGrid自动。

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

对象的功能

以下列表包含您可以使用的功能的代表子集FRD.模型。一般来说,许多函数适用于动态系统模型也适用于aFRD.对象。FRD.模型不适用于任何时域分析功能。

全部展开

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

例子

全部收缩

创建一个FRD.频率响应数据的对象。

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

负载wtankData.mat

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

创建模型。

SYS = FRD(响应,频率)
SYS =频率(RAD / S)响应--------------------- 0.0010 1.562C + 01  -  1.9904i 0.0018 1.560E + 01  -  2.0947I 0.00341.513E + 01  -  3.3670I 0.0062 1.373E + 01  -  5.4306I 0.0113 1.047E + 01  -  7.5227I 0.0207 5.82990 0.03992 0.0379 2.340E + 00  -  5.6271I 0.0695 7.6271I 0.0695 7.7652S 0.0695 7.6271I 0.06990 0.0379 2.340E-0.017990-01  -  1.9295i 0.2336 7.216e-02  -  1.0648i 0.4281 2.157e-02  -  0.5834i 0.7848 6.433e-03  -  0.3188i 1.4384 1.916e-03  -  0.1740i 2.6367 5.705e-04  -  0.0950i 4.8329 1.698e-04-  0.0518I 8.8587 5.055E-05  -  0.0283I 16.2378 1.5052-05  -  0.0154I 29.7635 4.478E-06  -  0.0084I 54.0559 1.333E-06  -  0.0046I 100.0000 3.967E-07  -  0.0025i连续时间频率响应。

阴谋sys

波德(系统)

图中包含2个轴对象。axis对象1包含一个类型为line的对象。该对象表示sys。axis对象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.01000.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.1924I -1.1471 + 0.8886i 100.0000 0.3252  -  0.1774i -0.7549  - 从输入1到0.1961i到:频率(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 From input 2 to: Frequency(rad/s) output 1 output 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.8095 - 1.4023i -2.9443 - 1.4224i 100.0000 -1.7115 + 0.2916i -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.

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

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

创建传递函数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]}

创建一个FRD.具有继承属性的模型sys1

Rng (0) response = randn(1,1,7)+1i*randn(1,1,7);w = logspace(2, 2、7);sys2 =朋友(响应,w, sys1)
sys2 = Frequency(rad/minute) Response --------------------- -------- 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]}

观察到这一点FRD.模型sys2具有相同的性质sys1

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

负载wtankData.mat

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

创建一个FRD.模型,指定输入和输出名称。

sys = frd(响应,频率,“InputName”“电压”“OutputName”“高度”);

绘制频率响应图。

波德(系统)

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

输入和输出名称显示在Bode图中。在处理MIMO系统的响应图时,为输入和输出命名可能很有用。

对于本例,计算FRD.以下国家空间模型的模型:

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

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

A = [-1 -1;1 -2];B = [1 1;2 -1];C = [1 0];D = [0 1];ltiSys = ss (A, B, C, D);

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

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

比较频率响应。

波德(ltiSys“b”系统,“r——”

图中包含4个轴对象。在(1)中包含2个类型为line的对象。这些对象表示ltiSys、sys。axis对象2包含2个类型为line的对象。这些对象表示ltiSys、sys。在(2)中包含2个类型为line的对象。这些对象表示ltiSys、sys。axis对象4包含2个类型为line的对象。这些对象表示ltiSys、sys。

答案是相同的。

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

例如,当您将响应数据指定为大小为[纽约νNFS1...Sn时,函数返回aS1——-…——-Sn的数组FRD.模型。每个模型都有纽约输出,ν输入,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 =系统(:,:2 1)
SYS21 =从输入1到:频率(RAD / S)输出1 --------------------- 0.1000 0.6715 + 0.0229i 0.1668 0.7172  -  1.7502I 0.27830.4889  -  0.8314i 0.4642 0.7743 0.7743 0.2939  -  2.0026I 1.2915 0.8884 + 0.5201I 2.1544 -1.0689  -  0.03488 3.5938 -2.9443 + 1.01871 -2.9443 + 1.0187I 5.9948 0.3252  -  0.7145I 10.0000 1.3703  -  0.2248  - 从输入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.4642 -0.3034  -  0.5336i0.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.7549 + 1.3514I 10.0000 -1.7115  -  0.5890I连续时间频率响应。

你可以在一个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。axis对象2包含2个类型为line的对象。这些对象代表Gc, sys。

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

之前介绍过的R2006a