matlab状态空间模型,Matlab做状态空间辨识2 - 百度文库 (baidu.com)

分类:

黑箱辨识:

指定模型阶次,选择性的对一些模型矩阵结构属性进行配置。可以使用ssest或n4sid函数以数据和模型阶次作为主要函数参数来进行辨识。不能直接配置各系统矩阵的元素。

结构化辨识:

首先创建一个包含系统矩阵初始值的idss模型结构,在此结构中,使用structure属性来指定参数约束。如指定系统矩阵某个元素固定或设定范围。详细配置可以参考ssform函数说明。

配置好约束之后可以用idss模型作为ssest的输入进行辨识。注意n4sid不能结构化辨识。

更复杂的灰箱辨识可以使用idgrey和idnlgrey模型实现;结构化辨识中不能指定系统矩阵中各元素之间的关系,即各元素之间是独立的,对于元素之间有依赖性的结构化辨识属于复杂灰箱辨识,可尝试使用grayest估计器。

命令行辨识的实现

使用ssest函数辨识

m = ssest(data,n,opt,Name,Value)

%data为估计的数据,
%n为系统阶次,
%opt包含了状态空间估计的配置参数,包括初始条件、输入偏移、估计中心、搜索方法等。
%其详细配置间ssest函数

使用n4sid辨识

m = n4sid(data,n,opt,Name,Value)

除非指定采样时间,ssest默认辨识连续时间模型;n4sid辨识离散模型。

默认情况下ssest估计连续时间模型。如果使用非零采样周期的数据,可以使用如下命令估计离散模型

model = ssest(data,nx,'Ts',data.Ts);

如果使用的是连续时间频域数据,则不能辨识离散模型。

默认地,n4sid以数据的采样周期辨识离散时间模型,如果想辨识连续时间模型,可用如下命令

model = n4sid(data,nx,'Ts',0);

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐