idtf
具有可识别参数的传递函数模型
描述
一个idtf
模型将系统表示为具有可识别(可估计)系数的连续时间或离散时间传递函数。使用idtf
创建传递函数模型,或进行转换动态系统模型传递函数形式。
SISO传递函数是多项式与指数项的比值。在连续时间下,
在离散时间下,
在离散时间下,z- - - - - -k表示的时间延迟kT年代,在那里T年代是采样时间。
为idtf
模型,分母系数一个0、……一个米1分子系数b0、……bn是可估计的参数。(前面的分母系数总是固定为1。)时间延迟τ(或k在离散时间中)也可以是一个可估计的参数。的idtf
模型存储多项式系数一个0、……一个米1而且b0、……bn在分母
而且分子
模型的属性。时间延迟τ或k存储在IODelay
模型的属性。
不像中的难点
而且idpoly
,idtf
将noise参数固定为1而不是参数化它。所以,在
,H= 1。
MIMO传递函数包含与系统中每个输入-输出对对应的SISO传递函数。为idtf
每个输入-输出对的模型、多项式系数和传输延迟是独立可估计的参数。
创建
你可以获取idtf
用以下三种方法之一对对象建模。
估计
idtf
基于系统输入-输出测量的模型特遣部队
.的特遣部队
命令估计传递函数系数和传输延迟的值。估计的值存储在分子
,分母
,IODelay
结果的属性idtf
模型。在引用分子和分母属性时,可以使用快捷键全国矿工工会
而且窝
.的报告
属性存储关于估计的信息,例如初始条件的处理和估计中使用的选项。例如,您可以使用以下命令来估计和获取关于传递函数的信息。Sys = tfest(data,nx);num = sys.分子;Den = sys.den;sys。报告
更多关于估算an的例子
idtf
模型中,看到特遣部队
.当你获得
idtf
通过估计建立模型,您可以从模型中提取估计的系数及其不确定性。要做到这一点,可以使用tfdata
,getpar
,或getcov
.创建一个
idtf
使用idtf
命令。例如,创建一个idtf
用指定的分子和分母进行建模。Sys = idtf(num,den)
idtf
模型,以配置传递函数估计的初始参数化,以拟合测量的响应数据。当您这样做时,您可以指定分子和分母系数以及传输延迟等值的约束。例如,您可以修复某些参数的值,或者为自由参数指定最小或最大值。然后,您可以使用配置的模型作为的输入参数特遣部队
用这些约束估计参数值。有关示例,请参见创建连续时间传递函数模型而且创建离散时间传递函数.将现有的动态系统模型转换为
idtf
使用idtf
命令。例如,转换状态空间模型sys_ss
转换成传递函数。Sys_tf = idtf(sys_ss);
有关可用于从中提取信息或转换信息的函数的信息idtf
建模对象,请参见对象的功能.
描述
创建传递函数模型
输入参数
sys0
- - - - - -动态系统
动态系统模型
任何动态系统都可以转换为idtf
模型。
当sys0
是一个已识别的模型,其估计的参数协方差在转换过程中丢失。如果您希望在转换过程中转换估计的参数协方差,请使用translatecov
.
属性
分子
- - - - - -传递函数分子系数的值
向量|单元阵列
传递函数分子系数的值,指定为行向量或单元格数组。
对于SISO传递函数,分子系数的值按以下顺序存储为行向量:
降幂年代或p(用于连续时间传递函数)
上升幂z1或问1(用于离散时间传递函数)
任何初值未知的系数都存储为南
.
对于MIMO传递函数具有纽约
输出和ν
输入,分子
是一个纽约
——- - - - - -ν
每个输入/输出对的分子系数单元阵列。有关MIMO传递函数的示例,请参见创建MIMO离散时间传递函数.
如果你创建一个idtf
模型sys
使用idtf
命令,sys。ν米erator
属性指定的分子系数的初值分子
输入参数。
如果你有idtf
通过使用识别进行建模特遣部队
,然后sys。ν米erator
包含分子系数的估计值。
对于一个idtf
模型sys
,属性sys。ν米erator
属性值的别名吗sys.Structure.Numerator.Value
.
分母
- - - - - -传递函数分母系数的值
向量|单元阵列
传递函数分母系数的值,指定为行向量或单元格数组。
对于SISO传递函数,分母系数的值按如下顺序存储为行向量:
降幂年代或p(用于连续时间传递函数)
上升幂z1或问1(用于离散时间传递函数)
的领先系数分母
固定为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”
传递函数显示变量,指定为以下值之一:
“年代”
-默认为连续时间模型“p”
-相当于“年代”
“z ^ 1”
-默认为离散时间模型“问^ 1”
-相当于“z ^ 1”
的价值变量
是体现在展示上,也是影响解读的分子
而且分母
离散时间模型的系数向量。当变量
设置为“z ^ 1”
或“问^ 1”
时,系数向量按变量的升幂排序。
的例子变量
财产,看到指定传递函数显示变量.
IODelay
- - - - - -运输延误
0
(默认)|数字数组
传输延迟,指定为一个数字数组,其中包含每个输入-输出对的单独传输延迟。
中存储的时间单位表示传输延迟TimeUnit
财产。对于离散时间系统,传输延迟用整数表示,表示延迟是采样时间的倍数Ts
.
对于MIMO系统纽约输出和ν输入,设置IODelay
作为一个纽约——- - - - - -ν数组中。该数组的每个条目都是一个数值,表示对应输入-输出对的传输延迟。你可以设置IODelay
对所有输入-输出对应用相同的延迟。
如果你创建一个idtf
模型sys
使用idtf
命令,然后sys。IODelay
包含使用名称-值对参数指定的传输延迟的初始值。
如果你有idtf
模型sys
通过识别和使用特遣部队
,然后sys。IODelay
包含传输延迟的估计值。
对于一个idtf
模型sys
,属性sys。IODelay
属性值的别名吗sys.Structure.IODelay.Value
.
结构
- - - - - -关于可估计参数的信息
结构属性值|结构属性值数组
属性的可估计参数的特定属性信息idtf
模型,指定为单个结构或结构数组。
SISO系统-结构单一。
MIMO系统纽约输出和ν输入- - -纽约——- - - - - -ν数组中。的元素
结构(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 . |
规模 | 参数值的比例。估计算法不使用规模 . |
|
信息 | 包含字段的结构数组标签 而且单位 用于存储参数标签和单位。指定参数标签和单位为字符向量。 |
“时间” |
NoiseVariance
- - - - - -模式创新的差异
标量|矩阵
模型创新的方差(协方差矩阵)e,指定为标量或矩阵。
SISO模型-标量
MIMO模型Ny输出-Ny——- - - - - -Ny矩阵
所识别的模型包含高斯白噪声分量e(t).NoiseVariance
是这个噪声分量的方差。通常,模型估计函数(如特遣部队
)决定这个方差。
报告
- - - - - -总结报告
报告字段值
此属性是只读的。
包含有关使用估计命令获得的传递函数模型的估计选项和结果的信息的摘要报告,例如特遣部队
而且冲动
.使用报告
查找已识别模型的估计信息,包括:
估算方法
估计选项
查询终止条件
估计数据拟合和其他质量度量
如果您通过构造创建模型,则报告
是无关紧要的。
Sys = idtf([1 4],[1 20 5]);sys.Report.OptionsUsed
Ans = []
如果使用估计命令获取模型,则报告
包含关于估计数据、选项和结果的信息。
负载iddata2z2;Sys = tfest(z2,3);sys.Report.OptionsUsed
InitializeMethod: 'iv' InitializeOptions: [1×1 struct] InitialCondition: 'auto'显示:'off' InputOffset: [] OutputOffset: [] EstimateCovariance: 1正则化:[1×1 struct] SearchMethod: 'auto' SearchOptions: [1×1 idoptions.search.]identsolver] WeightingFilter: [] EnforceStability: 0 OutputWeight: [] Advanced: [1×1 struct]
有关此属性以及如何使用它的更多信息,请参阅相应估计命令参考页的Output Arguments部分评估报告.
InputDelay
- - - - - -每个输入通道的输入延迟
0
(默认)|标量|向量
每个输入通道的输入延迟,指定为标量值或数字向量。方法中存储的时间单位指定输入延迟TimeUnit
财产。对于离散时间系统,指定输入延迟为采样时间的整数倍Ts
.例如,设置InputDelay
来3.
指定三个采样时间的延迟。
对于一个系统Nu输入,设置InputDelay
到一个Nu1的向量。该向量的每一项都是一个数值,表示对应输入通道的输入延迟。
你也可以设置InputDelay
到一个标量值,以便对所有通道应用相同的延迟。
估计将InputDelay
作为模型的固定常数。估计使用IODelay
属性用于估计时间延迟。若要指定用于估计时间延迟的初始值和约束,请使用sys.Structure.IODelay
.
OutputDelay
- - - - - -每个输出通道的输出延迟
0
(默认)
对于已识别的系统,例如idtf
,OutputDelay
固定为零。
TimeUnit
- - - - - -时间变量单位
“秒”
(默认)|“纳秒”
|微秒的
|的毫秒
|“分钟”
|“小时”
|“天”
|“周”
|“月”
|“年”
时间变量的单位是采样时间Ts
,以及模型中的任何时间延迟,指定为标量。
更改此属性不会重新采样或转换数据。修改属性只会改变对现有数据的解释。使用chgTimeUnit
将数据转换为不同的时间单位。
InputName
- - - - - -输入通道名称
''
(默认)|特征向量|单元阵列
输入通道名称,指定为字符向量或单元格数组。
单输入模型-字符向量,例如,
“控制”
多输入模型-字符向量的单元数组
或者,使用自动向量展开为多输入模型分配输入名称。例如,如果sys
是一个双输入模型,输入:
sys。InputName = 'controls';
输入名称自动展开为{“控制(1)”,“控制”(2)}
.
当你估计一个模型使用iddata
对象数据
,软件自动设置InputName
来数据。InputName
.
你可以用速记法u
请参阅InputName
财产。例如,sys.u
等于sys。InputName
.
你可以通过几种方式使用输入通道名,包括:
识别模型显示和图上的通道
提取MIMO系统的子系统
在连接模型时指定连接点
InputUnit
- - - - - -输入通道单元
''
(默认)|特征向量|单元阵列
输入通道单位,指定为字符向量或单元格数组。
单输入模型-字符向量
多输入模型-字符向量的单元数组
使用InputUnit
跟踪输入信号单位。InputUnit
对系统行为没有影响。
InputGroup
- - - - - -输入通道组
结构体
没有字段(默认)|结构体
输入通道组,指定为结构。的InputGroup
属性允许您将MIMO系统的输入通道划分为组,以便您可以通过名称引用每个组。在InputGroup
结构,将字段名设置为组名,将字段值设置为属于每个组的输入通道。
例如,创建名为控制
而且噪音
分别包括输入通道1、2和3、5。
sys.InputGroup.controls = [1 2];sys.InputGroup.noise = [3 5];
然后,您可以从控制
使用以下语法输入所有输出:
sys(:,“控制”)
OutputName
- - - - - -输出通道名称
''
(默认)|特征向量|单元阵列
输出通道名称,指定为字符向量或单元格数组。
单输入模型-字符向量,例如,
“测量”
多输入模型-字符向量的单元数组
或者,使用自动向量展开为多输出模型分配输出名称。例如,如果sys
是一个双输出模型,输入:
sys。OutputName = 'measurements';
输出名称自动展开为{“测量(1)”,“测量”(2)}
.
当你估计一个模型使用iddata
对象数据
,软件自动设置OutputName
来数据。OutputName
.
你可以用速记法y
请参阅OutputName
财产。例如,sys.y
等于sys。OutputName
.
你可以通过多种方式使用输出通道名,包括:
识别模型显示和图上的通道
提取MIMO系统的子系统
在连接模型时指定连接点
OutputUnit
- - - - - -输出通道单元
''
(默认)|特征向量|单元阵列
输出通道单元,指定为字符向量或单元格数组。
单输入模型-字符向量,例如,
“秒”
多输入模型-字符向量的单元数组
使用OutputUnit
跟踪输出信号单元。OutputUnit
对系统行为没有影响。
OutputGroup
- - - - - -输出通道组
结构体
没有字段(默认)|结构体
输出通道组,指定为结构。的OutputGroup
属性允许您将MIMO系统的输出通道划分为组,并通过名称引用每个组。在OutputGroup
结构,将字段名设置为组名,将字段值设置为属于每个组的输出通道。
例如,创建名为温度
而且测量
分别包括输出通道1和3,5。
sys.OutputGroup.temperature = [1];sys.OutputGroup.measurement = [3 5];
的所有输入中提取子系统测量
使用以下语法输出:
系统(“测量”,:)
的名字
- - - - - -系统名称
''
(默认)|特征向量
系统名称,指定为字符向量,例如,“system_1”
.
笔记
- - - - - -系统说明
0
——- - - - - -1
字符串(默认)|字符串|特征向量
希望与系统关联的任何文本,指定为字符串或字符向量的单元格数组。属性存储您提供的任何数据类型。例如,如果sys1
而且sys2
系统模型都是动态的,你可以自己设置吗笔记
属性如下。
sys1。笔记=sys1有一个字符串。;sys2。笔记=sys2有一个字符向量;sys1。笔记sys2。笔记
Ans = "sys1有一个字符串" Ans = " sys2有一个字符向量"
用户数据
- - - - - -要与系统关联的数据
[]
(默认)|任何MATLAB®数据类型
与系统关联的数据,指定为任何MATLAB数据类型。
SamplingGrid
- - - - - -采样网格
[]
(默认)|结构体
模型数组的采样网格,指定为结构。
对于通过对一个或多个自变量采样而得到的已识别线性(IDLTI)模型数组,此属性跟踪与每个模型相关的变量值。当您显示或绘制模型数组时,将显示此信息。使用这些信息将结果追溯到自变量。
将数据结构的字段名设置为采样变量的名称。将字段值设置为与数组中的每个模型相关联的采样变量值。所有抽样变量必须是数值和标量值,并且所有抽样值的数组必须与模型数组的维度匹配。
例如,假设您在系统的各个操作点上收集数据。您可以分别为每个工作点标识模型,然后将结果叠加到单个系统数组中。您可以用有关操作点的信息标记数组中的各个模型。
Nominal_engine_rpm = [1000 5000 10000];sys。SamplingGrid = struct(“转”nominal_engine_rpm)
在这里,sys
包含分别以1000,5000和10000 rpm获得的三个已标识的型号的数组。
对于通过线性化Simulink生成的模型数组金宝app®在多个参数值或工作点建模,软件进行填充SamplingGrid
自动使用对应于数组中每个条目的变量值。
对象的功能
一般来说,任何函数都适用于动态系统模型适用于idtf
模型对象。这些函数一般有四种类型。
下面的列表包含您可以使用的函数的一个代表性子集idtf
模型。
转换与操作
translatecov |
在模型转换操作中转换参数协方差 |
setpar |
设置线性模型参数的值和边界等属性 |
chgTimeUnit |
改变动态系统的时间单位 |
d2d |
重新采样离散时间模型 |
d2c |
将模型从离散时间转换为连续时间 |
汇集 |
将模型从连续时间转换为离散时间 |
合并 |
合并估计模型 |
例子
创建连续时间传递函数模型
指定一个具有可估计参数的连续时间单输入单输出(SISO)传递函数。传递函数的初值由下式给出:
Num = [1 4];Den = [1 20 5];G = idtf(num,den)
G = s + 4 -------------- s^2 + 20 s + 5连续时间识别传递函数。参数化:极点数:2零数:1自由系数数:4参数及其不确定度使用“tfdata”、“getpvec”、“getcov”。现状:由直接构建或改造而产生。不估计。
G
是一个idtf
模型。全国矿工工会
而且窝
指定分子和分母多项式系数的降幂初值
.初值为1和4的分子系数是可估计的参数。初值为20和5的分母系数也是可估计的参数。前面的分母系数总是固定为1。
你可以使用G
指定用于估计的初始参数化特遣部队
.
创建已知输入延迟和指定属性的传递函数
指定一个已知输入延迟的连续时间SISO传递函数。传递函数的初值由下式给出:
用名称标记传递函数的输入“电压”
并将输入单位指定为伏特
.
使用名称-值对参数指定延迟、输入名称和输入单元。
Num = 5;Den = [1 5];Input_delay = 5.8;input_name =“电压”;input_unit =“伏”;G = idtf(num,den,“InputDelay”input_delay,...“InputName”input_name,“InputUnit”, input_unit);
是一个idtf
模型。你可以使用G
指定用于估计的初始参数化特遣部队
.如果您这样做,将建模属性,如InputDelay
,InputName
,InputUnit
应用于估计模型。估计过程处理InputDelay
作为一个固定值。如果要估计延迟并指定5.8秒的初始值,请使用IODelay
财产。
创建离散时间传递函数
指定具有可估计参数的离散SISO传递函数。传递函数的初值由下式给出:
指定采样时间为0.2秒。
Num = [1 -0.1];Den = [1 0.8];Ts = 0.2;H = idtf(num,den,Ts);
全国矿工工会
而且窝
是分子和分母多项式系数的初值。对于离散时间系统,指定的升幂系数
.
Ts
将传递函数的采样时间指定为0.2秒。
H
是一个idtf
模型。分子和分母系数是可估计的参数(除了主要分母系数,它固定为1)。
创建MIMO离散时间传递函数
指定一个离散时间,双输入,双输出传递函数。MIMO传递函数的初始值由下式给出:
指定采样时间为0.2秒。
Nums = {1,[1,0];[-1,2],3};Dens = {[1,0.2],[1,0.7];[1,-0.3],[1,0.3]};Ts = 0.2;H = idtf(nums,dens,Ts);
全国矿工工会
而且洞穴
指定单元格数组中系数的初始值。单元格数组中的每个条目都对应于一个输入-输出对的传递函数的分子或分母。例如,第一行全国矿工工会
是(1,0) {1,}
.这个单元格数组指定了中第一行传递函数的分子H
.同样,第一行洞穴
,{[0.2], [0.7]}
,指定第一行的分母H
.
Ts
将传递函数的采样时间指定为0.2秒。
H
是一个idtf
模型。除了每个分母多项式的领先系数外,所有的多项式系数都是可估计的参数。这些系数总是固定为1。
指定传递函数显示变量
指定下列离散时间传递函数为问^ 1
:
指定采样时间为0.1秒。
Num = [1 0.4];Den = [1 0.1 -0.3];Ts = 0.1;convention_variable =“问^ 1”;H = idtf(num,den,Ts,“变量”, convention_variable);
使用名称-值对参数指定变量问^ 1
.
全国矿工工会
而且窝
分子和分母的多项式系数是的升幂吗
.
Ts
将传递函数的采样时间指定为0.1秒。
H
是一个idtf
模型。
增益矩阵传递函数
指定一个具有可估计系数的传递函数,其初始值由以下静态增益矩阵给出:
M = [1 0 1;11 10;3 0 2];H = idtf(M);
H
是一个idtf
模型,该模型描述了三个输入(Nu = 3
),三个输出(Ny = 3
)传递函数。每个输入输出通道都是一个可估计的静态增益。增益的初始值由矩阵中的值给出米
.
可识别状态空间模型转换为可识别传递函数
将具有可识别参数的状态空间模型转换为具有可识别参数的传递函数。
将以下可识别的状态空间模型转换为可识别的传递函数。
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);
一个
,B
,C
,D
,K
都是矩阵sys0
为噪声方差为0.1的可识别状态空间模型。
Sys = idtf(sys0)
创建一个idtf
模型sys
.
创建传递函数模型数组
创建具有可识别系数的传递函数模型数组。数组中的每个传递函数的形式为:
系数的初值 在整个数组中变化,从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,den);结束
第一个命令预先分配一个一维的10个元素数组,H
,然后用空填满idtf
模型。
模型数组的前两个维是输出维和输入维。剩下的维度是数组维度。H (:,:, k)
代表了
在数组中建模。因此,为
循环替换
数组中具有传递函数的项,其系数初始化为
.
版本历史
在R2012a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。