主要内容

nlgreyestOptions

选项集nlgreyest

描述

例子

选择= nlgreyestOptions的默认选项集nlgreyest。如果需要,使用点符号自定义选项集。

例子

选择= nlgreyestOptions (名称,值使用一个或多个指定的选项创建一个选项集名称,值对参数。未指定的选项保留其默认值。

例子

全部折叠

opt = nlgreyestOptions;

为创建评估选项集nlgreyest查看评估进度,并将最大迭代步骤设置为50。

opt = nlgreyestOptions;opt.Display =“上”;opt.SearchOptions.MaxIterations = 50;

加载数据。

负载(fullfile (matlabroot“工具箱”“识别”“iddemos”“数据”“dcmotordata”));Z = iddata(y,u,0.1,“名字”直流电机的);

数据来自具有一个输入(电压)和两个输出(角位置和角速度)的直流电动机。模型的结构由dcmotor_m.m文件。

创建一个非线性灰盒模型。

file_name =“dcmotor_m”;Order = [2 1 2];参数= [1;0.28];InitialStates = [0;0];init_sys = idnlgrey(file_name,Order,Parameters,InitialStates,0,)“名字”直流电机的);

使用估计选项估计模型参数。

Sys = nlgreyest(z,init_sys,opt);

为创建一个选项集nlgreyest地点:

  • 不生成参数协方差数据。

  • 采用子空间高斯-牛顿最小二乘法进行估计。

opt = nlgreyestOptions(“EstimateCovariance”假的,“SearchMethod”“gn”);

输入参数

全部折叠

名称-值参数

指定可选的逗号分隔对名称,值参数。名字是参数名和吗价值是对应的值。名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数,如Name1, Value1,…,的家

例子:nlgreyestOptions(“显示”,“上”)

计算雅可比矩阵和梯度的选项,指定为由“GradientOptions”还有一个带有字段的结构:

字段名 描述 默认的
MaxDifference

计算数值导数时允许的最大参数摄动。指定为正实数>“MinDifference”

MinDifference

计算数值导数时最小允许参数扰动。指定为正实数<“MaxDifference”

0.01 * 12 (eps)
DifferenceScheme

计算参数和/或初始状态组成雅可比矩阵的数值导数的方法。指定为下列之一:

  • “汽车”—自动选择以下方式。

  • “中央近似”

  • “向前逼近”

  • “向后近似”

“汽车”
类型

计算参数的导数(雅可比矩阵)或待估计初始状态时使用的方法。指定为下列之一:

  • “汽车”—自动选择以下方式。

  • “基本”-单独计算构成雅可比矩阵每一列所需的所有数值导数。

  • “精”-同时计算形成雅可比矩阵每一列所需的所有数值导数。

“汽车”

中的字段值GradientOptions,创建默认值nlgreyestOptions使用点表示法设置和修改字段。任何未修改的字段保留其默认值。

opt = nlgreyestOptions;opt.GradientOptions.Type =“基本”;

控制是否生成参数协方差数据,指定为真正的1)或0).

估算进度显示设置,指定为由逗号分隔的对组成“显示”以及以下其中之一:

  • “关闭”—不显示进度和结果信息。

  • “上”—在进度查看器窗口中显示模型结构和估计结果的信息。

正则化模型参数估计的选项,指定为由逗号分隔的对“正规化”还有一个带有字段的结构:

字段名 描述 默认的
λ 偏差与方差的权衡常数,指定为非负标量。 0—表示不进行正则化。
R 加权矩阵,指定为非负标量的向量或方正半定矩阵。长度必须等于模型中自由参数的个数,np。使用nparams命令,以确定模型参数的数量。 1-取值为眼睛(np)
名义上的

在估计期间自由参数被拉向的标称值,指定为下列之一:

  • “零”—将参数拉向零。

  • “模型”-将参数拉向初始模型中已存在的值。

“零”

中的字段值正则化,创建默认值nlgreyestOptions使用点表示法设置和修改字段。任何未修改的字段保留其默认值。

opt = nlgreyestOptions;opt. regular . lambda = 1.2;opt.Regularization.R = 0.5*eye(np);

正则化是一种指定模型灵活性约束的技术,它减少了估计参数值的不确定性。有关更多信息,请参见模型参数的正则估计

数值搜索法用于迭代参数估计,指定为由逗号分隔的对组成“SearchMethod”以及以下其中之一:

  • “汽车”-如果优化工具箱™可用,“lsqnonlin”使用。否则,结合线搜索算法,“gn”“lm”“玲娜”,“研究生”方法在每次迭代中按顺序进行尝试。采用降低估计成本的第一个下降方向。

  • “gn”-子空间高斯-牛顿最小二乘搜索。雅可比矩阵的奇异值小于GnPinvConstant * eps *马克斯(大小(J)) *规范(J)在计算搜索方向时丢弃。J是雅可比矩阵。Hessian矩阵近似为JTJ。如果在这个方向上没有改进,则函数尝试梯度方向。

  • “玲娜”-自适应子空间高斯-牛顿搜索。特征值小于γ*马克斯(sv)的黑森人被忽略,其中sv是黑森的奇异值。在剩余的子空间中计算高斯-牛顿方向。γ具有初始值InitialGnaTolerance(见先进的“SearchOptions”获取更多信息)。该值随因子增加LMStep每次搜索在少于五个等分的范围内找不到较低的准则值。该值随因子而减小2 * LMStep每次搜索成功,没有任何分割。

  • “lm”—Levenberg-Marquardt最小二乘搜索,其中下一个参数值为-pinv (H + d *我)*毕业生从上一个。H是黑森人,是单位矩阵,然后研究生是梯度。d是一个增加的数字,直到找到较低的标准值为止。

  • “研究生”-最陡下降最小二乘搜索。

  • “lsqnonlin”-信任区域反射算法lsqnonlin(优化工具箱)。需要优化工具箱软件。

  • “fmincon”-约束非线性求解器。的顺序二次规划(SQP)和信任区域反射算法fmincon解算器。的内部点和活动集算法fmincon(优化工具箱)解算器。中指定算法SearchOptions。算法选择。的fmincon在以下场景下,算法可能会改善估计结果:

    • 模型参数有边界时的约束最小化问题。

    • 其中损失函数是参数的非线性或非光滑函数的模型结构。

    • 多输出模型估计。行列式损失函数在MIMO模型估计中默认是最小的。fmincon算法能够直接最小化这种损失函数。其他可用的搜索方法,如“lm”“gn”通过交替估计噪声方差和减少给定噪声方差值的损失值来最小化行列式损失函数。因此,fmincon算法对多输出模型的估计具有较高的效率和精度。

搜索算法的选项集,指定为由“SearchOptions”和一个搜索选项集,其中的字段依赖于的值SearchMethod

SearchOptions结构时SearchMethod指定为“lsqnonlin”“汽车”,当优化工具箱是可用的

字段名 描述 默认的
FunctionTolerance

损失函数上的终止容差,软件将其最小化以确定估计的参数值,指定为正标量。

的价值FunctionTolerance和…一样吗opt.SearchOptions.Advanced.TolFun

1 e-5
StepTolerance

估计参数值的终止容差,指定为正标量。

的价值StepTolerance和…一样吗opt.SearchOptions.Advanced.TolX

1 e-6
MaxIterations

损失函数最小化过程中的最大迭代次数,指定为正整数。迭代停止于MaxIterations达到或满足另一个停止标准,例如FunctionTolerance

的价值MaxIterations和…一样吗opt.SearchOptions.Advanced.MaxIter

20.
先进的

高级搜索设置,指定为的选项集lsqnonlin

有关详细信息,请参阅中的优化选项表优化选项(优化工具箱)

使用optimset(“lsqnonlin”)创建默认选项集。

SearchOptions结构时SearchMethod指定为“gn”“玲娜”“lm”“研究生”,或“汽车”,当优化工具箱不可用

字段名 描述 默认的
宽容

损失函数的当前值与下一次迭代后预期改进之间的最小百分比差,用正标量表示。当期望改进的百分比小于宽容,迭代停止。下一次迭代时预期损失函数改进的估计是基于对当前参数值计算的高斯-牛顿向量。

1 e-5
MaxIterations

损失函数最小化过程中的最大迭代次数,指定为正整数。迭代停止于MaxIterations达到或满足另一个停止标准,例如宽容

设置MaxIterations = 0返回启动过程的结果。

使用sys.Report.Termination.Iterations要获得估算期间的实际迭代次数,其中sys是一个idtf模型。

20.
先进的

高级搜索设置,指定为具有以下字段的结构:

字段名 描述 默认的
GnPinvConstant

雅可比矩阵奇异值阈值,指定为正标量。雅可比矩阵的奇异值小于GnPinvConstant *马克斯(大小(J) *规范(J) * eps)在计算搜索方向时丢弃。适用时SearchMethod“gn”

10000
InitialGnaTolerance

的初始值γ,指定为正标量。适用时SearchMethod“玲娜”

0.0001
LMStartValue

搜索方向长度的起始值d在Levenberg-Marquardt方法中,指定为正标量。适用时SearchMethod“lm”

0.001
LMStep

Levenberg-Marquardt步长,指定为正整数。搜索方向长度的下一个值d在Levenberg-Marquardt方法中是LMStep乘以前一个。适用时SearchMethod“lm”

2
MaxBisections

沿搜索方向进行线搜索所使用的最大等分数,指定为正整数。

25
MaxFunctionEvaluations

对模型文件的最大调用次数,指定为正整数。如果对模型文件的调用次数超过这个值,迭代就会停止。

MinParameterChange

每次迭代允许的最小参数更新,指定为非负标量。

0
RelativeImprovement

相对改进阈值,指定为非负标量。如果标准函数的相对改进小于这个值,迭代就会停止。

0
StepReduction

步骤缩减因子,指定为大于1的正标量。建议的参数更新按因子减少StepReduction每次尝试之后。这种减少一直持续到任何一个MaxBisections完成尝试或获得较低的准则函数值。

StepReduction不适用于SearchMethod“lm”(Levenberg-Marquardt方法)。

2

SearchOptions结构时SearchMethod指定为“fmincon”

字段名 描述 默认的
算法

fmincon优化算法,指定为以下之一:

  • “sqp”—顺序二次规划算法。该算法在所有迭代中都满足边界,并且可以从结果。它不是一个大规模的算法。有关更多信息,请参见大规模vs.中等规模算法(优化工具箱)

  • “trust-region-reflective”—基于内反射牛顿法的子空间信任域方法。这是一个大规模的算法。

  • “内点”-大规模算法,需要优化工具箱软件。该算法在所有迭代中都满足边界,并且可以从结果。

  • “激活集”-需要优化工具箱软件。该算法可以采取大的步骤,这增加了速度。它不是一个大规模的算法。

有关算法的更多信息,请参见约束非线性优化算法(优化工具箱)选择算法(优化工具箱)

“sqp”
FunctionTolerance

损失函数上的终止容差,软件将其最小化以确定估计的参数值,指定为正标量。

1 e-6
StepTolerance

估计参数值的终止容差,指定为正标量。

1 e-6
MaxIterations

损失函数最小化过程中的最大迭代次数,指定为正整数。迭代停止于MaxIterations达到或满足另一个停止标准,例如FunctionTolerance

One hundred.

中的字段值SearchOptions,创建默认值nlgreyestOptions使用点表示法设置和修改字段。任何未修改的字段保留其默认值。

opt = nlgreyestOptions(“SearchMethod”“玲娜”);opt.SearchOptions.MaxIterations = 50;opt. searchoptions . advanced . improvement = 0.5;

多输出模型估计中预测误差的加权,指定为由逗号分隔的对组成“OutputWeight”以及以下其中之一:

  • []—不使用加权。指定为[]等于眼睛(纽约),在那里纽约是输出的个数。

  • “噪音”—最优权重自动计算为估计噪声方差的倒数。这个权重最小化依据(E”* E / N),在那里E预测误差矩阵是和N为数据样本的个数。此选项在使用时不可用“lsqnonlin”作为一个“SearchMethod”

  • 一个正半定矩阵,W,其大小等于输出的数量。这个权重最小化跟踪(E”* E * W / N),在那里E预测误差矩阵是和N为数据样本的个数。

其他高级选项,指定为由“高级”和一个带场的结构:

字段名 描述 默认的
ErrorThreshold 何时将大误差的权重从二次型调整为线性型的阈值,指定为非负标量。错误大于ErrorThreshold乘以估计的标准差在损失函数中有一个线性权值。标准偏差稳健估计为绝对偏差与预测误差中位数的中位数除以0.7。如果估计数据包含异常值,请尝试设置ErrorThreshold1.6 0-导致纯二次损失函数。

中的字段值先进的,创建默认值nlgreyestOptions使用点表示法设置和修改字段。任何未修改的字段保留其默认值。

opt = nlgreyestOptions;opt.Advanced.ErrorThreshold = 1.2;

输出参数

全部折叠

选项集nlgreyest,作为一个nlgreyestOptions选项设置。

兼容性的考虑

全部展开

另请参阅

在R2015a中引入