黑箱与结构化状态空间模型估计

黑盒估计

在这种方法中,您可以指定模型顺序,也可以指定配置状态空间矩阵总体结构的其他模型结构属性。您使用数据和模型顺序作为主要输入参数调用ssest、ssregest或n4sid,并使用名称-值对指定任何其他属性,例如模型采样时间、存在馈通、没有噪声分量等。您不能直接使用A、B、C、D、K和X0矩阵的系数。

结构化估计

在这种方法中,您创建并配置一个idss模型,其中包含所有系统矩阵的初始值。可以使用idss模型的Structure属性指定所有参数约束。例如,可以将系统矩阵的某些系数指定为固定系数,并对其他系数的值施加最小/最大界限。对于参数化的快速配置以及是否估计馈通和扰动动力学,请使用ssform。
使用所需约束配置idss模型后,将此模型指定为ssest命令的输入参数。不能使用n4sid或ssregest进行结构化估计。

提示

结构化估计方法也称为灰箱建模。然而,在此工具箱中,“灰盒建模”术语仅在提及idgrey和idnlgrey模型时使用。
使用结构化估计方法,无法指定状态空间系数之间的关系。每个系数基本上都被视为独立于其他系数。为了施加依赖关系,或使用更复杂的参数化形式,请使用idgrey模型和greyest估计器。

使用ssest、ssregest和n4sid估计状态空间模型

先决条件

将输入输出数据表示为iddata对象,或将频率响应数据表示为frd或idfrd对象。请参见使用iddata对象表示时域和频域数据。有关支持的数据格式,请参见状态空间模型支持的数据。
执行数据预处理。为了在使用时域数据时提高结果的准确性,可以减少数据或指定输入/输出偏移量级别作为估计选项。请参阅为系统识别准备数据的方法。
选择模型订单。当您不知道模型订单时,搜索并选择订单。有关详细信息,请参见命令行中的“使用选定订单估算模型”。

您可以使用迭代估计命令ssest估计连续时间和离散时间状态空间模型,该命令可以最小化预测误差,以获得最大似然值。
使用以下常规语法配置和估计状态空间模型:

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

其中,data是估计数据,n是模型顺序,opt包含用于配置状态空间模型估计的选项。这些选项包括处理初始条件、输入和输出偏移、估计焦点和搜索算法选项。opt后面可以是名称-值对输入参数,这些参数指定可选的模型结构属性,例如feedthrough的存在、模型的规范形式和输入延迟。
作为ssest的替代方法,您可以使用非迭代子空间估值器n4sid或ssregest:

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

除非将采样时间指定为名称-值对输入参数,否则n4sid和ssregest将估计离散时间模型,而ssest将估计连续时间模型。

ssest使用n4sid来初始化状态空间矩阵,估计模型所需的时间比n4sid长,但通常更适合数据。

有关验证模型的信息,请参阅估算后验证模型

A、B、C矩阵结构的选择

默认情况下,A、B和C状态空间矩阵的所有条目都被视为自由参数。使用ssest的Form-name值对输入参数,您可以选择使用较少参数的各种规范形式,如伴生形式和模态形式。
有关估计特定状态空间参数化的详细信息,请参见:

自由参数化状态空间模型的估计

用规范参数化估计状态空间模型

带结构参数化的状态空间模型估计

在连续时间和离散时间表示法之间进行选择

对于状态空间模型的估计,您可以选择在零和估计数据之间切换模型样本时间。您可以使用Ts名称-值对输入参数来实现这一点。
默认情况下,ssest估计连续时间模型。如果使用的数据集具有非零采样时间、数据(包括所有时域数据),也可以使用以下方法估计离散时间模型:

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

如果使用的是连续时间频域数据,则无法估计离散时间模型。
默认情况下,n4sid和ssregest估计的模型的采样时间与数据的采样时间匹配。因此,对于时域数据,n4sid和ssregest提供了离散时间模型。您可以使用以下方法估计连续时间模型:

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

如果使用的是连续时间频域数据,则无法估计离散时间模型。
默认情况下,n4sid和ssregest估计的模型的采样时间与数据的采样时间匹配。因此,对于时域数据,n4sid和ssregest提供了离散时间模型。您可以使用以下方法估计连续时间模型:

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

或者

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

选择估计D、K和X0矩阵

对于具有任何参数化的状态空间模型,可以指定是否估计D、K和X0矩阵,这些矩阵分别表示输入到输出反馈、噪声模型和初始状态。
对于具有结构化参数化的状态空间模型,还可以指定估计D矩阵。然而,对于自由形式和规范形式,D矩阵的结构是根据您对“Feedthrough”名称-值对输入参数的选择来设置的。

D矩阵

默认情况下,不估计D矩阵,其值固定为零,静态模型除外。

黑盒估计:使用Feedthrough名称-值对输入参数表示各个输入是否存在Feedthough。例如,如果是双输入模型,只有第二个输入有馈通,则使用:

model = n4sid(data,n,'Feedthrough',[false true]);

 结构化估计:配置init_sys.Structure的值。D、 其中init_sys是表示所需模型结构的idss模型。要强制第i个输入无馈通,请设置:

init_sys.Structure.D.Value(:,i) = 0;
init_sys.Structure.D.Free = true;
init_sys.Structure.D.Free(:,i) = false;

第一行将第i列D的值指定为零。下一行将D的所有元素指定为自由、可估计的参数。最后一行指定D矩阵的第i列固定用于估计。
或者,将ssform与“Feedthrough”名称值对一起使用。

K矩阵

K表示模型的噪声矩阵,即模型的噪声分量为:
x=Ax+Ke
yn=Cx+e
对于频域数据,不估计噪声模型,K设置为0。对于时域数据,默认情况下,K在黑箱估计设置中估计。yn是扰动对模型输出的贡献。

黑盒估计:使用DisturbanceModel名称-值对输入参数来指示扰动分量是固定为零(指定value='none')还是估计为自由参数(指定value='estimate')。例如,使用:

model = n4sid(data,n,'DisturbanceModel','none');

结构化估计:配置init_sys.Structure的值。K参数,其中init_sys是表示所需模型结构的idss模型。您可以将一些K矩阵系数固定为已知值,并规定自由系数的最小/最大界限。例如,要仅估计双输出模型的K矩阵的第一列:

kpar = init_sys.Structure.K;
kpar.Free(:,1) = true;
kpar.Free(:,2) = false;
kpar.Value(:,2) = 0; % second column value is fixed to zero
init_sys.Structure.K = kpar;

或者,使用ssform。
当不确定如何轻松固定或释放K的所有系数时,最初您可以忽略估算K中的噪声参数,以专注于实现系统动力学的合理模型。估算动态模型后,可以使用ssest优化模型,同时将K参数配置为自由参数。例如:

init_sys = ssest(data, n,'DisturbanceModel','none');
init_sys.Structure.K.Free = true;
sys = ssest(data,init_sys);

其中init_sys是无噪声的动态模型。
要在现有模型中将K设置为零,可以将其“值”设置为0,将“自由”标志设置为false:

m.Structure.K.Value = 0;
m.Structure.K.Free = false;

X0矩阵

初始状态向量X0作为模型估计的副产品获得。n4sid、ssest和ssregest命令返回X0的值作为第二个输出参数。您可以使用InitialState估计选项选择在模型估计期间如何处理初始条件。使用n4sidOptions(用于n4sid)、ssestOptions(对于ssest)或ssregestOptions(针对ssregest)创建估算选项集。例如,为了在使用n4sid进行估计期间保持初始状态为零:

opt = n4sidOptions;
opt.InitialState = 'zero';
[m,X0] = n4sid(data,n,opt);

返回的X0变量是长度为n的零矢量。
当您使用多重实验数据估计模型时,X0矩阵包含的列数与数据实验的列数相同。
有关InitialStates选项值的完整列表,请参阅为迭代估计算法指定初始状态。

相关主题

损失函数和模型质量度量

MATLAB-在命令行估计状态空间模型相关推荐

  1. matlab在命令行注册,在命令行窗口中输入语句

    在命令行窗口中输入语句 当您在 MATLAB® 中工作时,可以在命令行窗口中输入各个语句.例如,通过在命令行中键入以下语句来创建名为 a 的变量: a = 1 MATLAB 会立即将变量 a 添加到工 ...

  2. matlab在命令行注册,命令行运行matlab

    matlab可以不启动图形界面运行,比如 matlab -nodesktop -nosplash 或者 matlab -nodisplay 或者 matlab -nojvm -nosplash mat ...

  3. matlab设置命令行窗口和编辑器上下显示

    问题:在使用matlab的过程中,因为误操作,导致命令行窗口和编辑器的布局排版较乱,且不在同一个页面显示,运行程序时非常的不方便. 解决办法:只需一步,便可恢复到默认的页面布局. 选择菜单栏中的主页- ...

  4. 【MATLAB】命令行窗口乱码问题

    昨天开始重新学习matlab,按着网上教程一直配置,将编码格式改成"UTF-8"(查看编码方式可以用slCharacterEncoding()函数),然后在编辑器上面编写内容果然没 ...

  5. matlab中ss函数_matlab状态空间模型(matlab中如何通过ss函数和tf2ss函数将微分方程转化...)...

    matlab中如何通过ss函数和tf2ss函数将微分方程转化... 例如下面的一道题. 方法一: num=[0 0 10 10]; den=[1 6 6 10]; [A,B,C,D]=tf2ss(nu ...

  6. matlab状态空间模型,Matlab做状态空间辨识2

    转载自了凡春秋USTChttps://chunqiu.blog.ustc.edu.cn/?p=334 命令行辨识状态空间模型 准备工作: 构造iddata对象(输入输出数据对象)或frd.idfrd对 ...

  7. cmd 命令行方式执行 matlab 脚本

    0. matlab 命令行 删除当前输入的行 ctrl + u 或者 esc 1. 命令行执行脚本 首先设置环境变量,将 matlab.exe 添加到环境变量 Path 中,比如我的 matlab 2 ...

  8. 【Matlab】使用Matlab运行Windows命令行命令+实例

    可以使用Matlab的一些命令来帮助程序运行.比如说 ! calc % 打开计算器 ! mspaint % 打开画图 dos calc % 打开计算器 比如一个程序要运行很长时间,而我们又不能一直守在 ...

  9. 命令行参数的作用_Rasa 聊天机器人专栏(二):命令行界面

    作者 | VK 编辑 | 奇予纪 出品 | 磐创AI团队出品 命令行界面: 备忘单 命令行界面(CLI)为你提供易于记忆的常见任务命令. 命令 作用说明 rasa init 使用示例训练数据,操作和配 ...

最新文章

  1. 勒索软件层出不穷,Veeam “3-2-1-1-0”助力构建数据防护
  2. samba服务器详解
  3. a:hover伪类在ios移动端浏览器内点击无效的解决方法
  4. mysql job_MySQL数据传输中dtle 之 job 实现简析-爱可生
  5. 客座招生 | 中科院深圳先进院招收智能机器人方向联培和客座学生
  6. Windows Azure Cloud Service (23) 使用Full IIS模式部署多站点和虚拟目录
  7. Programming MS Office 2000 Web Components第二章第一节(第二部分)
  8. 一篇英文文档中找出频数最多的10个单词
  9. UML建模工具Visio、Rational Rose、PowerDesign,Visual Paradigm for UML
  10. oracle-01122,oracle ORA-01200ORA-01110ORA-01122
  11. python -json文件的使用---
  12. 如何基于Spring Boot搭建一个完整的项目
  13. oracle vm 文件复制,Oracle VM VirtualBox虚拟机怎么实现与主机之间的文件拖动
  14. 计161--Problem H: 求三角形面积-gyy
  15. 医学四视图-007-增加按钮,增加文档提示
  16. css【详解】steps()函数
  17. 毕业设计-基于机器学习的股票预测
  18. RRDTools相关
  19. 另一个jar包引不了_《嫌疑人X的献身》:一个天才的陨落
  20. vscode terminal点击i编辑,esc退出编辑无效

热门文章

  1. P1796 汤姆斯的天堂梦(动态规划)
  2. Linux服务器下Matlab的安装
  3. Linux nc 命令
  4. 2021届工科生求职日记1——Abing
  5. python图片转为64位编码形式
  6. 少儿教育和游戏的火花在哪里?
  7. OpenCV/OpenCL/OpenGL区别
  8. 快速提升销售业绩,您需要懂得这些“潜规则”
  9. 阿里云主机免费申请级网站配置
  10. css宽度为自适应,高度等于宽度