主要内容

软件如何将参数估计表述为优化问题

作为优化问题的参数估计概述

当您执行参数估计时,软件会提出一个优化问题。优化问题的解是估计的参数值集。该优化问题包括:

  • x- - - - - -设计变量.需要估计的模型参数和初始状态。

  • Fx) - - -目标函数.计算模拟响应和测量响应之间的差值的函数。也被称为成本函数或估计误差.

  • (可选)<年代pan class="inlineequation"> x ¯ x x ¯ - - - - - -界限.对估计参数值的限制。

  • (可选)C(x) - - -约束函数.指定对设计变量的限制的函数。

优化求解器调整设计变量的值以满足指定的目标和约束条件。优化的确切公式取决于您使用的优化方法。

成本函数

该软件调整模型参数以获得模拟响应(y<年代ub>sim卡),用以跟踪测量的响应或参考信号(y<年代ub>裁判).要做到这一点,求解器最小化<年代pan class="emphasis">成本函数或<年代pan class="emphasis">估计误差,是对模拟响应与测量响应之间差异的度量。成本函数,F(x),为优化问题的目标函数。

类型

原始估计误差,e(t),定义为:

e t y r e f t y 年代 t

et)也被称为误差残差或者,简单,残差.

万博1manbetx®优化设计™软件为您提供以下成本函数来处理e(t):

成本函数 配方 GUI或命令行中的选项名称
和平方误差(默认)

F x t 0 t N e t × e t

N是样本的数量。

上交所的
和绝对误差

F x t 0 t N | e t |

N是样本的数量。

SAE的
生错误

F x e 0 e N

N是样本的数量。

“残差”

此选项仅在命令行中可用。

自定义函数 N/A

此选项仅在命令行中可用。

时基

该软件评估特定时间间隔的成本函数。这个区间依赖于测量信号时基和模拟信号时基.

  • 被测信号时基由被测信号指定的所有时间点组成。当有多个被测信号时,这个时基是所有被测信号的时间点的并集。

  • 被模拟信号时基由模型被模拟的所有时间点组成。

如果模型使用变步长求解器,那么模拟的信号时基可以从一个优化迭代改变到另一个优化迭代。模拟和测量信号时基可以不同。该软件只计算两者共同的时间间隔的代价函数。默认情况下,软件只使用公共时间间隔内被测信号指定的时间点。

  • 在图形界面中,您可以在<年代trong class="guilabel">仿真时间区域的<年代trong class="guilabel">模拟选项对话框。

  • 在命令行中,软件指定模拟停止时间作为测量信号时基的最后一点。例如,下面的代码模拟模型,直到最长运行输出信号的结束时间经验值,一个sdo。实验对象:

    sim_obj = createSimulator (exp);sim_obj = sim (sim_obj);

    sim_obj包含与关联的模型的模拟响应经验值

边界和约束

您可以根据您对系统的了解,指定设计变量(估计的模型参数)的边界。边界表示为:

x ¯ x x ¯

x ¯ 而且<年代pan class="inlineequation"> x ¯ 是设计变量的上下限。

例如,在电池放电实验中,估计的电池初始电荷必须大于零,小于.这些边界表示为:

0 < x <

有关如何指定这些类型的边界的示例,请参见估计模型参数和初始状态(代码)

您还可以指定其他约束,C(x),对命令行上的设计变量。C(x)可以是线性的或非线性的,可以描述等式或不等式。C(x)也可以指定多参数约束。例如,对于一个简单的摩擦模型,C(x)可以指定静摩擦系数必须大于或等于动摩擦系数。表达这个约束的一种方法是:

C x x 1 x 2 C x 0

x1而且x2分别为动、静摩擦系数。

有关如何指定约束的示例,请参见有参数约束的模型参数估计(编码)

优化方法和问题公式

优化问题可以是以下类型之一:

  • 最小化问题-最小化目标函数,F(x).您指定希望模型输出跟踪的测量信号。您可以选择为估计的参数指定边界。

  • 混合最小化和可行性问题-最小化目标函数,F(x),受指定界限及限制,C(x).您指定希望模型跟踪的测量信号以及估计参数的边界和约束条件。

  • 可行性问题——找到一个满足指定约束条件的解决方案,C(x).您只需为估计的参数指定边界和约束。这类问题在参数估计中并不常见。

您指定的优化方法决定了估计问题的公式。软件提供以下优化方法:

优化方法的名字 描述 优化问题制定
  • 用户界面:<年代trong class="guilabel">非线性最小二乘

  • 命令行:“lsqnonlin”

最小化残差的平方,推荐的参数估计方法。

这种方法需要一个误差残差矢量,使用固定的时间基数计算。如果您有一个标量代价函数,或者错误残差的数量可以从一个迭代到另一个迭代改变,那么不要使用这种方法。

此方法使用优化工具箱™函数,lsqnonlin

最小化问题

混合最小化和可行性问题

可行性问题

  • 用户界面:<年代trong class="guilabel">梯度下降法

  • 命令行:“fmincon”

一般的非线性求解器,采用代价函数梯度。

如果您想指定以下一个或任意组合,请使用此方法:

  • 定制的成本函数

  • 基于参数约束

  • ieee约束

该方法使用优化工具箱功能,fmincon

有关如何计算梯度的信息,请参见梯度计算

最小化问题

混合最小化和可行性问题

可行性问题

  • 用户界面:<年代trong class="guilabel">单纯形搜索

  • 命令行:“fminsearch”

该方法基于Nelder-Mead算法,不使用成本函数梯度。

如果你的成本函数或约束条件不是连续或可微的,可以使用这种方法。

此方法使用优化工具箱函数,fminsearch而且fminbndfminbnd如果正在优化一个标量参数,则使用。否则,fminsearch使用。不能指定参数边界,<年代pan class="inlineequation"> x ¯ x x ¯ ,fminsearch

最小化问题

混合最小化和可行性问题

可行性问题

  • 用户界面:<年代trong class="guilabel">模式搜索

  • 命令行:“patternsearch”

直接搜索法,基于广义模式搜索算法,该方法不使用代价函数梯度。

如果你的成本函数或约束条件不是连续或可微的,可以使用这种方法。

此方法使用<年代pan class="entity">全局优化工具箱函数,patternsearch(全局优化工具箱)

最小化问题

混合最小化和可行性问题

可行性问题

另请参阅

|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">(全局优化工具箱)

相关的例子

更多关于