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);