主要内容

idtf

具有可识别参数的传递函数模型

描述

一个idtf模型将系统表示为具有可识别(可估计)系数的连续时间或离散时间传递函数。使用idtf建立传递函数模型,或进行转换动态系统模型传递函数形式。

SISO传递函数是多项式与指数项的比值。在连续时间,

G 年代 e τ 年代 b n 年代 n + b n 1 年代 n 1 + ... + b 0 年代 + 一个 1 年代 1 + ... + 一个 0

在离散时间,

G z 1 z k b n z n + b n 1 z n + 1 + ... + b 0 z + 一个 1 z + 1 + ... + 一个 0

在离散时间,z- - - - - -k表示的时间延迟kT年代,在那里T年代是采样时间。

idtf模型,分母系数一个0、……一个1分子系数b0、……bn可以是可估计的参数。(前面的分母系数总是固定为1。)时间延迟τ(或k)也可以是一个可估计的参数。的idtf模型存储多项式系数一个0、……一个1而且b0、……bn分母而且分子模型的属性,分别。时间延迟τk存储在IODelay模型的属性。

不像中的难点而且idpolyidtf将噪声参数固定为1,而不是将其参数化。所以,在 y G u + H e H= 1。

MIMO传递函数包含一个与系统中每个输入输出对对应的SISO传递函数。为idtf每个输入输出对的多项式系数和传输延迟是独立可估计的参数。

创建

您可以获取idtf用三种方法之一建模对象。

  • 估计idtf模型基于系统的输入输出测量特遣部队.的特遣部队命令估计传递函数系数和传输延迟的值。估计值存储在分子分母,IODelay结果的属性idtf模型。在引用分子和分母属性时,可以使用快捷方式全国矿工工会而且.的报告属性存储关于估计的信息,例如初始条件的处理和估计中使用的选项。例如,您可以使用以下命令来估计和获取关于传递函数的信息。

    sys =特遣部队(数据、nx);num = sys.Numerator;穴= sys.den;sys。报告

    关于估计的更多例子idtf模型中,看到特遣部队

    当你获得idtf通过估计建模,可以从模型中提取估计系数及其不确定性。为此,可以使用以下命令tfdatagetpar,或getcov

  • 创建一个idtf模型使用idtf命令。例如,创建一个idtf用指定的分子和分母进行建模。

    sys = idtf (num穴)
    您可以创建idtf模型配置传递函数估计的初始参数化,以拟合实测响应数据。这样做时,可以指定分子和分母系数以及传输延迟等值的约束。例如,您可以固定一些参数的值,或者为空闲参数指定最小或最大值。然后,您可以使用配置的模型作为输入参数特遣部队用这些约束条件估计参数值。有关示例,请参见建立连续传递函数模型而且创建离散时间传递函数

  • 将现有的动态系统模型转换为idtf模型使用idtf命令。例如,转换状态空间模型sys_ss到传递函数。

    sys_tf = idtf (sys_ss);
    有关更详细的示例,请参见可识别状态空间模型转换为可识别传递函数

有关可用于从中提取信息或转换信息的函数的信息idtf模型对象,看对象的功能

描述

建立传递函数模型

例子

sys= idtf(分子、分母)创建具有可识别参数的连续时间传递函数模型。分子指定传递函数分子系数的当前值。分母指定传递函数分母系数的当前值。

例子

sys= idtf(分子、分母Ts)创建一个具有样本时间的离散传递函数模型Ts

例子

sys= idtf (___名称,值方法创建传递函数属性由一个或多个指定的名称,值对参数。在前面语法中的任何输入参数组合之后指定名称-值对参数。

将动态系统模型转化为传递函数模型

例子

sys= idtf (sys0转换任何动态系统模型sys0idtf模型形式。

输入参数

全部展开

任何动态系统都可以转换成idtf模型。

sys0是一个已识别模型,其估计的参数协方差在转换过程中丢失。如果您想在转换期间转换估计的参数协方差,请使用translatecov

属性

全部展开

传递函数分子系数的值,指定为行向量或单元格数组。

对于SISO传递函数,分子系数的值按以下顺序存储为行向量:

  • 下行的力量年代p(对于连续时间传递函数)

  • 提升的能力z11(对于离散时间传递函数)

任何初值未知的系数被存储为

对于MIMO传递函数纽约输出和ν输入,分子是一个纽约——- - - - - -ν每个输入/输出对的分子系数单元格数组。有关MIMO传递函数的示例,请参见创建MIMO离散时间传输函数

如果你创建一个idtf模型sys使用idtf命令,sys。ν米erator方法指定的分子系数的初值分子输入参数。

如果你获得idtf使用识别模型特遣部队,然后sys。ν米erator包含分子系数的估计值。

对于一个idtf模型sys,房地产sys。ν米erator是属性值的别名吗sys.Structure.Numerator.Value

传递函数分母系数的值,指定为行向量或单元格数组。

对于SISO传递函数,分母系数的值按以下顺序存储为行向量:

  • 下行的力量年代p(对于连续时间传递函数)

  • 提升的能力z11(对于离散时间传递函数)

的领先系数分母固定为1。任何初值未知的系数被存储为

对于MIMO传递函数纽约输出和ν输入,分母是一个纽约——- - - - - -ν每个输入输出对的分母系数单元格数组。有关MIMO传递函数的示例,请参见创建MIMO离散时间传输函数

如果你创建一个idtf模型sys使用idtf命令,sys。Denominator方法指定的分母系数的初始值分母输入参数。

如果你获得idtf模型sys通过识别使用特遣部队,然后sys。Denominator包含分母系数的估计值。

对于一个idtf模型sys,房地产sys。Denominator是属性值的别名吗sys.Structure.Denominator.Value

传递函数显示变量,指定为以下值之一:

  • “年代”-默认连续时间模型

  • “p”——相当于“年代”

  • “z ^ 1”-默认离散时间模型

  • “问^ 1”——相当于“z ^ 1”

的价值变量是体现在展示上,又影响解读分子而且分母离散时间模型的系数向量。当变量被设置为“z ^ 1”“问^ 1”,系数向量按变量的升幂排序。

的例子变量财产,看到指定传递函数显示变量

传输延迟,指定为一个数字数组,其中包含每个输入输出对的单独传输延迟。

对于连续时间系统,传输延迟用存储在的时间单位表示TimeUnit财产。对于离散时间系统,传输延迟表示为整数,表示延迟为样本时间的倍数Ts

对于MIMO系统纽约输出和ν输入,设置IODelay作为一个纽约——- - - - - -ν数组中。该数组的每个条目都是表示相应输入输出对的传输延迟的数值。你可以设置IODelay对所有输入输出对应用相同的延迟。

如果你创建一个idtf模型sys使用idtf命令,然后sys。IODelay包含使用名称-值对参数指定的传输延迟的初始值。

如果你获得idtf模型sys通过识别使用特遣部队,然后sys。IODelay包含传输延迟的估计值。

对于一个idtf模型sys,房地产sys。IODelay是属性值的别名吗sys.Structure.IODelay.Value

的可估计参数的属性特定信息idtf模型,指定为单个结构或结构数组。

  • SISO系统-结构单一。

  • 分布式天线系统纽约输出和ν输入- - -纽约——- - - - - -ν数组中。的元素结构(i, j)的传递函数对应的信息(i, j)输入-输出。

结构。分子结构。Denominator,结构。IODelay分别包含分子系数、分母系数和传输延迟的信息。每个参数在结构包含以下字段。

描述 例子
价值 参数值。每个属性都是对应属性的别名价值条目的结构的属性sys表示未知参数值。 sys.Structure.Numerator.Value包含SISO分子系数的初始值或估计值。sys。ν米erator此属性值的别名。sys。ν米erator{i,j}是MIMO属性的别名吗sys.Structure .Numerator.Value (i, j)
最低 在估计过程中参数可以假定的最小值。 sys.Structure.IODelay.Minimum = 0.1将传输延迟约束为大于或等于0.1的值。sys.Structure.IODelay.Minimum必须大于等于零。
最大 在估计过程中参数可以假定的最大值。 sys.Structure.IODelay.Maximum = 0.5将传输延迟限制为小于或等于0.5的值。sys.Structure.IODelay.Maximum必须大于等于零。
免费的 指定参数是否是自由估计变量的布尔值。如果您希望在估计过程中固定某个参数的值,请设置相应的参数值免费的价值.对于分母,的值免费的对于前置系数,由sys.Structure.Denominator.Free (1),总是(前面的分母系数总是固定为1)。 sys.Structure.Denominator.Free = false固定了所有的分母系数sys中指定的值sys.Structure.Denominator.Value
规模 参数值的比例。估计算法不使用规模
信息 构造包含字段的数组标签而且单位用于存储参数标签和单元。指定参数标签和单位作为字符向量。 “时间”

模型创新的方差(协方差矩阵)e,指定为标量或矩阵。

  • SISO模型-标量

  • 再分配模型Ny输出-Ny——- - - - - -Ny矩阵

识别的模型包括高斯白噪声成分et).NoiseVariance是这个噪声分量的方差。通常,模型估计函数(如特遣部队)决定了这个方差。

此属性是只读的。

汇总报告,其中包含关于使用估计命令获得的传递函数模型的估计选项和结果的信息,例如特遣部队而且冲动.使用报告为识别的模型查找估计信息,包括:

  • 估算方法

  • 估计选项

  • 搜索终止条件

  • 估计数据拟合和其他质量度量

如果您通过构造创建模型,则内容报告是无关紧要的。

Sys = idtf([1 4],[1 20 5]);sys.Report.OptionsUsed
ans = []

如果使用估计命令获取模型,则报告包含关于评估数据、选项和结果的信息。

负载iddata2z2;sys =特遣部队(z2, 3);sys.Report.OptionsUsed
InitializeMethod: 'iv' InitializeOptions: [1×1 struct] InitialCondition: 'auto' Display: 'off' InputOffset: [] OutputOffset: [] EstimateCovariance: 1 Regularization: [1×1 struct] SearchMethod: 'auto' SearchOptions: [1×1 idoptions.search. search. InputOffset: [][] EnforceStability: 0 OutputWeight:[]高级:[1×1 struct]

有关此属性和如何使用它的更多信息,请参见相应的估计命令参考页的输出参数部分和评估报告

每个输入通道的输入延迟,指定为标量值或数字向量。对象中存储的时间单位指定输入延迟TimeUnit财产。对于离散时间系统,指定输入延迟为采样时间的整数倍Ts.例如,设置InputDelay3.指定三个采样次数的延迟。

对于一个Nu输入,设置InputDelay到一个Nu1的向量。该向量的每一项都是一个数值,表示对应输入通道的输入延迟。

您还可以设置InputDelay到一个标量值,以便对所有通道应用相同的延迟。

估计将InputDelay作为模型的固定常数。评估使用IODelay属性用于估计时间延迟。若要指定估计时延的初始值和约束,请使用sys.Structure.IODelay

对于已识别的系统,例如idtfOutputDelay固定为零。

采样时间,指定为以下之一。

  • 连续时间模型,0

  • 具有指定采样时间的离散时间模型。正标量表示用指定的单位表示的采样周期TimeUnit模型的属性

  • 样本时间不确定的离散时间模型-1

更改此属性不会对模型进行离散化或重新采样。使用汇集而且d2c在连续时间表示和离散时间表示之间转换。使用d2d改变离散时间系统的采样时间。

时间变量的单位是采样时间Ts,以及模型中的任何时间延迟,指定为标量。

更改此属性不会重新采样或转换数据。修改属性只会更改现有数据的解释。使用chgTimeUnit将数据转换为不同的时间单位。

输入通道名称,指定为字符向量或单元格数组。

  • 单输入模型——例如字符向量,“控制”

  • 多输入模型-字符向量的单元格数组

或者,使用自动矢量展开来为多输入模型分配输入名称。例如,如果sys为双输入模型,输入:

sys。InputName =“控制”;

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

当你估计一个模型使用iddata对象数据,软件自动设置InputName数据。InputName

你可以使用速记符号u请参阅InputName财产。例如,sys.u相当于sys。InputName

你可以用几种方式使用输入通道名,包括:

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

  • 提取MIMO系统的子系统

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

输入通道单元,指定为字符向量或单元格数组。

  • 单输入模型-字符向量

  • 多输入模型-字符向量的单元格数组

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

输入通道组,指定为结构。的InputGroup属性允许您将MIMO系统的输入通道划分为组,以便您可以通过名称引用每个组。在InputGroup结构,将字段名设置为组名,将字段值设置为属于每个组的输入通道。

例如,创建名为控制而且噪音分别包括输入通道1,2和3,5。

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

然后,您可以从控制使用以下语法输入所有输出:

sys(:,“控制”)

输出通道名称,指定为字符向量或单元格数组。

  • 单输入模型——例如字符向量,“测量”

  • 多输入模型-字符向量的单元格数组

或者,使用自动矢量展开来为多个输出模型分配输出名称。例如,如果sys为双输出模型,输入:

sys。OutputName =“测量”;

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

当你估计一个模型使用iddata对象数据,软件自动设置OutputName数据。OutputName

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

你可以用几种方式使用输出通道名,包括:

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

  • 提取MIMO系统的子系统

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

输出通道单元,指定为字符向量或单元格数组。

  • 单输入模型——例如字符向量,“秒”

  • 多输入模型-字符向量的单元格数组

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

输出通道组,指定为结构。的OutputGroup属性允许您将MIMO系统的输出通道划分为组并通过名称引用每个组。在OutputGroup结构,将字段名设置为组名,将字段值设置为属于每个组的输出通道。

例如,创建名为温度而且测量分别包括输出通道1和3,5。

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

然后可以从所有输入中提取子系统测量使用以下语法输出:

系统(“测量”,:)

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

希望与系统关联的任何文本,指定为字符串或字符向量的单元格数组。属性存储您提供的任何数据类型。例如,如果sys1而且sys2是动态系统模型,可以设置它们吗笔记属性如下。

sys1。笔记=sys1有一个字符串。;sys2。笔记=sys2有一个字符向量。;sys1。笔记sys2。笔记
Ans = "sys1 has a string." Ans = " sys2 has a character vector. "

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

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

对于通过抽样一个或多个自变量获得的已标识线性(IDLTI)模型数组,此属性跟踪与每个模型相关的变量值。当您显示或绘制模型数组时,会出现此信息。使用此信息将结果追溯到自变量。

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

例如,假设您在系统的各个操作点上收集数据。您可以分别为每个操作点识别一个模型,然后将结果叠加到一个单一的系统数组中。您可以用有关操作点的信息标记数组中的各个模型。

Nominal_engine_rpm = [1000 5000 10000];sys。SamplingGrid =结构(“转”nominal_engine_rpm)

在这里,sys是一个数组,其中包含分别在1000、5000和10000 rpm下获得的三个已识别的模型。

用于通过线性化Simulink生成的模型数组®在多个参数值或操作点建模时,软件进行填充SamplingGrid自动使用与数组中每个条目对应的变量值。

对象的功能

一般来说,任何函数都适用于动态系统模型适用于idtf模型对象。这些函数有四种一般类型。

  • 操作并返回的函数idtf模型对象使您能够转换和操作idtf模型。例如:

    • 使用合并合并估计idtf模型。

    • 使用汇集将一个idtf从连续时间到离散时间。使用d2c将一个idtf从离散时间到连续时间。

  • 执行分析和模拟功能的函数idtf对象,如波德而且sim卡

  • 检索或解释模型信息的函数,例如建议而且getpar

  • 功能转换idtf对象转换为不同的模型类型,例如idpoly对于时域或者idfrd对频域

下面的列表包含了您可以使用的具有代表性的函数子集idtf模型。

全部展开

translatecov 跨模型转换操作转换参数协方差
setpar 设置线性模型参数的值、边界等属性
chgTimeUnit 改变动态系统的时间单位
d2d 重新取样离散时间模型
d2c 将模型从离散时间转换为连续时间
汇集 将模型从连续时间转换为离散时间
合并 合并估计模型

全部展开

sim卡 模拟识别模型的响应
预测 利用扩展卡尔曼滤波器或无气味卡尔曼滤波器或粒子滤波器预测下一时间步的状态和状态估计误差协方差
比较 比较确定的模型输出和测量输出
冲动 动态系统的脉冲响应图;脉冲响应数据
一步 动态系统的阶跃响应图;阶跃响应数据
波德 频率响应波德图,或幅值和相位数据

全部展开

tfdata 接入传输函数数据
得到 访问模型属性值
getpar 获取线性模型参数的值和边界等属性
getcov 识别模型的参数协方差
建议 对数据或估计线性模型的分析和建议

全部展开

idpoly 具有可识别参数的多项式模型
中的难点 具有可识别参数的状态空间模型
idfrd 频率响应数据或模型

例子

全部折叠

指定一个具有可估计参数的连续时间单输入单输出(SISO)传递函数。传递函数的初值由下式给出:

G 年代 年代 + 4 年代 2 + 2 0 年代 + 5

Num = [1 4];Den = [1 20 5];G = idtf (num穴)
G = s + 4 -------------- s^2 + 20 s + 5连续时间识别传递函数。参数化:极点数:2零数:1自由系数数:4参数及其不确定性使用"tfdata", "getpvec", "getcov"。现状:直接建造或改造而成。不估计。

G是一个idtf模型。全国矿工工会而且的分子和分母多项式系数的初值 年代 .初始值为1和4的分子系数是可估参数。初始值为20和5的分母系数也是可估参数。前面的分母系数总是固定为1。

您可以使用G指定用于估计的初始参数化特遣部队

指定一个连续时间,已知输入延迟的SISO传递函数。传递函数的初值由下式给出:

G 年代 e - 5 8 年代 5 年代 + 5

把传递函数的输入标上名称“电压”并指定输入单位为伏特

使用名称-值对参数指定延迟、输入名称和输入单位。

num = 5;Den = [1 5];input_delay = 5.8;input_name =“电压”;input_unit =“伏”;G = idtf (num窝,“InputDelay”input_delay,...“InputName”input_name,“InputUnit”, input_unit);

G 是一个idtf模型。您可以使用G指定用于估计的初始参数化特遣部队.如果您这样做,建模属性如InputDelayInputName,InputUnit应用于估计模型。估计过程处理InputDelay作为一个固定值。如果要估计延迟并指定5.8 s的初始值,请使用IODelay财产。

指定一个具有可估计参数的离散时间SISO传递函数。传递函数的初值由下式给出:

H z z - 0 1 z + 0 8

指定采样时间为0.2秒。

Num = [1 -0.1];Den = [1 0.8];t = 0.2;H = idtf (num窝,Ts);

全国矿工工会而且是分子和分母多项式系数的初值。对于离散时间系统,指定系数的升幂 z - 1

Ts指定传递函数的采样时间为0.2秒。

H是一个idtf模型。分子和分母系数都是可估计的参数(除了固定为1的分母系数)。

指定一个离散时间,双输入,双输出传递函数。MIMO传递函数的初值由下式给出:

H z 1 z + 0 2 z z + 0 7 - z + 2 z - 0 3. 3. z + 0 3.

指定采样时间为0.2秒。

num ={1,(1,0);[1、2],3};洞穴= {(0.2),(0.7),(-0.3),(0.3)};t = 0.2;H = idtf (num、洞穴、Ts);

全国矿工工会而且洞穴指定单元格数组中系数的初始值。单元格数组中的每一项都对应于一个输入输出对的传递函数的分子或分母。例如,第一行全国矿工工会(1,0) {1,}.单元格数组指定传递函数的第一行的分子H.同样的,第一行洞穴{[0.2], [0.7]}的第一行的分母H

Ts指定传递函数的采样时间为0.2秒。

H是一个idtf模型。除了每个分母多项式的前导系数外,所有的多项式系数都是可估参数。这些系数总是固定为1。

指定以下离散时间传递函数为问^ 1

H - 1 1 + 0 4 - 1 1 + 0 1 - 1 - 0 3. - 2

指定采样时间为0.1秒。

Num = [1 0.4];Den = [1 0.1 -0.3];t = 0.1;convention_variable =“问^ 1”;H = idtf (num窝,Ts,“变量”, convention_variable);

使用名称-值对参数指定变量问^ 1

全国矿工工会而且分子和分母的多项式系数是的升幂吗 - 1

Ts指定传递函数的采样时间为0.1秒。

H是一个idtf模型。

指定一个具有可估系数的传递函数,其初始值由以下静态增益矩阵给出:

H 年代 1 0 1 1 1 0 3. 0 2

M = [1 0 1;1 1 0;3 0 2];H = idtf (M);

H是一个idtf模型,该模型描述了三个输入(ν= 3),三个输出(纽约= 3)传递函数。每个输入输出通道都是一个可估计的静态增益。增益的初始值由矩阵中的值给出

将具有可识别参数的状态空间模型转换为具有可识别参数的传递函数。

将以下可识别状态空间模型转换为可识别传递函数。

x t - 0 2 0 0 - 0 3. x t + - 2 4 u t + 0 1 0 2 e t y t 1 1 x t

A = [-0.2, 0;0, -0.3);B =(2、4);C = [1,1];D = 0;(K = 0.1;0.2);sys0 = idss (A, B, C, D, K,“NoiseVariance”, 0.1);sys = idtf (sys0);

一个BCD,K都是矩阵sys0,一个噪声方差为0.1的可识别状态空间模型。

sys = idtf (sys0)创建一个idtf模型sys

在时间表中加载时域系统响应数据tt1

负载sdata1.mattt1

设置极点的数量np2估计一个传递函数。

np = 2;sys =特遣部队(tt1、np);

sys是一个idtf包含估计的两极传递函数的模型。

查看得到的估计模型的分子和分母系数sys

sys。ν米erator
ans =1×22.4554 - 176.9856
sys。Denominator
ans =1×31.0000 3.1625 23.1631

要查看分子、分母和其他信息估计中的不确定度,请使用tfdata

创建一个具有可识别系数的传递函数模型数组。数组中的每个传递函数的形式为:

H 年代 一个 年代 + 一个

系数的初值 一个 在整个数组中变化,从0.1到1.0,以0.1为增量。

H = idtf (0 (1 1 10));K = 1:10 num = K /10;Den = [1 k/10];H (:,:, k) = idtf (num穴);结束

第一个命令预先分配一个一维的10元素数组,H,然后把它填满idtf模型。

模型数组的前两个维度是输出维度和输入维度。其余的尺寸是数组尺寸。H (:,:, k)代表了 k t h 在数组中建模。因此,循环取代了 k t h 该传递函数的系数初始化为 一个 k / 1 0

版本历史

介绍了R2012a

Baidu
map