IDSS

状态空间模型识别参数

描述

采用IDSS创建具有可识别(可估)系数,或者转换连续时间或离散时间状态空间模型动力系统模型到状态空间形式。

具有输入向量的系统的状态空间模型ü,输出向量ÿ和干扰Ë发生在连续时间以下形式:

d X Ť d Ť = 一个 X Ť + ü Ť + ķ Ë Ť ÿ Ť = C X Ť + d ü Ť + Ë Ť

在离散时间下,状态空间模型的形式如下:

X [ ķ + 1 ] = 一个 X [ ķ ] + ü [ ķ ] + ķ Ë [ ķ ] ÿ [ ķ ] = C X [ ķ ] + d ü [ ķ ] + Ë [ ķ ]

对于IDSS模型,状态空间矩阵的元素一个Cd可以是估计的参数。状态干扰的元件ķ也可估计的参数。该IDSS模型存储在这些矩阵元素的值一个Cdķ模型的属性。

创建

你可以得到IDSS三种方式中的一种模型对象。

  • 估计IDSS模型通过使用基于一个系统的输入 - 输出测量N4SIDssest。这些估计命令估计状态空间矩阵的估元素的值。的估计值被存储在一个Cdķ结果的性质IDSS模型。该报告属性的结果模型存储有关估计的信息,例如处理初始状态值和估计中使用的选项。例如:

    SYS = ssest(数据中,nx);A = sys.A;B = sys.B;sys.Report

    有关估计an的更多示例IDSS模型,看ssestN4SID

  • 创建一个IDSS模型使用IDSS命令。例如:

    sys = ids (A, B, C, D)
    你可以创建IDSS建模为一个状态空间模型的估计配置初始参数,以适应测量的响应数据。当你这样做的话,你可以在一个或多个国家空间矩阵元素指定的约束。例如,您可以修复某些元素的值,或为自由元素指定最大或最小值。然后,可以使用所配置的模型作为输入参数的估计命令(ssestN4SID)来估计与这些约束参数值。举例来说,看到创建具有可识别参数状态空间模型状态空间模型的配置参数可识别

  • 将现有的动态系统模型转换为IDSS模型使用IDSS命令。例如:

    sys_ss = ids (sys_tf);

有关函数的信息,您可以用于提取信息从或变换IDSS模型对象,见对象函数

描述

状态空间模型创建

sys= IDSS(A,B,C,d)使用指定的状态空间矩阵创建状态空间模型A, B, C, D。默认,sys是具有未指定的采样时间和无状态扰动元件的离散时间模型。当你想配置初始参数为输入状态空间估计功能,如特别是使用此语法N4SIDssest

sys= IDSS(A,B,C,d,K)指定一个扰动矩阵ķ

sys= IDSS(A,B,C,d,K,x0用向量初始化状态值x0

sys= IDSS(A,B,C,d,K,x0,TS)指定采样时间属性TS。采用TS = 0创建一个连续时间模型。

sys= idss (___名称,值设置使用一个或多个名称值对参数的附加属性。之后的任何在前面的语法的输入参数的组合指定名称 - 值对的参数。

转换动态系统模型在状态空间模型

sys= idss (sys0将任何动态系统模型sys0IDSS模型的形式。

sys= idss (sys0,'分裂')转换sys0IDSS模型形式,并对待最后尹恩惠的输入通道sys0如在返回的模型噪声信道。sys0必须是数字(非标识)特遣部队ZPK,或党卫军模型对象。同时,sys0输入和输出必须至少相等。

输入参数

全部展开

初始状态值,指定为的列向量ñX值。

动力系统,指定为动态系统模型转换成IDSS模型。

  • sys0是所识别的模式,其估计的参数协方差在转换过程中丢失。如果你想转换,在使用过程中的估计的参数协方差翻译translatecov

  • sys0是一个数值(nonidentified)模型中,状态空间数据sys0定义一个Cd矩阵转换后的模式。扰动矩阵ķ被固定到零。该NoiseVariance默认值为眼睛(纽约),在那里尹恩惠是的输出的数量sys

对于语法SYS = IDSS(sys0, '分裂')sys0必须是数字(非标识)特遣部队ZPK,或党卫军模型对象。同时,sys0输入和输出必须至少相等。最后,子系统纽约sys0(: + 1:纽约+ν)必须包含一个非零馈通项(子系统必须是二元的)。

属性

全部展开

状态空间矩阵的值,指定为对应于每个A、B、C和D矩阵的矩阵。

对于具有系统ñÿ输出,ñü输入,以及ñX状态,状态空间矩阵具有以下尺寸:

  • 一个-ñX——- - - - - -ñX矩阵

  • -ñX——- - - - - -ñü矩阵

  • C-ñÿ——- - - - - -ñX矩阵

  • d-ñÿ——- - - - - -ñü矩阵

如果获得IDSS模型sys通过使用识别ssestN4SID, 然后sys.Asys.Bsys.Csys.D包含矩阵元素的估计值。

如果创建IDSS模型sys使用IDSS命令,sys.Asys.Bsys.Csys.D含有状态空间矩阵的初始值,你与指定A, B, C, D输入参数。

对于一个IDSS模型sys,每个属性sys.Asys.Bsys.Csys.D是相应的别名在入门结构体财产sys。例如,sys.A是属性值的别名sys.Structure.A.Value

状态扰动矩阵的值ķ,指定为ñX——- - - - - -ñÿ矩阵,其中ñX是状态的数量和ñÿ是输出的数量。

如果获得IDSS模型sys通过使用识别ssestN4SID, 然后sys.K包含矩阵元素的估计值。

如果创建IDSS模型sys使用IDSS命令,sys.K包含您与指定状态空间矩阵的初始值ķ输入参数。

对于一个IDSS模型syssys.K是别名的属性的值sys.Structure.K.Value

州名,指定为字符向量或单元格数组。

  • 一阶模型 - 特征向量

  • 具有两个或更多个状态的模型 - 字符向量的细胞阵列

  • 无名状态 -“”

例子:'速度'在姓名一阶模型的唯一状态

状态单元,指定为字符载体或细胞阵列。

  • 一阶模型 - 特征向量

  • 具有两个或更多个状态的模型 - 字符向量的细胞阵列

  • 美国没有指定的单位 -“”

采用StateUnit跟踪每个状态中所表达的单位。StateUnit对系统行为没有影响。

例子:“拉德”对应于一阶模型中唯一状态的单位

的可估计参数的信息IDSS模型,指定为特定于属性的值。Structure.AStructure.BStructure.CStructure.DStructure.K包含有关一个Cdķ矩阵,分别。在每个参数结构体包含以下字段。

领域 描述 例子
参数值 - 每一个属性sys.Asys.Bsys.Csys.D是相应的别名在入门结构体财产sys为NaN表示未知的参数值。 sys.Structure.A.Value属性的初始值或估计值一个矩阵。sys.A是属性值的别名sys.Structure.A.Value
最低限度 估计过程中参数可以假定的最小值 sys.Structure.K.Minimum = 0属性中的所有项ķ矩阵要大于或等于零。
最大 估计时参数可以假定的最大值
免费的 布尔指定参数是否是一个免费的估计变量。如果你想估计在修复一个参数的值,设置相应的自由= false 如果一个是一个3×3矩阵,sys.Structure.A.Free =眼(3)修复所有的非对角条目一个中指定的值sys.Structure.A.Value。在这种情况下,只有对角条目一个是难能可贵的。
规模 参数值的缩放。估计算法不使用规模
信息 包含字段的结构数组标签单元用于存储参数的标签和单元。指定参数的标签和单元作为字符向量。 '时间'

用于配置使用模型参数的一个例子结构体财产,见状态空间模型的配置参数可识别

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

  • SISO模型 - 标量

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

所识别的模型包括高斯白噪声分量ËŤ)。NoiseVariance是该噪声分量的方差。典型地,所述模型估计功能(如ssest)确定这个方差。

此属性是只读的。

获得使用估计的命令包含有关估计选项和结果的状态空间模型信息总结报告,如ssestssregestN4SID。采用报告找到辨识模型,包括估计信息:

  • 估算方法

  • 估计选项

  • 搜索终止条件

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

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

A = [-0.1 0.4;-0.4 - -0.1);B = [1;0);C = [10];D = 0;m = idss (A, B, C, D);sys.Report.OptionsUsed
ANS = []

如果您获得使用估计命令,则的字段报告包含在估计数据,选项和结果的信息。

加载iddata2z2;m = ss (z2, 3);m.Report.OptionsUsed
初始化状态: '自动' N4Weight: '自动' N4Horizo​​n: '自动' 聚焦: '预测' EstimateCovariance:1个显示: '断开' InputOffset:[] OutputOffset:[] OutputWeight:[] SearchMethod: '自动' SearchOptions:[1x1的idoptions.search.identsolver]正则化:[1x1的结构]高级:[1x1的结构]

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

每个输入通道的输入延迟,指定为标量值或数值向量。对于连续时间系统,在存储在的时间单元中指定输入延迟TimeUnit财产。对于离散时间系统,以采样时间的整数倍指定输入延迟TS。例如,设置InputDelay3指定三个采样时间的延迟。

对于具有系统ñü输入,一组InputDelayñü×1向量。该向量中的每个条目是表示用于相应输入通道的输入延迟的数值。

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

对于已识别的系统,如IDSSOutputDelay被固定到零。

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

  • 连续时间模型 -0

  • 离散时间模型与指定的采样时间 - 代表由指定的单位表示的采样周期的正标量TimeUnit模型的属性

  • 与未指定的采样时间离散时间模型 --1

更改此属性不会离散或重新取样模型。采用C2Dd2c对连续 - 离散时间之间转换。采用d2d改变一个离散时间系统的采样时间。

时间变量的单位,采样时间TS和模型中的任何时间延迟,指定为标量。

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

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

  • 单输入模型 - 特征向量。例如,“控制”

  • 多输入模型 - 字符向量的细胞阵列。

可替代地,使用自动向量扩展到多输入的模型分配输入名称。例如,如果sys是一个双输入模式,输入:

sys.InputName=“控制”;

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

当您使用IDDATA宾语数据,软件自动设置InputNamedata.InputName

您可以使用速记符号ü查阅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宾语,数据,软件自动设置OutputNamedata.OutputName

您可以使用速记符号ÿ查阅OutputName财产。例如,sys.y相当于sys.OutputName

您可以通过多种方式使用输出通道的名称,其中包括:

  • 为了识别模型显示和图形上的通道

  • 为了提取MIMO系统的子系统

  • 为了互连模型时指定连接点

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

  • 单输入模型 - 特征向量。例如,“秒”

  • 多输入模型 - 字符向量的细胞阵列。

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

输出通道组,指定为结构。该OutputGroup属性可以划分MIMO系统的输出通道分成组,并通过名称来引用每个组。在里面OutputGroup结构,将字段名称设置为组名称,并将字段值设置为属于每个组的输出通道。

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

sys.OutputGroup。温度=[1];sys.OutputGroup。测量=[3五];

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

SYS( '测量',:)

系统名称,指定为特征向量。例如,“system_1”

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

sys1.Notes =“sys1有一个字符串。”;sys2。ñotes =“SYS2具有字符向量”。;sys1。ñotes sys2.Notes
ANS = “SYS1有一个字符串”。ANS =“SYS2具有字符向量”。

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

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

用于识别的线性阵列(IDLTI)模型您通过采样一个或多个自变量推导,该属性跟踪与每个模型相关联的变量的值。当您显示或绘制模型阵列所出现这个信息。使用此信息来跟踪结果反馈给独立变量。

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

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

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

这里,sys在1000,5000,和10000rpm下,分别得到含有三个识别模型的阵列。

对于模式阵列,你产生的线性化的Simulink金宝app®模型在多个参数值或操作点,软件填充SamplingGrid与数组中每个条目对应的变量值自动匹配。

对象函数

在一般情况下,任何函数适用于动力系统模型适用于IDSS模型对象。这些函数有四种一般类型。

  • 该操作的功能和回报IDSS模型对象使您能够转换和操作IDSS模型。例如:

    • 采用教规改变一个IDSS型号为规范形式

    • 采用合并合并估计IDSS模型。

    • 采用C2D将一个IDSS从连续到离散时间。采用d2c将一个IDSS从离散时间到连续时间。

  • 该执行分析和仿真功能功能IDSS的对象,如预兆SIM卡

  • 该检索或解释模型信息的功能,如忠告getpar

  • 函数转换IDSS对象转换成一个不同的型号,如idpolyIDTF对于时域或idfrd连续域

下面的列表包含的功能代表子集,你可以使用IDSS模型。

全部展开

教规 典型状态空间实现
ss2ss 国家坐标状态空间模型转换
balred 模型降阶
translatecov 在模型转换操作之间转换参数协方差
setpar 设置的初始参数值idnlgrey模型对象
chgTimeUnit 动力系统的变化时间单位
d2d 重采样离散时间模型
d2c 从离散转换模型,连续时间
C2D 将连续时间模型转换为离散时间模型
合并 合并估计模型

全部展开

SIM卡 模拟所识别模型的响应
预测 预测在下一时间步长状态和状态估计误差协方差用扩展的或无迹卡尔曼滤波器或颗粒过滤器
相比 比较识别的模型输出和测量的输出
冲动 动力系统的脉冲响应曲线;脉冲响应数据
一步 动态系统的阶跃响应曲线图;阶跃响应数据
预兆 波德图的频率响应,或幅度和相位数据
data2state 地图过去的数据对非线性ARX模型的状态空间状态和
findstates 估计模型的初始状态

全部展开

idssdata 被识别系统的状态空间数据
得到 访问模型的属性值
getpar 的参数值和属性idnlgrey模型参数
getcov 识别模型的参数协方差
忠告 分析与建议数据或估计线性模型

全部展开

idpoly 与识别参数多项式模型
IDTF 与识别的参数传递函数模型
idfrd 频率响应数据或模型

例子

全部收缩

创建一个可识别的参数的四阶SISO状态空间模型。初始化的初始状态值以0.1为所有条目。设置采样时间0.1秒。

A = blkdiag([ -  0.1 0.4; -0.4 -0.1],[ -  1 5 -5 -1]);B = [1;0 (3,1)];C = [1 0 1 0];D = 0;K = 0 (4,1);x0 = (0.1, 0.1, 0.1, 0.1);TS = 0.1;SYS = IDSS(A,B,C,d,K,X0,TS);

sys是一个四阶SISOIDSS模型。状态和输入输出的维数是通过状态空间矩阵的维数确定。默认情况下,在矩阵的所有条目一个Cdķ是可识别的参数。

您可以使用sys指定用于与状态空间模型估计的初始参数化ssestN4SID

创建一个可识别的参数的四阶SISO状态空间模型。命名模型的输入和输出通道,并指定分钟作为模型时间单位。

您可以使用名称 - 值对参数模型的创建过程中指定的其他模型属性。

A = blkdiag([ -  0.1 0.4; -0.4 -0.1],[ -  1 5 -5 -1]);B = [1;0 (3,1)];C = [1 0 1 0];D = 0;SYS = IDSS(A,B,C,d,“InputName”“开车”'TIMEUNIT'“分钟”);

要更改或指定现有模型的大多数属性,可以使用点表示法。例如,更改输出名称。

sys.OutputName =“扭矩”;

配置IDSS模型,它没有状态干扰因素,只有的非零项一个矩阵是难能可贵的。此外,固定的值矩阵。

您可以配置的独立参数IDSS模型,以指定与状态空间模型估计的约束ssestN4SID

创建一个IDSS模型。

A = blkdiag([ -  0.1 0.4; -0.4 -0.1],[ -  1 5 -5 -1]);B = [1;0 (3,1)];C = [1 0 1 0];D = 0;K = 0 (4,1);x0 = (0.1, 0.1, 0.1, 0.1);sys = idss (A, B, C, D, K, x0, 0);

设置的所有条目ķ0创建IDSS无状态扰动元模型。

使用结构体该模型的属性来解决的一些参数的值。

sys.Structure.A.Free =(A〜= 0);sys.Structure.B.Free = FALSE;sys.Structure.K.Free = FALSE;

的条目sys.Structure.A.Free确定在相应的条目是否sys.A是自由的(可识别的)或固定的。第一行集合sys.Structure.A.Free到作为逻辑矩阵真正无论一个非零和其他任何地方。此设置固定零项的值sys.A

其余的行固定了所有的值sys.Bsys.K到你的模型创建过程中指定的值。

模型中使用的传递函数的动态系统。然后用IDSS在传递函数模型转化为状态空间形式转化。

运用IDTF,构造连续时间单输入单输出(SISO)传递函数,描述为:

G 小号 = 小号 + 4 小号 2 + 2 0 小号 +

NUM = [1 4];DEN = [1 20 5];G = IDTF(NUM,书房)
G = s + 4—s^2 + 20 s + 5连续时间识别传递函数。参数化:极点数:2个零数:1个自由系数数:4使用“tfdata”、“getpvec”、“getcov”来表示参数及其不确定性。状态:通过直接构建或转换而产生的。不估计。

将传递函数转换为状态空间形式。

sys0 = IDSS(G)
sys0 =连续时间状态空间模型发现:dx / dt = x (t) + B u e (t) + K (t) y (t) = C x (t) + D u (t) + e (t) -2.5 = (x1, x2) x1 -20 x2 u1 x1 2 x2 0 2 0 B = C = (x1, x2)日元0.5 - 1 D = u1 y1 0 K = y₁x1 0 x2 0参数化:自由形式(所有系数A、B、C免费)。使用“idssdata”、“getpvec”、“getcov”对参数及其不确定性进行分析。状态:通过直接构建或转换而产生的。不估计。

创建状态空间模型数组。

您可以通过以下几种方式之一创建状态空间模型数组:

  • 使用直接序列建设 ñ 维状态空间阵列

  • 阵列建设的索引分配

  • 建设阵列使用命令

  • 采样使用的识别模型R样品命令

通过提供创建一个数组 ñ 维数组作为输入参数,以IDSS代替2维矩阵。

一个=兰德(2,2,3,4);sysarr = idss(A,[2;1],[11],0);

当您提供多维数组时IDSS前两个维度指定数组中每个模型的状态、输入或输出的数量,而不是状态空间矩阵中的一个。其余维度指定数组本身的维度。一个是一个2×2×3×4阵列。因此,sysarr一个3乘4的数组是IDSS模型。每个模型在sysarr具有两种状态,通过第一两名维指定一个。此外,在每个模型sysarr有相同的Cd值。

通过索引赋值创建数组。

sysarr = IDSS(零(1,1,2));sysarr(:,:,1)= IDSS([4 -3; -2 0],[2; 1],[1 1],0);sysarr(:,:,2)= IDSS(RAND(2),兰特(2,1),兰特(1,2),1);

第一个命令上预先分配阵列。该阵列的第一个两个维是阵列中的每个模型的I / O尺寸。因此,sysarr是SISO模式的2个元素的矢量。

其余的命令分配IDSS模型中的每个位置sysarr。数组中的每个模型必须具有相同的I/O维数。

添加另一个模型sysarr运用

是通过索引建立的阵列的替代方案。

sysarr = stack(1,sysarr,idss)4 9],[0,1],[1],0));

此命令添加另一个IDSS模型沿第一个数组维sysarrsysarr现在是一个3×1阵列SISO的IDSS模型。

介绍了在R2006a