主要内容

idproc

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

语法

sys = idproc(类型)
sys = iDproc(类型,名称,值)

描述

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

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

对象描述

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

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

年代 y 年代 K p 1 + T p 1 年代 e T d 年代

Kp是比例增益。Tp1是真正的杆子的时间常数Td是运输延迟(死区时间)。

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

年代 y 年代 K p 1 + T z 年代 1 + T p 1 年代 1 + T p 2 年代 1 + T p 3. 年代 e T d 年代

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

年代 y 年代 K p 1 + T z 年代 1 + 2 ζ T ω 年代 + T ω 年代 2 1 + T p 3. 年代 e T d 年代

Tω是复杂的杆子的时间常数,和ζ是相关的阻尼常数。

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

年代 y 年代 K p 1 年代 1 + 2 ζ T ω 年代 + T ω 年代 2 e T d 年代

该模型没有零(Tz= 0)。该模型具有复杂的杆对。该模型还有一个集成商,由1 /表示年代术语。

idproc模型,所有时间常数,延迟,比例增益和阻尼系数可以是可评估的参数。的idproc模型将这些参数的值存储在模型的属性中,例如KpTp1,Zeta..(见特性为更多的信息。)

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

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

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

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

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

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

例子

全部折叠

创建具有一对复杂极点和一个时间延迟的过程模型。将模型的初始值设为:

年代 y 年代 0 0 1 1 + 2 0 1 1 0 年代 + 1 0 年代 2 e - 5 年代

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

sys = idproc (“P2DU”
sys =过程传递函数模型:Kp G(s) = --------------------- * exp(-Td*s) 1+2*Zeta*Tw*s+(Tw*s)^2 Kp = NaN Tw = NaN Zeta = NaN Td = NaN参数化:{'P2DU'}自由系数数:4参数及其不确定性使用“getpvec”,“getcov”状态:由直接构造或转换产生。不估计。

输入“P2DU”指定欠阻尼极点对和时间延迟。显示显示SYS.具有期望的结构。显示屏还显示了四个自由参数,KpTW.Zeta.,一个都初始化为

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

sys。Kp=0。01;sys。TW.=10;sys。Zeta.= 0.1; sys.Td = 5;

您可以使用SYS.为流程模型估计指定此参数和这些初始猜测过程

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

类型= {“P2ZDI”“P2Z”'p2zi'};sys = idproc(类型)
求和sys = 3输出过程模型:k = Gk (s)从输入1输出1 u: 1 + Tz * s G1 (s) = Kp  * ------------------- * exp (Td *)年代(1 + Tp1 * s) (1 + Tp2 * s) Kp =南Tp1 Td =南Tz = =南Tp2 =南南从输入1输出2:1 + Tz * s G1 (s) = Kp  * ------------------ ( 1 + Tp1 * (s) (1 + Tp2 * s) Kp =南Tp1 =南Tp2 =南Tz =南从输入1输出3:1+Tz*s G1(s) = Kp * ------------------- s(1+Tp1*s)(1+Tp2*s) Kp = NaN Tp1 = NaN Tp2 = NaN Tz = NaN参数化:{'P2DIZ'} {'P2Z'} {'P2IZ'}状态:由直接构造或转换产生。不估计。

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是一个3型号的2输入,一次输出过程模型。

从数组中选择一个模型。

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”。状态:由直接构造或转换产生。不估计。

这个两输入一输出的模型对应于Type2.条目的类型单元阵列。

输入参数

类型

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

对于输出模型,类型是由一个或多个以下字符组成的字符矢量,指定模型结构的方面:

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

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

  • “P1D”指定具有一个极点和一个时间延迟(死时间)项的过程模型:

    年代 y 年代 K p 1 + T p 1 年代 e T d 年代

    KpTp1,一个为该模型的可识别参数。

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

    年代 y 年代 K p 1 + 2 ζ T ω 年代 + T ω 年代 2

    KpTW.,Zeta.为该模型的可识别参数。

  • 'p3zdi'创建具有三极的流程模型。所有的极点都是实数,因为U不包括。该模型还包括一个零、一个时延和一个积分器:

    年代 y 年代 K p 1 + T z 年代 年代 1 + T p 1 年代 1 + T p 2 年代 1 + T p 3. 年代 e T d 年代

    该模型的可识别参数为KpTZ.Tp1Tp2Tp3,一个

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

用于MIMO过程模型纽约输出和ν输入,类型是一个纽约——- - - - - -ν特征阵列的字符向量,指定模型中每个输入/输出对的结构。例如,类型{i, j}指定了类型子系统sys(i,j)来自j输入到了y产出。

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。名称参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

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

特性

idproc对象属性包括:

类型

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

对于SISO模型SYS.,房地产sys。类型包含一个字符向量,指定系统结构。例如,“P1D”

为MIMO模型纽约输出和ν输入,sys。类型是一个纽约——- - - - - -ν特征阵列的字符向量,指定模型中每个输入/输出对的结构。例如,类型{i, j}指定子系统的结构sys(i,j)来自j输入到了产出。

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

字符 意义
Pk 流程模型k杆(不包括积分商)。k是0 1 2或3。
Z 流程模型包含一个零(Tz≠0)。
D 流程模型包括一个时间延迟(死时间)(Td≠0)。
过程模型包括一个积分器(1/年代).
U 过程模型是欠阻尼的。在这种情况下,过程模型包括一个复杂的极点对

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

如果你获得idproc模型通过识别使用过程,然后sys。类型包含您为该标识指定的模型结构。

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

KP,TP1,TP2,TP3,TZ,TW,Zeta,TD

过程模型参数的值。

如果你创建一个idproc模型使用idproc命令,模型结构中存在的所有参数的值默认初始化.模型结构中不存在的参数值固定为0.例如,如果你创建一个模型,SYS.类型的,“P1D”,然后KpTp1,一个被初始化为和是可识别的(自由)参数。所有剩余参数,例如Tp2TZ.,在模型中无效。非活动参数的值固定为零,无法更改。

为MIMO模型纽约输出和ν输入,每个参数值都是一个纽约——- - - - - -ν为模型中的每个输入/输出对指定相应参数值的字符向量的单元格数组。例如,sys.Kp (i, j)指定了Kp分系统值sys(i,j)来自j输入到了产出。

idproc模型SYS.,每个参数值属性如sys。Kpsys。Tp1sys.tz.,而其他则是相应的别名价值条目的结构的属性SYS..例如,sys。Tp3是属性值的别名吗sys.Structure.Tp3.Value

默认值:对于每个参数值,如果过程模型结构包括特定参数;0如果结构不包含参数。

集成

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

对于SISO模型SYS.sys.Integration =真实如果模型包含一个积分器。

对于MIMO模型,sys.Integration (i, j) = true如果传递函数j输入到了输出包含一个积分器。

属性创建流程模型时idproc命令,价值sys.Itegration.是由是否相应的类型包含

NoiseTF

噪声传递函数的系数。

sys。NoiseTF存储噪声传递函数的分子和分母多项式的系数H年代) =N年代) /D年代).

sys。NoiseTF结构有字段吗全国矿工工会.每个字段是的单元格数组Ny行向量,Ny的输出数是多少SYS..这些行向量指定噪声传递函数的系数,分子和分母按幂递减的顺序年代

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

noisenum = {[1 2.2];[1 0.54]};Noissen = {[1 1.3];[1 2]};noisetf = struct(“num”{NoiseNum},“窝”, {NoiseDen});sys = idproc ({“p2”“p1di”});% 2-输出,1-输入过程模型sys。NoiseTF = NoiseTF;

每一个向量sys.NoiseTF.numsys.NoiseTF.den长度必须小于等于3(二阶in年代或更少)。每个矢量必须以1.分子矢量的长度必须等于相应的分母向量的长度,因此H年代)总是双固有的。

默认值:结构(“num”{num2cell ((Ny, 1))},“窝”,{num2cell ((Ny, 1))})

结构

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

sys。结构的模型结构中的每个参数都包含一个条目SYS..例如,如果SYS.的类型是“P1D”,然后SYS.包括可识别的参数KpTp1,一个.相应地,sys.Structure.Kpsys.Structure.Tp1,sys.structure.td.分别包含关于每个参数的信息。

每个参数项sys。结构包含以下字段:

  • 价值——参数值。例如,sys.Structure.Kp.Value包含初始或估计值Kp范围。

    表示未知的参数值。

    对于SISO模型,每个参数值属性,例如sys。Kpsys。Tp1sys.tz.,而其他则是相应的别名价值条目的结构的属性SYS..例如,sys。Tp3是属性值的别名吗sys.Structure.Tp3.Value

    对MIMO模型,sys。Kp{i,j}sys.Structure .Kp.Value (i, j),并且类似地,对于其他可识别的系数值。

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

  • 最大- 参数在估计期间可以假设的最大值。

  • 自由-指定参数是否为自由估计变量的逻辑值。如果您想在估计期间固定参数的值,请设置相应的值自由= false.例如,将死时间固定为5:

    sys。一个=5;sys.Structure.Td.Free = false;
  • 规模- 参数值的比例。规模不用于估算。

  • 信息—结构数组,用于存储参数单元和标签。的结构标签单位字段。

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

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

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

noisavariance.

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

一个识别的模型包括一个白色的高斯噪声成分et).noisavariance.是这个噪声分量的方差。通常,模型估计函数(如过程)确定这种方差。

对于输出模型,noisavariance.是一个标量。对MIMO模型,noisavariance.是A.Ny——- - - - - -Ny矩阵,Ny为系统输出的数量。

报告

方法获取流程模型时,包含有关评估选项和结果的信息的摘要报告过程估计命令。使用报告查询模型是如何被估计的,包括它的:

  • 估计方法

  • 估算选项

  • 搜索终止条件

  • 评估数据匹配和其他质量度量

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

m = idproc (“P2DU”);m.Report.OptionsUsed
ans = []

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

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

报告是只读属性。

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

InputDelay

输入延迟。InputDelay为每个输入通道指定时间延迟的数字向量。的时间单元中指定输入延迟TimeUnit财产。

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

默认值:0为所有输入通道

OutputDelay

输出延迟。

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

TS.

样品时间。为idprocTS.固定为0,因为所有idproc模型是连续时间。

TimeUnit

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

  • “纳秒”

  • '微秒'

  • 的毫秒

  • “秒”

  • '分钟'

  • '小时'

  • '天'

  • “周”

  • “月”

  • '年'

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

默认值:“秒”

InputName

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

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

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

或者,使用自动向量展开为多输入模型分配输入名称。例如,如果SYS.是一个双输入模型,输入:

sys。我nputName = 'controls';

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

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

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

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

  • 在模型显示和图表上识别通道

  • MIMO系统子系统的提取

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

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

InputUnit

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

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

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

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

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

InputGroup

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

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

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

sys(:,“控制”)

默认值:没有字段的结构体

OutputName

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

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

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

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

sys.outputname.=“测量”;

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

当你用iddata对象,数据,软件自动设定OutputName数据。OutputName

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

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

  • 在模型显示和图表上识别通道

  • MIMO系统子系统的提取

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

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

OutputUnit

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

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

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

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

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

OutputGroup

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

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

创建名为温度测量包括输出通道1和3,5。然后,您可以将子系统从所有输入中提取到测量输出使用:

SYS('测量',:)

默认值:没有字段的结构体

名称

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

默认值:

笔记

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

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

默认值:[0×1字符串]

用户数据

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

默认值:[]

SamplingGrid.

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

对于通过抽样一个或多个独立变量而得到的已识别的线性(IDLTI)模型数组,该属性跟踪与每个模型相关联的变量值。显示或绘制模型阵列时出现此信息。使用此信息将跟踪结果追溯到独立变量。

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

例如,如果您在一个系统的不同操作点收集数据,您可以分别为每个操作点标识一个模型,然后将结果堆叠到一个系统数组中。你可以用操作点的信息来标记数组中的各个模型:

Nominal_engine_rpm = [1000 5000 10000];sys。SamplingGrid =结构('rpm'nominal_engine_rpm)

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

用于在Simulink中线性化生成的模型阵列金宝app®软件填充多个参数值或操作点的模型SamplingGrid.自动使用与数组中的每个条目对应的变量值。例如,金宝app仿真软件控制设计™命令线性化(金宝app仿真软件控制设计)slLinearizer(金宝app仿真软件控制设计)填充SamplingGrid.以这种方式。

默认值:[]

之前介绍过的R2006a