主要内容

中的难点

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

描述

使用中的难点创建一个连续时间和离散时间状态空间模型与识别(有价值的)系数,或转换动态系统模型状态方程形式。

系统的状态空间模型的输入向量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 ]

中的难点模型、状态方程矩阵的元素一个,B,C,D可以有价值的参数。元素的干扰K也可以是有价值的参数。的中的难点模型存储这些矩阵元素的值一个,B,C,D,K模型的属性。

创建

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

  • 估计中的难点基于投入产出模型的测量系统通过使用n4sid党卫军。这些估计命令估计的值可尊敬的状态方程矩阵的元素。估计的值存储在一个,B,C,D,K由此产生的属性中的难点模型。的报告结果模型的属性存储的信息估计,如在初始状态值的处理和评估中使用的选项。例如:

    sys = ss(数据、nx);一个= sys.A;B = sys.B;sys.Report

    估计一个的例子中的难点模型中,看到党卫军n4sid

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

    sys = ids (A, B, C, D)
    您可以创建一个中的难点模型配置状态空间模型的初始参数化估计适合测量响应数据。当你这样做时,你可以指定限制了状态矩阵的一个或多个元素。例如,你可以修复一些元素的值,或者为自由元素指定最小值或最大值。然后,您可以使用配置的模型作为输入参数的估算命令(党卫军n4sid)来估计参数值与约束。有关示例,请参见创建与可识别的状态空间模型参数配置可识别的状态空间模型的参数

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

    sys_ss = ids (sys_tf);

对于信息功能您可以使用从或变换来提取信息中的难点模型对象,看对象的功能

描述

状态空间模型创建

例子

sys= ids (A, B, C, D)创建一个使用指定状态空间模型状态空间矩阵A, B, C, D。默认情况下,sys是一个离散时间模型与一个未指明的样品时间和任何国家干扰元素。使用这种语法尤其是当你想配置一个初始参数作为输入状态评估等功能n4sid党卫军

例子

sys= idss (A, B, C, D, K)指定一个扰动矩阵K

例子

sys= idss (A, B, C, D, K,x0)初始化向量的状态值x0

例子

sys= idss (A, B, C, D, K,x0Ts)指定了样本时间属性Ts。使用t = 0创建一个连续时间模型。

例子

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

动态系统模型转化为状态空间模型

例子

sys= idss (sys0)将任何动态系统模型sys0中的难点模型形式。

sys= idss (sys0,'分裂')转换sys0中的难点模型形式,并将最后一个纽约输入通道的sys0在返回的模型噪声通道。sys0必须是一个数字(nonidentified)特遣部队(控制系统工具箱),zpk(控制系统工具箱),或党卫军(控制系统工具箱)模型对象。同时,sys0必须至少尽可能多的输入输出。

输入参数

全部展开

初始状态值,指定的列向量Nx值。

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

  • sys0是一个识别模型,其参数估计协方差转换期间丢失。如果你想翻译估计协方差参数转换期间,使用translatecov

  • sys0是一个数字(nonidentified)模型,状态数据的sys0定义了一个,B,C,D矩阵的转换模型。干扰矩阵K是固定为零。的NoiseVariance默认值眼睛(纽约),在那里纽约输出的数量吗sys

的语法sys = idss (sys0 '分裂'),sys0必须是一个数字(nonidentified)特遣部队(控制系统工具箱),zpk(控制系统工具箱),或党卫军(控制系统工具箱)模型对象。同时,sys0必须至少尽可能多的输入输出。最后,子系统纽约sys0(: + 1:纽约+ν)必须包含一个非零直通的术语(必须biproper子系统)。

属性

全部展开

指定值的整数矩阵,矩阵,对应于每一个A, B, C, D矩阵。

为一个系统Ny输出,Nu输入,Nx状态,状态方程矩阵有以下方面:

  • 一个- - - - - -Nx——- - - - - -Nx矩阵

  • B- - - - - -Nx——- - - - - -Nu矩阵

  • C- - - - - -Ny——- - - - - -Nx矩阵

  • D- - - - - -Ny——- - - - - -Nu矩阵

如果你得到一个中的难点模型sys通过识别使用党卫军n4sid,然后sys.A,sys.B,sys.C,sys.D包含估计矩阵元素的值。

如果你创建一个中的难点模型sys使用中的难点命令,sys.A,sys.B,sys.C,sys.D包含了状态矩阵的初始值,您指定的A, B, C, D输入参数。

对于一个中的难点模型sys,每个属性sys.A,sys.B,sys.C,sys.D是相应的别名吗价值条目的结构的属性sys。例如,sys.A是房地产价值的别名吗sys.Structure.A.Value

状态扰动矩阵K指定为一个Nx——- - - - - -Ny矩阵,Nx的状态和数量吗Ny是输出的数量。

如果你得到一个中的难点模型sys通过识别使用党卫军n4sid,然后sys.K包含估计矩阵元素的值。

如果你创建一个中的难点模型sys使用中的难点命令,sys.K包含了状态矩阵的初始值,您指定的K输入参数。

对于一个中的难点模型sys,sys.K一个别名财产的价值吗sys.Structure.K.Value

国家名称,指定为一个特征向量数组或单元。

  • 一阶模型——特征向量

  • 模型与两个或两个以上的国家——单元阵列的特征向量

  • 不愿透露姓名的州

例子:“速度”一阶模型名称唯一

国家单位,指定为一个特征向量数组或单元。

  • 一阶模型——特征向量

  • 模型与两个或两个以上的国家——单元阵列的特征向量

  • 国家没有指定单位

使用StateUnit跟踪每个州的单位表示。StateUnit没有对系统行为的影响。

例子:rad的对应的单位唯一的一阶模型

信息的有价值的参数中的难点模型,指定为调控房地产的价值。Structure.A,Structure.B,Structure.C,Structure.D,Structure.K包含的信息一个,B,C,D,K矩阵,分别。每个参数在结构包含以下字段。

描述 例子
价值 参数值,每个属性sys.A,sys.B,sys.C,sys.D是相应的别名吗价值条目的结构的属性sys代表未知的参数值。 sys.Structure.A.Value包含的初始或估算值一个矩阵。sys.A是房地产价值的别名吗sys.Structure.A.Value
最低 最小值,可以假设在估计参数 sys.Structure.K。最小值= 0约束中的所有条目K矩阵是大于或等于零。
最大 最大值在估计参数可以假设
免费的 布尔值指定是否免费评估变量参数。如果你想修复的价值在估计参数,设置相应的自由= false 如果一个是一个3×3的矩阵,sys.Structure.A.Free=eye年代(3)修复所有的非对角的条目一个中指定的值sys.Structure.A.Value。在这种情况下,只有在对角线条目一个是有价值的。
规模 参数的值的范围。估计算法不使用规模
信息 结构数组包含字段标签单位用于存储参数标签和单位。指定参数标签和单位特征向量。 “时间”

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

方差协方差矩阵模型的创新e指定为一个标量或矩阵。

  • 输出模式——标量

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

一个识别模型包括一个高斯白噪声分量e(t)。NoiseVariance是这个噪声分量的方差。通常,模型估计函数(如党卫军)确定方差。

这个属性是只读的。

总结报告,其中包含的信息得到状态空间模型的估计的选择和结果使用命令,估计等党卫军,ssregest,n4sid。使用报告找到识别模型的评估信息,包括:

  • 估算方法

  • 估计选项

  • 搜索终止条件

  • 评估数据和其他质量指标

如果您创建的模型建设,报告属性,传达估计信息,大多是空的。

= (-0.1 - 0.4;-0.4 - -0.1);B = [1;0);C = 0 [1];D = 0;sys = idss (A, B, C, D);sys.Report
ans =状态:“直接由建设或转换。不估计。方法:”InitialState:“N4Weight:“N4Horizon:[]适合:[1×1 struct]参数:[1×1 struct] OptionsUsed: [] RandState: [] DataUsed: [1×1 struct]终止:[]

如果你获得使用估计命令,领域的报告包含信息的评估数据,选择,和结果。

负载iddata2z2;sys = ss (z2, 3);sys.Report
ans =状态:估计用ss预测集中的方法:“党卫军”InitialState:“零”N4Weight:“脑血管意外”N4Horizon:[5 8 8]适合:[1×1 struct]参数:[1×1 struct] OptionsUsed: [1×1 idoptions。党卫军]RandState: [] DataUsed: [1×1 struct]终止:[1×1 struct]

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

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

为一个系统Nu输入,设置InputDelay到一个Nu1的向量。这个向量的每个条目是一个数值,表示相应的输入延迟输入通道。

你也可以设置InputDelay一个标量值应用相同的延迟所有频道。

识别系统等中的难点,OutputDelay是固定为零。

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

  • 连续时间模型,0

  • 离散时间模型与一个指定的采样时间,积极的标量表示指定的单位表达的采样周期TimeUnit模型的属性

  • 离散时间模型与未指明的时间——示例1

改变这个属性不离散化或重新取样模型。使用汇集d2c连续和离散时间表示形式之间的转换。使用d2d改变样本的离散时间系统。

单位时间变量,样品时间Ts在模型中,任何时间延迟,指定为一个标量。

改变这个属性不重新取样或转换数据。修改属性更改现有数据的解释。使用chgTimeUnit(控制系统工具箱)将数据转换成不同的时间单位

输入通道名称,指定为一个特征向量数组或单元。

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

  • 多输入模型——单元阵列的特征向量。

另外,使用自动分配向量扩张输入名字多输入模型。例如,如果sys是一个两个输入模型中,输入:

sys.InputName=“控制”;

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

当你使用一个估计模型iddata对象数据,软件自动设置InputNamedata.InputName

您可以使用速记符号u来指InputName财产。例如,sys.u相当于sys.InputName

您可以使用输入通道名称在几个方面,包括:

  • 确定渠道模式显示和阴谋

  • 提取MIMO系统的子系统

  • 当互连模型指定连接点

输入通道单位,指定为一个特征向量或单元阵列:

  • 单输入模型,特征向量

  • 多输入模型——单元阵列的特征向量

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

输入通道组,指定为一个结构。的InputGroup属性允许您将MIMO系统的输入通道分成组,这样你可以参考每组的名字。在InputGroup结构,设置组名称字段名和字段值属于每一组的输入通道。

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

sys.InputGroup。控制=(12];sys.InputGroup。噪音= [3 - 5];

然后您可以提取的子系统控制输入所有输出使用下面的语法:

sys(:,“控制”)

输出通道名称,指定为一个特征向量数组或单元。

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

  • 多输入模型——单元阵列的特征向量。

另外,使用自动分配向量扩张输出名称多输出模型。例如,如果sys是一个两个输出模型,输入:

sys.OutputName=“测量”;

输出名称自动扩大{“测量(1)”,“测量”(2)}

当你使用一个估计模型iddata对象,数据,软件自动设置OutputNamedata.OutputName

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

您可以使用输出通道名称在几个方面,包括:

  • 确定渠道模式显示和阴谋

  • 提取MIMO系统的子系统

  • 当互连模型指定连接点

输出通道单位,指定为一个特征向量数组或单元。

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

  • 多输入模型——单元阵列的特征向量。

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

输出通道组,指定为一个结构。的OutputGroup属性允许您将MIMO系统的输出通道分成组,指每组的名字。在OutputGroup结构,设置组名称字段名和字段值属于每组输出通道。

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

sys.OutputGroup。温度=(1];sys.OutputGroup。测量=(35];

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

系统(“测量”,:)

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

任何你想要的文本关联系统,指定为一个字符串或一个单元阵列的特征向量。您提供的属性存储任何数据类型。例如,如果sys1sys2动态系统模型,您可以设置他们的吗笔记属性如下。

sys1。笔记=“sys1字符串。”;sys2。Notes =sys2有一个特征向量。;sys1。笔记sys2。Notes
ans =“sys1字符串。”ans = sys2有一个特征向量。

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

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

确定线性数组(IDLTI)模型,你获得通过抽样一个或多个独立变量,该属性与每个模型相关的变量值。这个信息显示或绘制模型时出现数组。使用此信息来跟踪结果返回给独立变量。

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

例如,假设你收集数据在不同操作系统的点。您可以确定一个模型分别为每个操作点,然后叠加结果数组组合进一个系统。你可以标记数组中的单个模型信息的操作点。

nominal_engine_rpm = (1000 5000 10000);sys。SamplingGrid =结构(“转”nominal_engine_rpm)

在这里,sys是一个数组包含三种识别模型获得了在1000年,5000年和10000 rpm。

为您生成模型阵列通过线性化模型®模型在多个参数值或操作点,软件填充SamplingGrid自动变量的值,对应于每个条目数组中。

对象的功能

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

  • 并返回操作的函数中的难点模型对象允许您改变和操作中的难点模型。例如:

    • 使用佳能改变一个中的难点模型转换为规范形式

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

    • 使用汇集将一个中的难点从连续到离散时间。使用d2c将一个中的难点从离散到连续时间。

  • 函数执行分析和仿真功能中的难点对象,如波德sim卡

  • 函数检索或解释模型信息,例如建议getpar

  • 功能转换中的难点对象到一个不同的模型类型,例如idpolyidtf时间域或idfrd连续域

下面的列表包含一个代表功能的子集,您可以使用中的难点模型。

全部展开

佳能 状态空间实现规范化
ss2ss 状态空间模型的坐标变换
balred 模型降阶
translatecov 翻译参数协方差模型转换业务
setpar 设置属性,如线性模型参数的值和范围
chgTimeUnit 改变时间单位的动态系统
d2d 重新取样离散时间模型
d2c 将模型从离散连续时间
汇集 转换从连续,离散时间模型
合并 合并估计模型

全部展开

sim卡 确定模型的模拟响应
预测 预测状态和状态估计误差协方差在下次一步使用扩展或无味卡尔曼滤波、粒子滤波
比较 比较确定了模型输出和测量输出
冲动 脉冲响应的动态系统;脉冲响应数据
一步 阶跃响应的动态系统;阶跃响应数据
波德 波德图的频率响应,或大小和相位数据
data2state 过去的数据映射到状态方程和非线性ARX模型
findstates 估计模型的初始状态

全部展开

idssdata 确定系统的状态数据
得到 访问模型属性值
getpar 获取属性,如线性模型参数的值和范围
getcov 参数识别模型的协方差
建议 数据或估计线性模型分析和建议

全部展开

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

例子

全部折叠

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

一个= 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);

sys是一个四阶的输出中的难点模型。的状态数和输入-输出维度是状态空间矩阵的尺寸决定的。默认情况下,所有条目的矩阵一个,B,C,D,K是可识别的参数。

您可以使用sys指定一个初始状态空间模型的参数估计党卫军n4sid

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

您可以使用名称-值对参数指定附加在模型创建模型属性。

一个= 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=“扭矩”;

配置一个中的难点模型,它没有状态干扰元素和唯一的非零项一个矩阵是有价值的。此外,固定的值B矩阵。

您可以配置的单个参数中的难点模型为评估与状态空间模型指定约束党卫军n4sid

创建一个中的难点模型。

一个= 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);

设置所有条目K0创建一个中的难点模型没有状态干扰元素。

使用结构属性模型的修复的一些参数的值。

sys.Structure.A.Free=(一个~=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在模型创建您指定的值。

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

使用idtf对于输入,构造一个连续时间变量传递函数的输出所描述的:

G ( 年代 ) = 年代 + 4 年代 2 + 2 0 年代 + 5

num = (1 - 4);穴= 20 5 [1];G = idtf (num穴)
G = s + 4 - - - - - - - - - - - - - - - - ^ 2 + 20年代+ 5连续时间确定传递函数。参数化:极数:2 0数量:1很多免费的系数:4使用“tfdata”、“getpvec”、“getcov”参数及其不确定性。状态:由直接建设或转换。不估计。

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

sys0 = ids (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免费)。引线:没有干扰组件:没有很多免费的系数:8使用“idssdata”、“getpvec”、“getcov”参数及其不确定性。状态:由直接建设或转换。不估计。

创建一个数组的状态空间模型。

您可以创建一个数组的几种方法之一:中状态空间模型

  • 数组直接施工使用 n 维整数数组

  • Array-building通过索引分配

  • Array-building使用堆栈命令

  • 抽样确定模型使用rsample命令

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

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

当你提供一个多维数组中的难点代替一个整数矩阵,前两个维度指定数量的州,每个模型的输入或输出数组。其余尺寸指定数组本身的尺寸。一个是一个2-by-2-by-3-by-4数组。因此,sysarr是一个3×4组中的难点模型。每个模型在sysarr指定的两个州,前两个维度一个。此外,每个模型sysarr有相同的B,C,D值。

创建一个数组索引分配。

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

第一个命令预分配的数组。第一个数组的两个维度是I / O数组中的每个模型的维度。因此,sysarr是一个2-element向量输出模型。

分配一个剩余的命令中的难点模型中每个位置sysarr。数组中每个模型必须具有相同的I / O维度。

添加另一个模型sysarr使用堆栈

堆栈是另一种构建数组的索引。

sysarr =堆栈(1 sysarr ids ([1 2;4 9],[0,1],[1],0));

这个命令添加另一个中的难点沿着第一个数组维度模型sysarrsysarr现在是一个3×1阵列的输出中的难点模型。

版本历史

介绍了R2006a

Baidu
map