主要内容

n4sid

利用时域或频域数据,用子空间方法估计状态空间模型

描述

例子

sys= n4sid (数据nx估计一个离散时间状态空间模型sys的订单nx使用数据,可为时域或频域数据。sys是以下形式的模型:

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

一个BCD,K都是状态空间矩阵。ut)为输入,yt)为输出,et)为扰动,且xt)是的向量nx州。

的所有项一个BC,K默认情况下是自由可估参数。对于动态系统,D默认固定为零,这意味着系统没有馈通。对于静态系统(Nx = 0),D默认情况下是一个可估计的参数。

例子

sys= n4sid (数据nx名称,值合并由一个或多个名称-值对参数指定的其他选项。例如,要估计一个连续时间模型,请指定采样时间“t”作为0.使用“形式”“引线”,“DisturbanceModel”类的默认行为一个BCD,K矩阵。

例子

sys= n4sid (___选择指定估算选项选择.这些选项可以包括初始状态、估计目标和用于估计的子空间算法相关的选择。指定选择在任何前面的输入-参数组合之后。

sysx0= n4sid(___返回在估计期间计算的初始状态值。您可以将此语法用于前面的任何输入-参数组合。

例子

全部折叠

估计一个状态空间模型,并将其响应与测量输出进行比较。

加载输入输出数据z1,它存储在iddata对象。

负载iddata1z1

估计一个四阶状态空间模型。

Nx = 4;Sys = n4sid(z1,nx)
sys =离散时间状态空间模型发现:x (t + Ts) = x (t) + B K u (t) + e (t) y (t) = C x (t) + D u (t) + e (t) = (x1, x2) x3 x4 x1 x2 0.8392 -0.3129 0.02105 0.03743 0.4768 0.6671 0.1428 0.003757 x3 x4 1.046 -0.01951 0.08374 -0.09761 -0.003885 -0.02914 -0.8796 7.256 -0.03301 -0.03171 B = u1 x1 0.02635 x2 x3 e-05 x4 0.0005861 C = x1 x2 x3 x4 y1 69.08 - 26.64 -2.237 - -0.5601 D = u1 y1 0 K = 0.003282日元x1 x2 0.009339 x3 -0.003232 x4 0.003809样品时间:0.1秒参数化:自由形式(A, B, C中的所有系数都是自由的)。参数及其不确定性使用"idssdata", "getpvec", "getcov"。状态:使用时域数据“z1”上的N4SID进行估计。与估计数据拟合:76.33%(预测焦点)FPE: 1.21, MSE: 1.087

将模拟模型响应与实测输出进行比较。

比较(z1, sys)

图中包含一个坐标轴。坐标轴包含两个line类型的对象。这些对象表示z1 (y1), sys: 70.44%。

结果表明,模拟模型与估计数据的拟合率大于70%。

可以查看有关评估的更多信息中的难点财产sys。报告

sys。报告
ans = Status: 'Estimated using N4SID with prediction focus . ' Method: 'N4SID' InitialState: 'estimate' N4Weight: 'CVA' N4Horizon: [6 10 10] Fit: [1x1 struct] Parameters: [1x1 struct] OptionsUsed: [1x1 idoptions.]n4sid] RandState: [1x1 struct] DataUsed: [1x1 struct]

例如,找出关于估计初始状态的更多信息。

sys.Report.Parameters.X0
ans =4×1-0.0193 0.0282

加载输入输出数据z1,它存储在iddata对象。

负载iddata1z1

通过指定参数确定最优模型顺序nx取值范围为1到10。

Nx = 1:10;Sys = n4sid(z1,nx);

自动生成的图显示了所指定阶的模型的汉克尔奇异值nx

汉克尔奇异值相对较小的状态可以被安全地丢弃。建议的默认顺序选择为2

中选择模型顺序选择的顺序列出并单击应用

负载估计数据。

负载iddata2z2

指定评估选项。设置权重方案“N4Weight”“SSARX”和估计状态显示选项“显示”“上”

opt = n4sidOptions(“N4Weight”“SSARX”“显示”“上”
n4sid命令的选项设置:InitialState: 'estimate' N4Weight: 'SSARX' N4Horizon: 'auto' Display: 'on' InputOffset: [] OutputOffset: [] EstimateCovariance: 1 OutputWeight: [] Focus: 'prediction' WeightingFilter: [] EnforceStability: 0 Advanced: [1x1 struct]

使用更新的选项集估计一个三阶状态空间模型。

Nx = 3;Sys = n4sid(z2,nx,opt);

修改A、B和C矩阵的标准形式,在D矩阵中包含一个馈通项,并在K矩阵中消除扰动模型估计。

加载输入输出数据,并估计一个四阶系统n4sid默认选项。

负载iddata1z1Sys1 = n4sid(z1,4);

指定模态形式并比较一个带有默认值的矩阵一个矩阵。

Sys2 = n4sid(z1,4,“形式”“模态”);A1 = sys1。一个
A1 =4×40.8392 -0.3129 0.0211 0.0374 0.4768 0.6671 0.1428 0.0038 -0.0195 0.0837 -0.0976 1.0462 -0.0039 -0.0291 -0.8796 -0.0317
A2 = sys2。一个
A2 =4×40.7554 0.3779 0 0 -0.3779 0.7554 0 0 0 0 -0.0669 0.9542 0 0 -0.9542 -0.0669

包括一个馈通项和比较D矩阵。

Sys3 = n4sid(z1,4,“引线”1);D1 = sys1。D
D1 = 0
D3 = sys3。D
D3 = 0.0487

消除扰动建模并比较K矩阵。

Sys4 = n4sid(z1,4,“DisturbanceModel”“没有”);K1 = sys1。K
K1 =4×10.0033 0.0093 -0.0032 0.0038
K4 = sys4。K
K4 =4×10 0 0 0

估计一个连续时间的标准形式模型。

负载估计数据。

负载iddata1z1

估计模型。集Ts0指定一个连续的模型。

Nx = 2;Sys = n4sid(z1,nx,“t”0,“形式”“规范”);

sys是标准形式的二阶连续时间状态空间模型。

利用子空间算法从闭环数据中估计状态空间模型SSARX.该算法在捕获反馈效应方面优于其他加权算法。

为受白噪声干扰的二阶系统生成闭环估计数据。

N = 1000;K = 0.5;rng (“默认”);w = randn(N,1);z = 0 (N,1);u = 0 (N,1);y = 0 (N,1);e = randn(N,1);V = filter([1 0.5],[1 1.5 0.7],e);k = 3: u(k-1) = -K*y(k-2) + w(k);u(k-1) = -K*y(k-1) + w(k);z (k) = 1.5 * z (k - 1) - 0.7 * z (k-2) + u (k - 1) + 0.5 * (k-2);Y (k) = z(k) + 0.8*v(k);结束Dat = iddata(y, u, 1);

指定加权方案“N4weight”由N4SID算法使用。创建两个选项集。对于一个选项集合,集合“N4weight”“脑血管意外”.对于其他选项集,设置“N4weight”“SSARX”

optCVA = n4sidOptions(“N4weight”“脑血管意外”);optSSARX = n4sidOptions(“N4weight”“SSARX”);

使用选项集估计状态空间模型。

sysCVA = n4sid(dat,2,optCVA);sysSSARX = n4sid(dat,2,optSSARX);

比较两种模型与估计数据的拟合情况。

比较(dat sysCVA sysSSARX);

图中包含一个坐标轴。坐标轴包含3个line类型的对象。这些对象表示dat (y1), sysCVA: 71.26%, sysSSARX: 77.1%。

如图所示,使用SSARX算法估计的模型比使用CVA算法估计的模型产生了更好的拟合。

输入参数

全部折叠

估计数据,指定为iddata对象,一个的朋友对象,或idfrd对象。

对于时域估计,数据必须是iddata对象,该对象包含输入和输出信号值。

对于频域估计,数据可以是以下之一:

  • 记录的频响数据(的朋友(控制系统工具箱)idfrd

  • iddata对象,其属性指定如下。

    • InputData-输入信号的傅里叶变换

    • OutputData-输出信号的傅里叶变换

    • - - - - - -“频率”

估计数据必须统一采样。软件默认将模型的采样时间设置为估计数据的采样时间。

对于多实验数据,所有实验的样本时间和样本间行为必须匹配。

数据的领域决定了可以估计的模型类型。

  • 时域或离散时间频域数据。连续时间和离散时间模型

  • 连续时间频域数据-仅连续时间模型

估计模型的顺序,指定为非负整数或包含正整数范围的向量。

  • 如果您已经知道您希望您的估计模型具有什么顺序,请指定nx作为一个标量。

  • 如果您想要比较一系列潜在订单,以为您的估计模型选择最有效的订单,请为指定该范围nxn4sid创建一个汉克尔奇异值图,显示系统中每个状态的相对能量贡献。汉克尔奇异值相对较小的状态对模型的精度贡献不大,可以丢弃,影响不大。所保留的最高状态的索引是模型顺序。图窗口包含使用顺序的建议。您可以接受这个建议,也可以输入一个不同的订单。示例请参见确定最优估计模型顺序

    如果不指定nx,或者指定nx作为最好的,软件自动选择nx从射程1:10

  • 如果您正在标识一个静态系统,请设置nx0

评估选项,指定为n4sidOptions选项设置。指定的选项选择包括:

  • 估计目标

  • 初始条件的处理

  • 子空间算法相关的选择

有关如何指定选项的示例,请参见指定估算选项而且连续时间规范形式模型

名称-值对实参

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

例子:sys = n4sid(data,nx,'Form','modal')

估计模型的采样时间,指定为逗号分隔的对,由“t”,要么0或者一个正的标量。

  • 对于连续时间模型,指定“t”作为0.在频域,使用连续时间频域数据得到连续时间模型。

  • 对于离散时间模型,软件设置“t”以采样时间为单位的数据存储在TimeUnit财产。

每个输入通道的输入延迟,指定为逗号分隔的对,由“InputDelay”一个数字向量。

  • 对于连续时间模型,指定“InputDelay”存储在TimeUnit财产。

  • 对于离散时间模型,指定“InputDelay”是采样时间的整数倍Ts.例如,设置“InputDelay”3.指定三个采样周期的延迟。

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

若要对所有通道应用相同的延迟,请指定“InputDelay”作为一个标量。

的标准形式的类型sys,指定为逗号分隔的对,由“形式”和以下值之一:

  • “免费”-处理矩阵的所有元素一个BCD,K是免费的。

  • “模态”——获得sys用模态形式。

  • “同伴”——获得sys以伴侣的形式。

  • “规范”——获得sys在可观察性标准形式中。

有关规范形式的定义,请参见规范状态空间实现

有关使用这些表单进行身份验证的更多信息,请参见用规范参数化估计状态空间模型

示例请参见修改形式、馈通和扰动模型矩阵

从输入到输出的直接馈通,指定为逗号分隔的对,由“引线”一个长度的逻辑向量Nu,在那里Nu是输入的数量。如果你指定“引线”作为逻辑标量,该值应用于所有输入。对于静态系统,软件总是假设“引线”1

示例请参见修改形式、馈通和扰动模型矩阵

选项估计K矩阵中的时域噪声成分参数,该参数指定为逗号分隔的对,由“DisturbanceModel”和以下值之一:

  • “估计”-估计噪音成分。的K矩阵被视为一个自由参数。对于时域数据,“估计”是默认值。

  • “没有”-不要估计噪音成分。的元素K矩阵都固定在0。对于频域数据,“没有”是默认值,也是唯一可接受的值。

示例请参见修改形式、馈通和扰动模型矩阵

输出参数

全部折叠

已标识的状态空间模型,返回为中的难点模型。该模型是使用指定的模型顺序、延迟和估计选项创建的。

关于所使用的估计结果和选项的信息存储在报告模型的属性。报告具有以下字段。

报告字段 描述
状态

模型状态的摘要,它表明模型是通过构建创建的还是通过估计获得的。

方法

使用的估计命令。

InitialState

在估计期间如何处理初始状态,作为以下值之一返回:

  • “零”—初始状态设置为零。

  • “估计”—初始状态被视为一个独立的估计参数。

这个字段在“InitialState”选项中的值为“汽车”

N4Weight

N4SID算法用于奇值分解的加权方案,返回为以下值之一:

  • “MOESP”—采用MOESP算法。

  • “脑血管意外”-使用规范变量算法。

  • “SSARX”-一种子空间识别方法,使用基于ARX估计的算法计算权重。

此选项在N4Weight选项中的值为“汽车”

N4Horizon

N4SID算法使用的正向和反向预测视域,作为具有三个元素的行向量返回[r sy su],在那里r为最大正向预测视界,sy是过去输出的数量,和是用于预测的过去输入的数量。

适合

估计的定量评估,作为结构返回。看到损失函数和模型质量度量有关这些质量指标的更多信息。该结构有以下字段:

描述
FitPercent

归一化均方根误差(NRMSE)衡量模型的响应与估计数据的吻合程度,用百分比表示适合= 100 (1-NRMSE)。

LossFcn

估计完成时损失函数的值。

均方误差

均方误差(MSE)衡量模型的响应与估计数据的吻合程度。

消防工程

模型的最终预测误差。

另类投资会议

原始赤池信息准则(AIC)是衡量模型质量的标准。

AICc

小样本量校正AIC。

保险代理人

标准化的另类投资会议。

BIC

贝叶斯信息准则。

参数

模型参数估计值。

OptionsUsed

用于估计的选项集。如果您没有配置任何自定义选项,OptionsUsed是默认选项的集合。看到n4sidOptions更多信息。

RandState

估计开始时随机数流的状态。空的,[],如果在估计过程中不使用随机化。有关更多信息,请参见rng

DataUsed

用于估计的数据的属性,作为具有以下字段的结构返回:

描述
的名字

数据集的名称。

类型

数据类型。

长度

数据样本的数量。

Ts

样品时间。

InterSample

输入样本间行为,作为以下值之一返回:

  • “zoh”-零阶保持器在样本之间保持一个分段恒定的输入信号。

  • “呸”-一阶保持器保持样本之间的分段线性输入信号。

  • “提单”—带宽限制行为指连续时间输入信号在奈奎斯特频率以上的功率为零。

InputOffset

在估计过程中从时域输入数据中删除的偏移量。对于非线性模型,是这样的[]

OutputOffset

在估计过程中从时域输出数据中删除的偏移量。对于非线性模型,是这样的[]

有关使用的更多信息报告,请参阅评估报告

在估计期间计算的初始状态,作为一个数组返回,其中包含与每个实验对应的列向量。

数组也存储在参数模型场报告财产。

参考文献

Ljung, L。系统识别:用户的理论附录4A,第二版,第132-134页。上马鞍河,新泽西州:普伦蒂斯大厅PTR, 1999。

[2]范·奥弗舍P和b·德摩尔。线性系统的子空间辨识:理论、实现与应用。出版:1996年。

[3] verhagen, M。识别MIMO状态空间模型的确定性部分。自动化, 1994年第30卷,第61-74页。

[4]西e州拉里莫尔市识别、过滤和自适应控制中的规范变量分析。第29届IEEE决策与控制会议论文集, 1990, pp. 596-604。

[5]麦凯维,T., H. Akcay, L. Ljung。从频响数据中识别基于子空间的多变量系统IEEE自动控制汇刊, 1996, Vol. 41, pp. 960-979。

R2006a之前介绍过