主要内容

pem

对炼油线性和非线性模型预测误差最小化

描述

例子

sys= pem (数据,init_sys)更新一个初始模型的参数以适应估计数据。函数使用预测误差最小化算法更新初始模型的参数。使用此命令来完善之前估计的参数模型。

例子

sys= pem (数据,init_sys,选择)使用一组选项指定评估选项。

例子

全部折叠

使用子空间方法估计离散时间状态空间模型。然后,改进它通过最小化预测误差。

估计使用离散时间状态空间模型n4sid应用子空间的方法。

负载iddata7z7;z7a = z7(施用);选择= n4sidOptions (“焦点”,“模拟”);init_sys = n4sid (z7a 4选择);

init_sys提供了一个73.85%适合评估数据。

init_sys.Report.Fit.FitPercent
ans = 73.8490

使用pem改善健康的亲密。

sys = pem (z7a init_sys);

分析结果。

比较(z7a sys, init_sys);

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。这些对象代表验证数据(日元),sys: 74.54%, init \ _sys: 73.85%。

sys提供了一个74.54%适合评估数据。

估计的参数非线性灰色矩形模型适合直流电机数据。

加载实验数据,并指定信号的属性,如开始时间和单位。

负载(fullfile (matlabroot“工具箱”,“识别”,“iddemos”,“数据”,“dcmotordata”));data = iddata (y、u, 0.1);数据。Tstart = 0;数据。TimeUnit =“年代”;

配置非线性灰色矩形模型(idnlgrey)模型。

对于这个示例,使用dcmotor_m.m文件。查看这个文件类型编辑dcmotor_m.m在MATLAB®命令提示符。

file_name =“dcmotor_m”;订单= (2 1 2);参数= (1;0.28);initial_states = (0, 0);t = 0;init_sys = idnlgrey (file_name、秩序、参数initial_states Ts);init_sys。TimeUnit =“年代”;setinit (init_sys“固定”,{假假});

init_sys是一个非线性灰色矩形模型所描述其结构dcmotor_m.m。模型有一个输入,两个输出和两个州,是指定的订单

setinit (init_sys“固定”,{假假})指定的初始状态init_sys是免费的估计参数。

估计模型参数和初始状态。

sys = pem(数据、init_sys);

sys是一个idnlgrey模型封装了估计参数及其协方差。

分析评估结果。

比较(数据、sys init_sys);

图包含2轴对象。坐标轴对象1包含3线类型的对象。这些对象代表验证数据(日元),sys: 98.34%, init \ _sys: 79.39%。坐标轴对象2包含3线类型的对象。这些对象代表验证数据(y2) sys: 84.48%, init \ _sys: 49.15%。

sys提供了一个98.34%适合评估数据。

创建一个流程模型结构和更新其预测误差最小化的参数值。

初始化流程模型的系数。

init_sys = idproc (“P2UDZ”);init_sys。Kp = 10;init_sys。太瓦=0.4; init_sys.Zeta = 0.5; init_sys.Td = 0.1; init_sys.Tz = 0.01;

Kp,太瓦,ζ,道明,Tz系数init_sys配置与他们最初的猜测。

使用init_sys配置的评估预测误差最小化模型使用测量数据。因为init_sys是一个idproc模型,使用procestOptions创建选项集。

负载iddata1z1;选择= procestOptions (“显示”,“上”,“SearchMethod”,“lm”);sys = pem (z1、init_sys选择);
流程模型识别评估数据:时域数据z1数据输出,1输入和300个样本。模型类型:{“P2DUZ”}算法:Levenberg-Marquardt搜索< br > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - < br >一阶改进规范(%)< br >迭代步最优成本预期实现二分< br > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 21.2201 - 414 3.8 - 8.55 - 3.8 19.4048 - 1.15 323 814 2 14.8743 - 2.48 6.84305 - 0.873 4.41 - 23.3 0 451 4.43 54 11 4 8.75 5.20355 0.977 1.49 e + 03 24 7 5 64.7 1.83911 0.973 473 13 0 6 0 7 1.67335 0.062 6.57 1.67582 0.225 20.3 4.98 8.88 0.0829 1.67334 0.00494 0.0555 0.000374 0.000648 0.147 0 8 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -终止条件:附近(当地)最小,(标准(g) < tol) . .迭代次数:8、功能评估:42状态:估计使用PEM适合估计数据:70.63%,消防工程:1.73006

检查模型。

sys.Report.Fit.FitPercent
ans = 70.6330

sys提供了一个70.63%适合测量数据。

输入参数

全部折叠

估计数据包含测量输入输出数据,指定为一个iddataidfrd对象。只有当你可以使用频域数据init_sys是一个线性模型。

的输入-输出维度数据init_sys必须匹配。

识别模型,配置的初始参数sys指定为一个线性,或非线性模型。你可以获得init_sys通过执行一个估计使用测量数据或通过直接施工。

init_sys必须有有限的参数值。您可以配置初始猜测,指定最小/最大范围,并修复或免费评估任何参数init_sys:

  • 对于线性模型,使用结构财产。有关更多信息,请参见施加约束模型参数值

  • 对于非线性灰色矩形模型,使用InitialStates参数属性。不能指定参数约束非线性ARX和Hammerstein-Wiener模型。

估计选项设置配置算法,处理评估重点,初始条件,和数据补偿,作为一个选项。指定命令用于创建选项设置依赖于初始模型类型:

输出参数

全部折叠

识别模型,作为相同的模型类型返回init_sys。模型是通过估算的自由参数init_sys利用预测误差最小化算法。

算法

PEM使用数值优化来最小化成本函数预测误差的加权范数,为标量输出定义如下:

V N ( G , H ) = t = 1 N e 2 ( t )

在哪里e (t)之间的区别是测量输出和模型的预测输出。对于一个线性模型,误差被定义为:

e ( t ) = H 1 ( ) ( y ( t ) G ( ) u ( t ) ]

在哪里e (t)是一个向量和成本函数 V N ( G , H ) 是一个标量值。下标N表明,成本函数是一个函数的数据样本的数量和变得更准确更大的值N。以前的输出模型,方程更为复杂。有关更多信息,请参见第7章为用户系统标识:理论第二版,Lennart Ljung,普伦蒂斯霍尔PTR, 1999。

选择功能

你可以实现相同的结果pem通过使用专用的各种模型估计命令结构。例如,使用init_sys ss(数据)估计状态空间模型。

版本历史

之前介绍过的R2006a

Baidu
map