主要内容

pem

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

描述

例子

sys= pem (数据,init_sys)更新一个初始模型的参数init_sys以适应估计数据数据数据可以是一个时间表,逗号分隔两个矩阵,或一个数据对象。

函数使用预测误差最小化算法更新初始模型的参数。使用此命令来完善之前估计的参数模型。

例子

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

例子

全部折叠

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

加载数据和提取第一个300点的估计数据。

负载sdata7tt7;tt7e = tt7(施用:);

估计模型init_sys,设置“焦点”选项“模拟”

选择= n4sidOptions (“焦点”,“模拟”);init_sys = n4sid (tt7e 4选择);

显示估计。

init_sys.Report.Fit.FitPercent
ans = 73.8490

使用pem改善健康的亲密。

sys = pem (tt7e init_sys);

分析结果。

比较(tt7e sys, init_sys);

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

使用pem提高了适合估计数据。

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

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

负载(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与ylabel y1包含3线类型的对象。这些对象代表验证数据(日元),sys: 98.34%, init \ _sys: 79.39%。坐标轴对象2与ylabel y2包含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.25; 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 29.7194 - 260 3.5 98.9 - 2.57 2.57 - 28.6801 - 1 6 0 2 0 3 8.2138 0.704 41.3 8.38196 4.91 42.2 2.72 70.8 1.37 8.00237 0.528 48.3 2.89 2.57 2.01 12 4 9 5 7.65577 0.588 73.1 2.02 4.33 9 6 6.851 - 0.809 196 4.51 - 10.5 5.72335 - 1.08 459 4.59 - 16.5 8 8 41.6 11.4 3.3434 2.11 1.63 e + 03年7 9 1.80724 - 0.701 14.2 - 45.9 504 0 10 12 4.24 1.6812 - 0.122 1.68092 0.014 1.11 0.309 0.0168 6.97 0 11 13 0 12 1.68092 0.00179 0.0215 0.3 0.000101 1.68092 0.000112 0.00634 0.3 8.26 e-07 0 14 e-05 1.36 1.68092 0.000382 0.3 5.01 7.62 e-09 0 15 1.68092 - 1.18 e-06 e-05 4.29 1.68092 - 1.23 0.3 - 7.28 e-11 0 16 e-07 e-06 0.3 7 e-13 0 17日1.68092 - 1.17 e-08 4.56 e-07 0.3 - 2.64 e-14 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -终止条件:没有沿着搜索改进的方向与线搜索. .迭代次数:18、功能评估:115状态:估计使用PEM适合估算数据:70.57%,消防工程:1.7379

检查模型。

sys.Report.Fit.FitPercent
ans = 70.5666

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

输入参数

全部折叠

均匀采样估计数据,指定为一个时间表,逗号分隔矩阵对,或一个数据对象,以下部分描述。对于multiexperiment数据,数据也可以是1 -Ne单元阵列的时间表或矩阵对,Ne是实验的数量。数据对象适应multiexperiment对象中的数据。

时间表

指定数据作为一个时间表定期使用间隔时间向量。tt包含变量代表输入和输出通道。pem输入和输出通道变量来自模型作为输入参数传递。

逗号分隔矩阵对

指定数据作为一个逗号分隔的实值矩阵包含输入和输出的时域信号值。

  • 对于输出系统,指定数据作为一个副N年代1实值矩阵含有均匀采样输入和输出时域信号值。在这里,N年代是样品的数量。

  • 对于MIMO系统,指定u,y作为输入/输出矩阵对以下维度:

    • u- - - - - -N年代——- - - - - -Nu,在那里Nu输入的数量。

    • y- - - - - -N年代——- - - - - -Ny,在那里Ny是输出的数量。

数据对象

指定数据作为iddata,idfrd,或的朋友对象。

如果模型作为输入参数传递的方法是:

  • 参数模型等中的难点,然后数据可以是一个iddata,idfrd,或的朋友模型对象。

  • 频率特性数据模型(一个idfrd,或的朋友模型对象),然后数据也必须一个频率特性的数据模型。

  • 一个iddata对象,然后数据必须是一个iddata与匹配的域对象,实验和时间或频率向量的数量。

关于处理估计数据类型的更多信息,见数据域和数据类型在系统辨识工具箱

识别模型,配置的初始参数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