主要内容

idproc

具有可识别参数的连续时间过程模型

句法

sys = idproc(类型)
sys = idproc(类型、名称、值)

描述

sys= idproc (类型创建具有可识别参数的连续时间过程模型。类型指定模型结构的各个方面,例如模型中的极点数、模型是否包含积分器以及模型是否包含时间延迟。

sys= idproc (类型名称、值使用一个或多个指定的附加属性创建流程模型名称、值对参数。

对象描述

一个idproc模型表示作为具有可识别(可估计)系数的连续时间过程模型的系统。

一个简单的SISO过程模型有增益、时间常数和延迟:

S. y S. = K. P. 1 + T. P. 1 S. E. T. D. S.

K.P.是比例增益。T.P.1实极的时间常数是多少T.D.为传输延迟(死时间)。

更普遍的是,idproc可以表示多达三个极点和一个零的过程模型:

S. y S. = K. P. 1 + T. Z. S. 1 + T. P. 1 S. 1 + T. P. 2 S. 1 + T. P. 3. S. E. T. D. S.

其中两个极点可以是复共轭(欠阻尼)对。在这种情况下,流程模型的一般形式为:

S. y S. = K. P. 1 + T. Z. S. 1 + 2 ζ T. ω S. + T. ω S. 2 1 + T. P. 3. S. E. T. D. S.

T.ω复极对的时间常数,和ζ为相关阻尼常数。

此外,任何idproc模型可以有一个积分器。例如,以下是您可以使用的过程模型idproc

S. y S. = K. P. 1 S. 1 + 2 ζ T. ω S. + T. ω S. 2 E. T. D. S.

这个模型没有零(T.Z.= 0)。该模型有一个复杂的极点对。该模型还有一个积分器,用1/表示S.术语。

对于idproc模型中,所有的时间常数、延迟、比例增益和阻尼系数都是可估计的参数。这idproc模型将这些参数的值存储在模型的属性中,例如金伯利进程Tp1,ζ.(见属性为更多的信息。)

一个MIMO过程模型包含一个SISO过程模型,对应于系统中的每个输入-输出对。对于idproc模型中,可以独立指定每个输入输出对的形式。例如,一个双输入一输出过程可以有一个具有两极且无零的通道,另一个具有零、极点和积分器的通道。所有系数都是可独立估计的参数。

有两种方法可以得到anidproc模型:

  • 估计idproc模型基于系统的输出或输入-输出度量,使用过程命令。过程估计自由参数的值,如增益,时间常数,和时间延迟。估计值存储为结果的属性idproc模型。例如,属性sys。Tzsys。金伯利进程属于idproc模型sys分别存储零时间常数和比例增益。(见属性有关更多信息,请参阅。)报告结果模型的属性存储有关估计的信息,例如处理估计中使用的初始条件和选项。

    当你获得idproc通过估计建立模型,您可以使用以下命令从模型中提取估计系数和它们的不确定性getpar.getcov

  • 创建一个idproc模型使用idproc命令。

    您可以创建idproc模型来配置初始参数,以估计过程模型。这样做时,可以对参数指定约束。例如,您可以确定一些系数的值,或指定自由系数的最小值或最大值。然后,您可以使用配置的模型作为输入参数过程在这些约束条件下估计参数值。

例子

全部崩溃

使用一对复杂的杆和时间延迟创建一个流程模型。将模型的初始值设置为以下内容:

S. y S. = 0. 0. 1 1 + 2 0. 1 1 0. S. + 1 0. S. 2 E. - 5. S.

使用指定的结构创建流程模型。

sys = idproc (“P2DU”
SYS =具有传递函数的过程模型:KP G(S)= ------------------- * exp(-td * s)1 + 2 * zeta * tw* s +(tw * s)^ 2kp = nan tw = nan zeta = nan td = nan参数化:{'p2du'}自由系数数:4使用“getpvec”,“getcov”参数及其不确定性。状态:由直接构造或转换产生。未估计。

输入“P2DU”指定欠阻尼极点对和时间延迟。显示显示sys具有期望的结构。显示屏还显示了四个自由参数,金伯利进程太瓦ζ,道明都初始化为

将所有参数的初始值设置为所需值。

sys。金伯利进程=0.。0.1;sys。太瓦=10.;sys。ζ= 0.1; sys.Td = 5;

你可以用sys指定此参数化和对过程模型估计的这些初始猜测过程

创建一个一输入三输出过程模型,其中每个通道有两个实际极点和一个零,但只有第一个通道有时间延迟,只有第一个和第三个通道有积分器。

类型={“P2ZDI”“P2Z”“P2ZI”};sys = idproc(类型)
SYS = 3输出的过程模型:Y_K = GK(S)U来自输入1输出1:1 + TZ * S G1(S)= KP * --------------------* exp(-Td*s) s(1+Tp1*s)(1+Tp2*s) Kp = NaN Tp1 = NaN Tp2 = NaN Td = NaN Tz = NaN From input 1 to output 2: 1+Tz*s G1(s) = Kp * ------------------ (1+Tp1*s)(1+Tp2*s) Kp = NaN Tp1 = NaN Tp2 = NaN Tz = NaN From input 1 to output 3: 1+Tz*s G1(s) = Kp * ------------------- s(1+Tp1*s)(1+Tp2*s) Kp = NaN Tp1 = NaN Tp2 = NaN Tz = NaN Parameterization: {'P2DIZ'} {'P2Z' } {'P2IZ' } Number of free coefficients: 13 Use "getpvec", "getcov" for parameters and their uncertainties. Status: Created by direct construction or transformation. Not estimated.

idproc创建一个MIMO模型,其中类型数组定义了对应I/O对的结构。自类型是字符向量的列向量,sys是一个具有指定参数化结构的一输入三输出模型。类型{k, 1}指定子系统的结构sys (k, 1). 所有可识别的参数都初始化为

创建一个3乘1的流程模型数组,每个模型包含一个输出和两个输入通道。

为流程模型数组中的每个模型指定结构。

类型1 = {“P1D”“P2DZ”}; 类型2={‘P0’'p3ui'};type3 = {'p2d''p2di'};类型=猫(3,type1, type2 type3);大小(类型)
ans=1×31 2 3

使用类型创建数组。

sysarr = iDproc(类型);

单元格数组的前两个维度类型设置流程模型数组中每个模型的输出和输入维度。单元格数组的其余维度设置数组的维度。因此,sysarr是一个由2输入1输出流程模型组成的3模型数组。

从数组中选择一个模型。

sysarr (:: 2)
ans =流程模型与2输入:y = G11 (s) u1 + G12 (s) u2从输入1输出1:为G11 (s) = Kp Kp =南从输入2输出1:Kp G12 (s ) = --------------------------------- (1 + 2 *ζ* Tw * s + (Tw * s) ^ 2) (1 + Tp3 * s) Kp =南Tw =南ζ=南Tp3 =南参数化:{“P0”}{‘P3IU}很多免费的系数:5参数及其不确定性使用“getpvec”、“getcov”。状态:由直接构造或转换产生。未估计。

这两个输入的一个输出模型对应于类型2进入类型单元阵列。

输入参数

类型

模型结构,指定为字符向量或字符向量的单元数组。

对于SISO型号,类型是由一个或多个指定模型结构方面的字符组成的字符向量:

字符 意义
Pk 一个过程模型K.极点(不包括积分器)。K.必须为0、1、2或3。
Z. 流程模型包含一个零(T.Z.≠0)类型具有P0不包括Z.(没有杆的过程模型不能包含零)。
D. 过程模型包括时间延迟(死区)(T.D.≠0)。
一世 过程模型包括一个积分器(1/S.).
过程模型是欠阻尼的。在这种情况下,过程模型包括一个复杂的极点对

每一个类型字符向量必须以之一开始P0P1P2,或P3.所有其他组件都是可选的。例如:

  • “P1D”指定具有单极和时间延迟(死区时间)项的流程模型:

    S. y S. = K. P. 1 + T. P. 1 S. E. T. D. S.

    金伯利进程Tp1,道明为该模型的可识别参数。

  • “P2U”创建具有一对复杂极点的流程模型:

    S. y S. = K. P. 1 + 2 ζ T. ω S. + T. ω S. 2

    金伯利进程太瓦,ζ为该模型的可识别参数。

  • “P3ZDI”创建一个三极的过程模型。所有杆子都是真实的,因为不包括。该模型还包括一个零、一个时延和一个积分器:

    S. y S. = K. P. 1 + T. Z. S. S. 1 + T. P. 1 S. 1 + T. P. 2 S. 1 + T. P. 3. S. E. T. D. S.

    该模型的可识别参数如下:金伯利进程TzTp1Tp2Tp3,道明

将特定模型结构中的所有参数的值初始化为.您可以通过设置相应的值来将它们更改为有限值idproc创建模型后的模型属性。例如,sys.td = 5.的时间延迟的初始值sys到五点。

对于具有的MIMO过程模型纽约输出和ν输入,类型是一个纽约——- - - - - -ν指定模型中每个输入/输出对的结构的字符向量的单元格数组。例如,类型{i,j}指定类型的子系统系统(i, j)j输入y输出。

名称-值对参数

指定可选的逗号分隔的字符对名称、值参数。的名字是参数名和价值为对应值。的名字必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:Name1, Value1,…,的家

使用名称、值用于指定参数初始值和附加值的参数属性idproc模型创建期间的模型。例如,sys=idproc('p2z','InputName','Voltage','Kp',10','Tz',0);创造一个idproc模特与之InputName.属性设置为电压.该命令还初始化参数金伯利进程值为10,并且Tz为0。

属性

idproc对象属性包括:

类型

模型结构,指定为字符向量或字符向量的单元数组。

用于SISO模型sys,房地产sys.type.包含指定系统结构的字符向量。例如,“P1D”

为MIMO模型纽约输出和ν输入,sys.type.是一个纽约——- - - - - -ν指定模型中每个输入/输出对的结构的字符向量的单元格数组。例如,类型{i,j}指定子系统的结构系统(i, j)j输入一世输出。

字符向量由以下一个或多个字符组成,指定模型结构的方面:

字符 意义
Pk 一个过程模型K.极点(不包括积分器)。K.是0、1、2或3。
Z. 流程模型包含一个零(T.Z.≠0)。
D. 过程模型包括时间延迟(死区)(T.D.≠0)。
一世 过程模型包括一个积分器(1/S.).
过程模型是欠阻尼的。在这种情况下,过程模型包括一个复杂的极点对

如果你创建一个idproc模型sys使用idproc命令,sys.type.包含使用指定的模型结构类型输入参数。

如果你获得了一个idproc通过识别建立模型过程, 然后sys.type.包含为该标识指定的模型结构。

通常,您不能更改现有模型的类型。但是,您可以使用属性更改模型是否包含集成器sys。一世ntegration

Kp、Tp1 Tp2、Tp3 Tz, Tw,ζ,道明

过程模型参数的值。

如果你创建一个idproc模型使用idproc命令时,模型结构中所有参数的值默认初始化为.模型结构中不存在的参数值固定为0.. 例如一世f you create a model,sys,类型“P1D”, 然后金伯利进程Tp1,道明正在初始化和是可识别(自由)参数。所有剩余参数,例如Tp2Tz,在模型中是不活动的。非活动参数的值固定为零,不能更改。

为MIMO模型纽约输出和ν输入时,每个参数值是一个纽约——- - - - - -ν指定模型中每个输入/输出对的相应参数值的字符向量单元数组。例如sys.Kp (i, j)指定金伯利进程子系统的价值系统(i, j)j输入一世输出。

对于一个idproc模型sys,每个参数值属性如sys。金伯利进程sys。Tp1sys。Tz,其他人是相应的别名价值进入结构性质sys. 例如sys。Tp3是属性价值的别名sys.Structure.Tp3.Value

默认:对于每个参数值,流程模型结构是否包含特定参数;如果结构不包含参数,则为。

集成

表示过程模型传递函数中存在或不存在积分器的逻辑值或矩阵。

用于SISO模型syssys。一世ntegration = true如果模型包含一个积分器。

对于MIMO模型,sys.Integration (i, j) = true如果转移功能来自j输入一世输出包含集成器。

当您使用idproc命令,取值为sys。一世ntegration是由相应的类型包含一世

NoiseTF

噪声传递函数的系数。

sys.NoiseTF存储噪声传递函数的分子和分母多项式的系数HS.) =NS.)/D.S.).

sys.NoiseTF是一个具有字段的结构全国矿工工会den.每个字段都是一个小区数组Ny行向量,在哪里Ny的输出数是多少sys.这些行向量指定噪声传递函数的系数,分子和分母按幂递减的顺序S.

一般情况下,噪声传递函数由估计函数自动计算过程.你可以指定一个噪声传递函数过程用作初始值。例如:

NoiseNum = {[1 2.2];0.54 [1]};NoiseDen = {[1 1.3];[1 - 2]};NoiseTF =结构('num',{NoiseNum},'den',{NoiseDen});sys=idproc({“p2”“p1di”});%2输出,1输入过程模型sys.NoiseTF=NoiseTF;

中的每个向量sys.NoiseTF.numsys.noisetf.den长度必须小于等于3(第二级)S.或更少)。每个向量必须以1开始。分子向量的长度必须等于分母向量的长度,所以HS.)总是双固有的。

默认:结构('num',{num2cell(ones(Ny,1))},'den',{num2cell(ones(Ny,1))})

结构

关于可估计参数的信息idproc模型。

sys.structure.为的模型结构中的每个参数包含一个条目sys. 例如一世fsys的类型是“P1D”, 然后sys包括识别参数金伯利进程Tp1,道明.相应地,sys.Structure.Kpsys.Structure.Tp1,sys.Structure.Td分别包含关于每个参数的信息。

每个参数条目中的每一个sys.structure.包含以下字段:

  • 价值-参数值。例如sys.Structure.Kp.Value的初始值或估计值K.P.参数。

    表示未知的参数值。

    对于SISO模型,每个参数值属性如sys。金伯利进程sys。Tp1sys。Tz,其他人是相应的别名价值进入结构性质sys. 例如sys。Tp3是属性价值的别名sys.Structure.Tp3.Value

    对于MIMO模型,sys。金伯利进程{i,j}是的别名系统结构(i,j).Kp.值,其他可识别系数值也类似。

  • 最低限度—参数在估计过程中可以假定的最小值。例如,sys.structure.kp.minimum = 1将比例增益限制为大于或等于1的值。

  • 最大—参数在估计过程中可以假定的最大值。

  • 免费的-指定参数是否为自由估计变量的逻辑值。如果您想在估计期间固定参数的值,请设置相应的值自由= false. 例如来fix the dead time to 5:

    sys.td = 5.;sys.Structure.Td.Free = false;
  • 规模—参数值的大小。规模未在估算中使用。

  • 信息- 用于存储参数单位和标签的结构阵列。结构有标签单位字段。

    指定参数单位和标签作为字符向量。例如,'时间'

结构还包括一个字段集成存储一个逻辑数组,该逻辑数组指示每个相应的流程模型是否有一个积分器。sys.Structure.Integration是的别名sys。一世ntegration

为MIMO模型纽约输出和ν输入,结构是一个纽约——- - - - - -ν数组。元素结构(i, j)的流程模型对应的信息(i, j)输入-输出。

NoiseVariance

模型创新的方差(协方差矩阵)E.

一个识别的模型包括一个白色的高斯噪声成分E.T.).NoiseVariance是这个噪声分量的方差。通常,模型估计函数(如过程)决定此差异。

对于SISO型号,NoiseVariance是一个标量。对于MIMO模型,NoiseVariance是一个Ny——- - - - - -Ny矩阵,Ny是系统中的输出数。

报告

摘要报告包含有关估计选项的信息和使用过程模型获取的结果过程估计命令。使用报告要查询模型以了解其估算方式,包括:

  • 估算方法

  • 估计选项

  • 搜索终止条件

  • 估计数据适合和其他质量指标

的内容报告如果模型是通过构造创建的,则不相关。

m=idproc(“P2DU”);m.report.Optionsed.
ans=[]

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

负载iddata2z2;m = proc (z2,“P2DU”);m.report.Optionsed.
扰动模型:“估计”初始条件:“自动”焦点:“预测”EstimateCovariance: 1显示:“关闭”inputooffset: [1x1参数。[] Regularization: [1x1 struct] SearchMethod: 'auto' SearchOptions: [1x1 idoptions.search.]identsolver输出权重:[]Advanced: [1x1 struct]

报告是只读属性。

有关此属性以及如何使用它的更多信息,请参阅相应估计命令参考页的Output Arguments部分估计报告

inputdelay.

输入延迟。inputdelay.是指定每个输入通道的时间延迟的数字矢量。在存储器中指定时间单位的输入延迟TimeUnit财产。

适用于系统ν输入,设置inputdelay.ν-1向量,其中每个条目是表示相应输入通道的输入延迟的数值。你也可以设置inputdelay.对标量值施加相同的延迟到所有通道。

默认:所有输入通道为0

outputdelay.

输出延迟。

对于已确定的系统,例如idprocoutputdelay.固定为零。

Ts

采样时间。对于idprocTs已固定为零,因为所有idproc模型是连续时间。

TimeUnit

单位为时间变量,即样本时间Ts,以及模型中的任何时间延迟,指定为以下值之一:

  • “纳秒”

  • 微秒的

  • 的毫秒

  • '秒'

  • “分钟”

  • “小时”

  • “天”

  • '周'

  • “月”

  • “年”

更改此属性不会影响其他属性,因此会更改整个系统行为。使用CHGTIMEUT(控制系统工具箱)在不修改系统行为的情况下在时间单位之间转换。

默认:'秒'

InputName.

输入通道名称,指定为以下之一:

  • 字符向量-例如,对于单输入模型,'控制'

  • 字符向量的单元阵列-用于多输入模型。

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

sys。一世nputName = 'controls';

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

当你用iddata对象,数据,软件自动设定InputName.数据。一世nputName

你可以用速记法参考InputName.财产。例如,sys.u相当于sys。一世nputName

输入通道名称有多种用途,包括:

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

  • MIMO系统子系统的提取

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

默认:''对于所有输入通道

输入单元

输入通道单元,指定为以下之一:

  • 字符向量-例如,对于单输入模型,'秒'

  • 字符向量的单元阵列-用于多输入模型。

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

默认:''对于所有输入通道

输入组

输入通道组。这输入组属性允许您将MIMO系统的输入通道分配到组中,并按名称引用每个组。将输入组指定为结构。在这个结构中,字段名是组名,字段值是属于每个组的输入通道。例如:

sys.InputGroup.controls=[12];sys.InputGroup.noise=[35];

创建名为控制噪音分别包括输入通道1 2和3 5。然后您可以从控制输入到所有输出,使用:

SYS(:,'控件')

默认:没有字段的结构

OutputName

输出通道名称,指定为以下任意一个:

  • 字符矢量 - 用于单输出模型。例如,“测量”

  • 字符向量单元阵列 - 用于多输出模型。

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

sys.OutputName=‘测量’;

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

当你用iddata对象,数据,软件自动设定OutputNamedata.outputname.

你可以用速记法y参考OutputName财产。例如,sys.y相当于sys。OutputName

输出通道名称有几种用途,包括:

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

  • MIMO系统子系统的提取

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

默认:''对于所有输出通道

OutputUnit.

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

  • 字符矢量 - 用于单输出模型。例如,'秒'

  • 字符向量单元阵列 - 用于多输出模型。

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

默认:''对于所有输出通道

输出组

输出通道组。这输出组属性允许您将MIMO系统的输出通道分配到组中,并按名称引用每个组。将输出组指定为结构。在这个结构中,字段名是组名,字段值是属于每个组的输出通道。例如:

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

创建名为温度测量分别包括输出通道1、3、5。然后可以从所有的输入中提取子系统测量输出使用:

系统(“测量”,:)

默认:没有字段的结构

的名字

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

默认:''

笔记

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

sys1。笔记="sys1有一个字符串。";sys2。笔记=sys2有一个字符向量。;sys1。笔记sys2。笔记
ans =“sys1有一个字符串。”ans ='sys2有一个字符矢量。

默认:(0×1的字符串)

用户数据

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

默认:[]

SamplingGrid

为模型数组采样网格,指定为数据结构。

对于通过对一个或多个自变量进行采样而得到的已识别线性(IDLTI)模型数组,此属性跟踪与每个模型关联的变量值。当您显示或绘制模型数组时,将显示此信息。使用此信息将结果追踪到独立变量。

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

例如,如果在系统的各个操作点收集数据,则可以分别标识每个操作点的模型,然后将结果叠加到单个系统数组中。可以使用有关操作点的信息标记阵列中的各个模型:

Nominal_engine_rpm = [1000 5000 10000];sys。SamplingGrid =结构(“转”,名称_engine_rpm)

在哪里sys是一个数组,包含三个分别在rpm为1000、5000和10000时获得的识别模型。

用于通过线性化模拟链接生成的模型阵列金宝app®模型在多个参数值或操作点,软件填充SamplingGrid自动使用数组中每个条目对应的变量值。例如,金宝app仿真软件控制设计™命令线性化(金宝appSimulink Control Design)slLinearizer(金宝appSimulink Control Design)居住于SamplingGrid这样。

默认:[]

之前介绍过的R2006a