主要内容

中的难点

具有可识别参数的状态空间模型

描述

使用中的难点创建具有可识别(可估计)系数的连续时间或离散时间状态空间模型,或转换动态系统模型到国家空间形式。

带输入向量系统的状态空间模型u、输出向量y和干扰e连续时间的形式如下:

d x t d t 一个 x t + B u t + K e t y t C x t + D u t + e t

在离散时间内,状态空间模型采用以下形式:

x k + 1 一个 x k + B u k + K e k y k C x k + D u k + e k

为了中的难点模型,状态空间矩阵的元素一个BC,及D是可估计的参数。状态扰动的因素K也可以是可评估的参数。的中的难点模型中存储这些矩阵元素的值一个BCD,及K模型的属性。

创造

你可以获得中的难点模型对象以三种方式之一。

  • 估计中的难点模型基于系统的输入-输出测量n4sidssest.这些估计命令估计状态空间矩阵的可估计元素的值。估计值存储在一个BCD,及K结果函数的性质中的难点模型。的报告属性存储有关估计的信息,例如初始状态值的处理和估计中使用的选项。例如:

    sys = ss(数据、nx);一个= sys.A;B = sys.B;sys。报告

    有关估算中的难点模型,参见ssestn4sid

  • 创建一个中的难点使用中的难点命令。例如:

    sys=idss(A、B、C、D)
    您可以创建一个中的难点模型,用于配置初始参数化以估计状态空间模型,以适合测量的响应数据。执行此操作时,可以在一个或多个状态空间矩阵元素上指定约束。例如,可以固定某些元素的值,或者为自由元素指定最小值或最大值。然后,可以将配置的模型用作估算命令的输入参数(ssestn4sid)使用这些约束估计参数值。有关示例,请参见创建具有可识别参数的状态空间模型配置状态空间模型的可识别参数

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

    sys_ss=idss(sys_tf);

有关可用于从中提取信息或转换信息的函数的信息,请参见中的难点模型对象,见对象功能

描述

创建状态空间模型

例子

系统= ids (A, B, C, D)使用指定的状态空间矩阵创建状态空间模型A、 B、C、D.默认情况下,系统是一个离散时间模型,具有未指定的采样时间和无状态扰动元素。使用此语法,尤其是当您希望将初始参数化配置为状态空间估计函数的输入时,如n4sidssest

例子

系统= idss (A, B, C, D, K)指定干扰矩阵K

例子

系统=idss(A、B、C、D、K、,x0使用向量初始化状态值x0

例子

系统=idss(A、B、C、D、K、,x0,Ts)指定采样时间属性Ts.使用Ts=0创建连续时间模型。

例子

系统=idss(___名称,值使用一个或多个名称值对参数设置其他属性。在前一个语法中的任何输入参数组合后指定名称值对参数。

将动态系统模型转换为状态空间模型

例子

系统=idss(sys0转换任何动态系统模型sys0中的难点模型形式。

系统=idss(sys0,'分裂')转换sys0中的难点模型形式,并处理最后一个纽约输入通道sys0作为返回模型中的噪声通道。sys0必须是数字(未标识)tf(控制系统工具箱)zpk(控制系统工具箱)党卫军(控制系统工具箱)模型对象。也,sys0必须至少有和输出一样多的输入。

输入参数

全部展开

初始状态值,指定为列向量Nx价值观

动态系统,指定为要转换为的动态系统模型中的难点模型。

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

  • sys0的状态空间数据是一个数字(未识别)模型吗sys0定义了一个BC,及D转换模型的矩阵。扰动矩阵K固定为零。的隔声值默认为眼睛(纽约)哪里纽约的输出数是多少系统

对于语法sys = idss (sys0 '分裂')sys0必须是数字(未标识)tf(控制系统工具箱)zpk(控制系统工具箱)党卫军(控制系统工具箱)模型对象。也,sys0必须至少具有与输出相同数量的输入。最后,子系统sys0(:,Ny+1:Ny+Nu)必须包含非零馈通项(子系统必须为双组)。

性质

全部展开

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

对于一个系统Ny产出,Nu输入,Nx状态,状态空间矩阵具有以下维度:

  • 一个- - - - - -Nx-借-Nx矩阵

  • B- - - - - -Nx-借-Nu矩阵

  • C- - - - - -Ny-借-Nx矩阵

  • D- - - - - -Ny-借-Nu矩阵

如果你获得了一个中的难点模型系统通过使用ssestn4sid, 然后sys.a.sys.b.sys.c.,及sys.d.包含矩阵元素的估计值。

如果您创建一个中的难点模型系统使用中的难点指挥部,sys.a.sys.b.sys.c.,及sys.d.包含您使用的状态空间矩阵的初始值A、 B、C、D输入参数。

为了中的难点模型系统,每个属性sys.a.sys.b.sys.c.,及sys.d.是对应对象的别名价值条目的结构财产系统.例如,sys.a.是属性值的别名吗sys.structure.a.value.

状态扰动矩阵的值K,指定为Nx-借-Ny矩阵,其中Nx状态数是和吗Ny为输出数。

如果你获得了一个中的难点模型系统通过使用ssestn4sid, 然后sys.k.包含矩阵元素的估计值。

如果您创建一个中的难点模型系统使用中的难点指挥部,sys.k.包含使用指定的状态空间矩阵的初始值K输入参数。

为了中的难点模型系统sys.k.是属性值的别名吗sys.structure.k.Value.

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

  • 一阶模型-字符向量

  • 具有两个或多个状态的模型-字符向量的单元数组

  • 未命名国家-''

例子:'速度'命名一阶模型中唯一的状态

状态单位,指定为字符向量或单元格数组。

  • 一阶模型-字符向量

  • 具有两个或多个状态的模型-字符向量的单元数组

  • 没有指定单位的状态-''

使用国家单位为了跟踪每个状态所表示的单位。国家单位对系统行为没有影响。

例子:'rad'对应于一阶模型中唯一状态的单位

有关可估算的设备参数的信息中的难点模型,指定为特性特定的值。结构A结构B结构C结构D,及结构K包含有关一个BCD,及K分别是矩阵。中的每个参数结构包含以下字段。

场地 描述 例子
价值 参数值 - 每个属性sys.a.sys.b.sys.c.,及sys.d.是对应对象的别名价值条目的结构财产系统表示未知的参数值。 sys.structure.a.value.包含初始值或估计值一个矩阵。sys.a.是属性值的别名吗sys.structure.a.value.
最低限度 参数在估计过程中可以假定的最小值 sys.Structure.K.Minimum = 0约束中的所有条目K矩阵大于或等于零。
最大限度 参数在估计期间可以假定的最大值
自由的 指定参数是否为自由估计变量的布尔值。如果要在估计期间固定参数值,请设置相应的自由=错误 如果一个是一个3×3矩阵,sys.Structure.A.Free=眼睛(3)修复中所有非对角项一个设置为中指定的值sys.structure.a.value..在这种情况下,只有对角线条目一个是可评估的。
规模 参数值的比例。估计算法不使用规模
信息 包含字段的结构数组标签单元用于存储参数标签和单位。将参数标签和单位指定为字符向量。 “时间”

的示例来配置模型参数结构属性,请参见配置状态空间模型的可识别参数

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

  • SISO模型 - 标量

  • 多输入多输出模型Ny输出-Ny-借-Ny矩阵

识别的模型包括白色高斯噪声分量et)。隔声是此噪波分量的方差。通常,模型估计函数(例如ssest)确定此差异。

此属性是只读的。

摘要报告,包含关于使用评估命令获得的状态空间模型的评估选项和结果的信息,例如ssest斯雷格斯特,及n4sid.使用报告查找识别模型的估计信息,包括:

  • 估算方法

  • 估算选项

  • 搜索终止条件

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

如果通过构造创建模型,则报告这些都无关紧要。

A=[-0.1 0.4-0.4 -0.1]; B=[1;0]; C=[10];D=0;m=idss(A、B、C、D);sys.Report.options已使用
ans = []

如果使用估算命令获取,则报告包含有关估算数据、选项和结果的信息。

加载iddata2z2; m=ssest(z2,3);m、 Report.options已使用
初始状态:'auto' N4Weight: 'auto' N4Horizon: 'auto' Focus: 'prediction' estimatecvariance: 1 Display: 'off' InputOffset: [] OutputOffset: [] outpuweight: [] SearchMethod: 'auto' SearchOptions: [1x1 idoptions.search.]identsolver正则化:[1x1 struct]高级:[1x1 struct]

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

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

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

您还可以设置inputdelay.设置为标量值,以便对所有通道应用相同的延迟。

对于已识别的系统,例如中的难点OutputDelay固定为零。

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

  • 连续时间模型-0

  • 具有指定采样时间的离散时间模型 - 表示在由此指定的单位中表示的采样周期的正标量时间单位模型的性质

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

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

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

更改此属性不会重新采样或转换数据。修改特性只会更改现有数据的解释。使用chgtimeUnit.(控制系统工具箱)将数据转换为不同的时间单位

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

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

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

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

sys.InputName='controls';

输入名称自动展开为{'controls(1)'控件(2)'}

当您使用一个估计模型时iddata对象数据,软件会自动设置InputName.data.InputName.

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

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

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

  • 提取MIMO系统的子系统

  • 在互连模型时指定连接点的步骤

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

  • 单输入模型 - 字符向量

  • 多输入模型 - 字符向量单元阵列

使用InpoinUnit.跟踪输入信号装置。InpoinUnit.对系统行为没有影响。

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

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

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

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

sys(:,“控制”)

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

  • 单输入模型-字符向量。例如“测量”

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

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

sys.outputname ='测量';

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

当您使用一个估计模型时iddata对象数据,软件会自动设置输出名data.outputname.

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

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

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

  • 提取MIMO系统的子系统

  • 在互连模型时指定连接点的步骤

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

  • 单输入模型-字符向量。例如“秒”

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

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

输出通道组,指定为结构。这个产量组属性可用于将MIMO系统的输出通道划分为多个组,并按名称引用每个组。在产量组结构,将字段名设置为组名,将字段值设置为属于每个组的输出通道。

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

sys.OutputGroup.temperature=[1];sys.OutputGroup.measurement=[35];

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

系统('测量',:)

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

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

系统1.注释=“sys1有一个字符串。”; 系统2.注释=“sys2有一个字符向量。”;sys1。笔记系统2.Notes
Ans = ' sys1 has a string. ' Ans = 'sys2 has a character vector.'

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

模型阵列的采样网格,指定为结构。

对于通过采样一个或多个自变量而衍生的已识别线性(IDLTI)模型数组,此属性跟踪与每个模型关联的变量值。显示或打印模型阵列时会显示此信息。使用此信息将结果追溯到自变量。

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

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

标称发动机转速=[1000 5000 10000];sys.SamplingGrid=struct(“rpm”nominal_engine_rpm)

在这里系统是包含在1000,5000和10000 rpm的三个识别模型的阵列。

对于通过线性化Simulink生成的模型阵列万博1manbetx®模型在多个参数值或工作点,软件填充取样网格自动使用与数组中每个条目对应的变量值。

对象功能

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

  • 操作和返回的函数中的难点模型对象使您能够变换和操纵中的难点模型。例如:

    • 使用佳能改造中的难点模型转化为标准形式

    • 使用合并合并中的难点模型。

    • 使用c2d转换中的难点从连续时间到离散时间。使用d2c转换中的难点从离散时间到连续时间。

  • 在上执行分析和模拟功能的函数中的难点对象,如预兆SIM

  • 检索或解释模型信息的功能,例如建议getpar.

  • 转换的函数中的难点对象进入不同的模型类型,例如idpolyidtf用于时域或IDFRD.关于连续域

下面的列表包含可以使用的具有代表性的函数子集中的难点模型。

全部展开

佳能 状态空间实现规范化
ss2ss 状态空间模型的坐标转换
阻止 模型降阶
translatecov 跨模型变换操作转换参数协方差
塞帕尔 设置属性,例如线性模型参数的值和边界
chgtimeUnit. 动态系统的变化时间单位
d2d 重新采用离散时间模型
d2c 将模型从离散时间转换为连续时间
c2d 将模型从连续时间转换为离散时间
合并 合并估计模型

全部展开

SIM 模拟识别模型的响应
预测 利用扩展卡尔曼滤波或无迹卡尔曼滤波或粒子滤波预测下一时刻的状态和状态估计误差协方差
相比 比较确定的模型输出和测量输出
冲动 动力系统的脉冲响应图;脉冲响应数据
动态系统阶跃响应图;阶跃响应数据
预兆 频率响应的Bode图,或幅值和相位数据
data2state 将过去的数据映射到状态空间和非线性ARX模型的状态
findstates 估计模型的初始状态

全部展开

idssdata 被识别系统的状态空间数据
得到 访问模型属性值
getpar. 获取线性模型参数的值和界限等属性
getcov 辨识模型的参数协方差
建议 数据或估计线性模型的分析和建议

全部展开

idpoly 具有可识别参数的多项式模型
idtf 参数可辨识的传递函数模型
IDFRD. 频率响应数据或模型

例子

全部收缩

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

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);t = 0.1; sys = idss(A,B,C,D,K,x0,Ts);

系统是第4阶SISO中的难点模型。状态数和输入输出维数由状态空间矩阵的维数决定。默认情况下,是矩阵中的所有项一个BCD,及K是可识别的参数。

您可以使用系统为状态空间模型估计指定初始参数化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=“扭矩”

配置A.中的难点模型中没有状态扰动元素,只有非零项一个矩阵是可估计的。此外,请修复B矩阵。

您可以配置一个应用程序的各个参数中的难点模型指定状态空间模型估计的约束ssestn4sid

创建一个中的难点模型。

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

设置的所有条目K0创造一个中的难点无状态扰动元的模型。

使用结构属性来固定某些参数的值。

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.b.sys.k.到您在模型创建期间指定的值。

用传递函数建立动态系统的模型。然后使用中的难点将传递函数模型转换为状态空间形式。

使用idtf,构造一个连续时间、单输入、单输出(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”表示参数及其不确定性。状态:通过直接构造或转换创建。没有估计。

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

sys0=idss(G)
SYS0 =连续时间识别的状态空间模型:DX / DT = A x(t)+ b u(t)+ k e(t)y(t)= c x(t)+ d u(t)+ d(t)一个=x1x2x1 -20 -2.5 x2 2 0 B = u1 x1 2 x2 0 C = x1 x2 y1 0.5 1 D = u1 y1 0 K = y1 x1 0 x2 0 Parameterization: FREE form (all coefficients in A, B, C free). Feedthrough: none Disturbance component: none Number of free coefficients: 8 Use "idssdata", "getpvec", "getcov" for parameters and their uncertainties. Status: Created by direct construction or transformation. Not estimated.

创建状态空间模型数组。

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

  • 直接阵列构造 n - 尺寸的状态空间阵列

  • 索引分配的数组建设

  • 阵列建筑使用命令

  • 使用识别的模型使用rsample命令

通过提供 n - 阵列数组作为输入参数中的难点,而不是二维矩阵。

A=兰特(2,2,3,4);sysarr=idss(A,[2;1],[1 1],0);

当您向提供多维数组时中的难点代替一个状态空间矩阵,前两个维度指定阵列中每个模型的状态、输入或输出的数量。其余维度指定数组本身的维度。一个是一个2 × 2 × 3 × 4的数组。因此,sysarr是一个3乘4的数组中的难点模型。中的每个模型sysarr具有两种状态,由的前两个维度指定一个. 此外,每个模型sysarr有相同的BC,及D价值观

通过索引赋值创建数组。

sysarr = idss (0 (1, 1, 2));Sysarr (:,: 1) = idss([4 -3;2 0], [2; 1], [1], 0);sysarr (:: 2) = idss(兰德(2),兰德(2,1),兰德(1、2),1);

第一个命令预先分配数组。阵列的前两个维度是阵列中每个模型的I/O维度。所以,,sysarr是SISO模型的2元素向量。

其余命令分配中的难点模型到每个位置sysarr. 阵列中的每个模型必须具有相同的I/O维度。

将另一个模型添加到sysarr使用

是通过索引构建数组的替代方案。

Sysarr = stack(1, Sysarr,idss([1 -2;4 9], [0, 1], [1], 0));

该命令添加了另一个中的难点沿第一个数组维度的模型sysarrsysarr现在是一个3比1的siso数组中的难点模型。

在R2006A介绍