主要内容

findstates

估计模型的初始状态

描述

例子

x0= findstates (sys数据估计初始状态,x0,一个已确定的模型sys,使模型响应与估计数据中输出信号的拟合最大化。

例子

x0= findstates (sys数据地平线的响应的预测范围sys

例子

x0= findstates (sys数据地平线选项的计算的附加选项x0

例子

x0报告) = findstates (___交付关于初始状态估计的报告。报告返回之前的任何语法。

例子

全部折叠

创建一个非线性灰盒模型。模型是一个线性直流电动机,有一个输入(电压),两个输出(角位置和角速度)。模型的结构由dcmotor_m指定。m文件。

文件名=“dcmotor_m”;Order = [2 1 2];参数= [0.24365;0.24964];nlgr = idnlgrey(FileName,Order,Parameters);NLGR = setinit(NLGR,“固定”假(2,1));%设置初始状态为free

初始状态估计的加载数据。

负载(fullfile (matlabroot“工具箱”“识别”...“iddemos”“数据”“dcmotordata”));Z = iddata(y,u,0.1);

估计初始状态,使模型的响应使用估计状态X0和测量输入u尽可能接近测量输出y。

X0 = findstates(nlgr,z,Inf);

估计一个中的难点对其进行建模和仿真,使估计模型的响应与估计数据的输出信号尽可能接近。

加载样例数据。

负载iddata1z1

根据数据估计一个线性模型。

模型= ssest(z1,2);

估计初始状态的值,以最适合测量输出z1.y

x0est = findstates(model,z1,Inf);

模拟模型。

opt = simOptions(“InitialCondition”, x0);sim(模型、z1([],::),选择);

图使用预测焦点包含坐标轴的sest进行估计。标题为模拟输出#1:y1的轴包含一个类型为line的对象。该对象表示y1。

通过固定模型的第一个状态并允许估计模型的第二个状态,有选择地估计模型的初始状态。

创建一个非线性灰盒模型。

文件名=“dcmotor_m”;Order = [2 1 2];参数= [0.24365;0.24964];nlgr = idnlgrey(FileName,Order,Parameters);

模型是一个线性直流电动机,有一个输入(电压),两个输出(角位置和角速度)。模型的结构由dcmotor_m.m文件。

加载估计数据。

负载(fullfile (matlabroot“工具箱”“识别”...“iddemos”“数据”“dcmotordata”));Z = iddata(y,u,0.1);

将第一个状态固定为零,并估计第二个状态的值。

X0spec = idpar(“x0”, (0, 0));x0spec.Free(1) = false;opt = findstatesOptions;opt.InitialState = x0spec;[X0,Report] = findstates(nlgr,z,Inf,opt)
X0 =2×10 0.0061
报告=状态:'通过模拟误差最小化估计'方法:'lsqnonlin'协方差:[2x2 double] DataUsed: [1x1 struct]终止:[1x1 struct]

创建一个非线性灰盒模型。

文件名=“dcmotor_m”;Order = [2 1 2];参数= [0.24365;0.24964];nlgr = idnlgrey(FileName,Order,Parameters);

模型是一个线性直流电动机,有一个输入(电压),两个输出(角位置和角速度)。模型的结构由dcmotor_m.m文件。

加载估计数据。

负载(fullfile (matlabroot“工具箱”“识别”...“iddemos”“数据”“dcmotordata”));Z = iddata(y,u,0.1);

指定初始状态的初始猜测。

X0spec = idpar(“x0”, (10; 10));

x0spec。免费的默认为true

估计初始状态

opt = findstatesOptions;opt.InitialState = x0spec;x0 = findstates(nlgr,z,Inf,opt)
x0 =2×10.0362 - -0.1322

创建一个非线性灰盒模型。

文件名=“dcmotor_m”;Order = [2 1 2];参数= [0.24365;0.24964];nlgr = idnlgrey(FileName,Order,Parameters);集(nlgr,“InputName”“电压”“OutputName”...角位置的的角速度});

模型是一个线性直流电动机,有一个输入(电压),两个输出(角位置和角速度)。模型的结构由dcmotor_m.m文件。

加载估计数据。

负载(fullfile (matlabroot“工具箱”“识别”...“iddemos”“数据”“dcmotordata”));Z = iddata(y,u,0.1,“名字”直流电机的...“InputName”“电压”“OutputName”...角位置的的角速度});

创建一个三个实验的数据集。

Z3 = merge(z,z,z);

选择实验估计初始状态:

  • 估计实验1和3的初始状态1

  • 估计实验1的初始状态2

固定的初始状态值为零。

X0spec = idpar(“x0”0(2、3));x0spec.Free(1,2) = false;x0spec。免费的(2,[2 3]) = false; opt = findstatesOptions; opt.InitialState = x0spec;

估计初始状态

[X0,EstInfo] = findstates(nlgr,z3,Inf,opt);

输入参数

全部折叠

初始状态被估计的识别模型,表示为线性状态空间(中的难点idgrey)或非线性模型(idnlarxidnlhw,或idnlgrey).

估计数据,指定为iddata对象,其输入/输出维度匹配sys

如果sys是一个线性模型,数据可以是频域吗iddata对象。为便于解释初始条件,设频率向量为数据关于原点对称。要将时域数据转换为频域数据,请使用fft“惠”输入参数,并确保有足够的零填充。在进行比较时,适当调整数据的大小x0在时域和频域之间。Since for anN-点fft,输入/输出信号按比例缩放1 /√(N),估计x0向量也乘以这个因子。

计算响应的预测范围sys,指定为之间的正整数1而且.最常用的值是:

  • 地平线= 1—减小1步预测误差。的超前一步预测响应sys是比较输出信号在数据来确定x0.看到预测更多信息。

  • 地平线=中线—使仿真误差最小化。测量输出之间的差异,Data.y的模拟响应sys对于测量的输入数据,Data.u是最小化。看到sim卡更多信息。

指定地平线等于1和之间的任何正整数,但有以下限制:

场景 地平线

具有时域数据的连续时间模型

1

连续时间频域数据(数据。Ts= 0)

输出误差模型(琐碎噪声分量):

  • 非线性灰盒(idnlgrey

  • Hammerstein-Wiener (idnlhw

  • 带扰动矩阵的线性状态空间,K0

无关紧要的

的任何值地平线返回相同的答案x0

非线性ARX (idnlarx 1

的估计选项findstates,指定为使用findstatesOptions

输出参数

全部折叠

模型初始状态的估计sys,作为向量或矩阵返回。对于多实验数据,x0是一个矩阵,每个实验都有一列。

初始状态估计信息,作为结构返回。报告包含关于所使用的数据、状态协方差和为搜索初始状态而执行的任何数值优化的结果的信息。报告具有以下字段:

报告字段 描述
状态

如何估计初始状态的摘要。

方法

使用的搜索方法。

协方差

状态估计的协方差,返回为Ns——- - - - - -Ns矩阵,Ns是状态数。

DataUsed

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

描述
的名字

数据集的名称。

类型

数据类型。

长度

数据样本的数量。

Ts

样品时间。

InterSample

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

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

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

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

InputOffset

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

OutputOffset

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

终止

用于非线性模型初始状态估计的迭代搜索终止条件。具有以下字段的结构:

描述
WhyStop

终止数值搜索的原因。

迭代

由估计算法执行的搜索迭代次数。

FirstOrderOptimality

-搜索算法终止时梯度搜索向量的范数。

FcnCount

目标函数被调用的次数。

UpdateNorm

最后一次迭代中梯度搜索向量的范数。当搜索方法为时省略“lsqnonlin”“fmincon”

LastImprovement

上次迭代中的标准改进,用百分比表示。当搜索方法为时省略“lsqnonlin”“fmincon”

算法

使用的算法“lsqnonlin”“fmincon”搜索方法。当使用其他搜索方法时省略。

终止对于线性模型为空。

扩展功能

在R2015a中介绍