主要内容

从测量数据估计参数

关于本教程

目标

本教程展示了如何估计参数对于单变量模型的输出金宝app<年代up>®模型从测量输入和输出(I / O)的数据。

请注意

金宝app仿真软件优化设计™软件估计参数的时域数据。

您可以执行以下任务使用<年代trong class="app">参数估计量:

  • 加载保存会话包含的数据

  • 估计模型参数使用默认设置

  • 验证模型,细化评估结果

对该模型

本教程使用的spe_engine_throttle1金宝app仿真软件模型,它代表了发动机节气门系统。

节气门系统控制空气和燃料的混合物的流引擎汽缸。打开节流阀的身体包含一个蝶阀,当一个司机按下油门踏板。打开阀门燃料混合气进入气缸的数量增加,这就增加了发动机转速。直流电机控制蝶阀的开度角在节气门系统。这些组件中描述的模型<一个href="//www.tatmou.com/au/au/help/sldo/gs/estimate-parameters-from-measured-data-using-the-gui.html" class="intrnllnk">汽车子系统和<一个href="//www.tatmou.com/au/au/help/sldo/gs/estimate-parameters-from-measured-data-using-the-gui.html" class="intrnllnk">节流子系统。

节流系统电机的输入电流(安培),和输出的角位置蝶阀(度)。

汽车子系统。电动机子系统包含直流电机模型。打开模型中,双击相应的块。

组件的电动机子系统 描述
变量

U是电机的输入电流。

T由电机转矩应用。

参数

Kt电动机的转矩增加,由Kt在模型中。

td电动机的输入时间延迟,由input_delay在模型中。

方程

电机的转矩应用中描述以下方程:

T ( t ) = K t U ( t t d )

在哪里t是时间。

输入 U
输出 T

节流子系统。节气门子系统包含蝶阀模型。打开模型,右键单击相应的块,并选择<年代trong class="guimenuitem">面具><年代trong class="guimenuitem">看下面具。

很难停止块模型阀15°- 90°角位置限制。

下表描述了变量、参数、状态,微分方程,输入和输出的。

组件的节气门子系统 描述
变量

T由直流电机转矩应用。

θ阀门的角位置,由x在模型中。

T<年代ub>hardstop的转矩应用很难停止。

参数

J阀门是惯性。

c是阀门粘滞摩擦。

k阀门弹簧常数。

θ 角位置。

θ ˙ 是角速度。

方程

蝶阀的数学系统中描述以下方程:

J θ ¨ + c θ ˙ + k θ = T + T h 一个 r d 年代 t o p

在哪里<年代p一个n class="inlineequation"> 15 θ 90年 ,初始条件<年代p一个n class="inlineequation"> θ 0 = 15 ,<年代p一个n class="inlineequation"> θ ˙ 0 = 0

所应用的转矩很难停止块中描述以下方程:

T h 一个 r d 年代 t o p = { 0 , K ( 90年 θ ) , K ( 15 θ ) , 15 θ 90年 θ > 90年 θ < 15 }

在哪里K获得的吗很难停止块。

输入 T
输出 θ

估计模型参数估计使用默认设置

评估过程的概述

金宝app仿真软件优化设计软件使用优化技术来估计模型参数。在每个优化迭代,它模拟了模型与当前参数值。计算和模拟和测量输出之间的误差最小化。估计完成优化方法找到一个局部最小值。

启动估计过程,首先打开发动机节气门系统通过输入下面的MATLAB仿真软件模型金宝app<年代up>®提示:

spe_engine_throttle1

在仿真软件将来金宝app发布,<年代trong class="guilabel">应用程序选项卡,在<年代trong class="guilabel">控制系统中,选择<年代trong class="guilabel">参数估计量。

该操作将会打开一个新的会话名称<年代trong class="guilabel">参数估计——spe_engine_throttle1在<年代trong class="app">参数估计量。

请注意

执行参数金宝app估计的仿真软件模型必须保持开放的任务。

指定的评估数据和参数

  1. 负载或导入评估数据。

    1. 如果你准备数据和保存会话中描述<一个href="//www.tatmou.com/au/au/help/sldo/gs/prepare-data-for-parameter-estimation-using-the-gui.html" class="a">准备数据进行参数估计、加载预配置会话。在<年代trong class="guilabel">参数估计选项卡上,单击公开会议下拉列表中。

      选择正确的选项,浏览到的位置保存会话,例如,打开的文件。然后选择MAT-file。

    2. 如果你没有以前保存的会话中,创建一个新的实验。在<年代trong class="guilabel">参数估计选项卡上,单击<年代trong class="guibutton">新实验。在<年代trong class="guilabel">实验在左窗格中。您可以通过右击并选择rename<年代trong class="guilabel">重命名从列表中。例如,调用它NewData1

      导入数据到实验中,右键单击并选择<年代trong class="guimenuitem">编辑……实验启动编辑器。导入对话框中的输入输出数据的<年代trong class="guilabel">输出面板中,例如[time1, position1]。导入对话框中的输入数据通过输入<年代trong class="guilabel">输入面板中,例如[time1, input1]

  2. 指定参数估计。在<年代trong class="guilabel">参数估计选项卡上,单击<年代trong class="guibutton">选择参数按钮打开<年代trong class="guilabel">编辑:估计参数对话框。在<年代trong class="guilabel">所有的实验参数调整面板中,单击<年代trong class="guibutton">选择参数按钮来启动<年代trong class="guilabel">选择模型的变量对话框。

    选择的参数J,c,input_delay,k,然后单击<年代trong class="guibutton">好吧。

    请注意

    在您的应用程序,如果你想要的模型参数估计没有列出选择模型中的变量对话框,首先指定这些参数作为变量。看到的,<一个href="//www.tatmou.com/au/au/help/sldo/ug/specify-parameters-to-estimate-gui.html" class="a">添加模型参数估计的变量。

    的<年代trong class="guilabel">编辑:估计参数现在看起来如下所示的窗口。

    应用程序选择默认你添加的参数估计。当评估大量的参数,你可以先选择一个子集的参数估计。

    你也可以首先使用<一个href="//www.tatmou.com/au/au/help/sldo/sensitivity-analysis.html" class="a">敏感性分析确定影响最大的参数估计,然后指定这些参数估计。打开<年代trong class="app">灵敏度分析仪,在<年代trong class="guilabel">参数估计选项卡上,单击<年代p一个n class="guiicon">敏感性分析。在<年代trong class="app">灵敏度分析仪,您可以确定影响最大的模型参数的估计问题,计算初始值估计参数。

  3. 为评估指定一个实验。在<年代trong class="guilabel">参数估计选项卡上,单击<年代trong class="guibutton">选择实验,并选择下的盒子<年代trong class="guilabel">估计列。点击<年代trong class="guibutton">好吧。

  4. 添加情节进展,点击<年代trong class="guibutton">添加图在<年代trong class="guilabel">参数估计选项卡。在这里你可以选择<年代trong class="guilabel">参数轨迹和<年代trong class="guilabel">估计成本迭代的阴谋。你也可以选择一个实验的测量和模拟数据NewData1

  5. 估计的参数使用默认设置。在<年代trong class="guilabel">参数估计选项卡上,单击<年代trong class="guibutton">估计打开<年代trong class="guilabel">参数轨迹情节和<年代trong class="guilabel">评估进展报告窗口和估计参数。的<年代trong class="guibutton">参数轨迹图显示了在每个迭代参数值的变化。

    的<年代trong class="guilabel">评估进展报告显示了迭代次数,次数计算目标函数,成本函数的值在每个迭代。估计收敛后,<年代trong class="guilabel">评估进展报告看起来这个数字。

    估计的参数保存在<年代trong class="app">参数估计量,在<年代trong class="guilabel">结果部分的<年代trong class="guilabel">数据浏览器窗格中,EstimatedParams。右键单击EstimatedParams,并选择<年代trong class="guilabel">打开……查看结果。

  6. 检查估计成本函数图。成本函数模拟和测量输出之间的误差。在评估期间,默认的优化方法非线性最小二乘,<一个href="//www.tatmou.com/au/au/help/optim/ug/lsqnonlin.html">lsqnonlin,最小化代价函数通过改变参数值。下图显示了迭代期间预期成本的变化。

  7. 检查看看模拟响应图,模拟输出匹配的测量输出。实验图显示,输出模拟使用估计的参数接近测量输出。

提高评估结果使用参数范围

提高估计的精度可以通过指定参数值范围。这种技术限制的区域优化方法搜索一个局部最小值。

发动机节气门系统有这些特征:

  • 所有的参数值是积极的。

  • 的最大延时系统,为代表input_delay是0.1秒。

因此,为所有参数指定0作为最小值,和0.1的最大价值input_delay。在<年代trong class="app">参数估计量,单击<年代trong class="guibutton">选择参数按钮来指定参数值范围。对于每个参数,单击右箭头切换显示最小值,最大值,和规模。通过替换指定每个参数的最小值0在<年代trong class="guilabel">最低字段。指定的最大值input_delay通过替换+正0.1在相应的<年代trong class="guilabel">最大字段。

估计的参数后,实验分析结果用情节和情节的预期成本。

数据模拟同意使用估计参数值与测量数据比当没有指定的参数限制。

验证估计模型参数

估计模型参数后,验证模型使用另一个数据集<年代p一个n class="emphasis">(验证数据)。模拟响应之间的良好匹配,验证数据表明你没有overfitted模型。

验证参数估计使用验证数据集:

  1. 创建一个新的用于验证实验。它的名字ValidationData。导入验证I / O数据,input2position2,和时间向量,time2ValidationData实验。要做到这一点,<年代trong class="app">参数估计量在实验面板中,右键单击ValidationData并选择<年代trong class="guilabel">编辑……打开编辑器实验。然后,类型[time2, position2]在输出对话框[time2, input2]在输入对话框。有关更多信息,请参见<一个href="//www.tatmou.com/au/au/help/sldo/ug/import-data-gui.html" class="a">导入数据进行参数估计。

  2. 选择实验进行验证。在<年代trong class="guilabel">参数估计选项卡上,单击<年代trong class="guibutton">选择实验。默认情况下,ValidationData选择实验评估。取消选中对应的复选框ValidationData为验证评估并选择复选框。

  3. 选择要使用的结果。在<年代trong class="guilabel">验证选项卡上,单击<年代trong class="guibutton">选择结果来验证。

    取消选择使用当前参数值并选择EstimatedParams,然后单击<年代trong class="guibutton">好吧。

  4. 为测量和模拟数据,选择故事情节和残差<年代trong class="guilabel">验证选项卡。你可以评估使用估计的数据模拟参数同意使用这些测量数据块。

    在<年代trong class="guilabel">验证选项卡上,单击<年代trong class="guibutton">验证开始验证。

  5. 检查的阴谋。

    1. 检查实验阴谋看看模拟输出匹配的输出数据。

      模拟反应如浅棕色的顶部所示实验情节是覆盖在测量出数据,并匹配测量验证数据。

    2. 检验残差图比较模拟响应和测量数据之间的差异。

      模拟和测量数据之间的差异2和-2.5之间变化。6%以内的残差最大输出变化和不显示任何系统的模式。这表明之间的适合模拟输出和测量数据。

  6. 保存会话。在<年代trong class="guilabel">参数估计选项卡上,单击<年代trong class="guibutton">保存会话。

    从下拉列表中选择在哪里保存会话。指定文件名,然后单击<年代trong class="guibutton">保存或<年代trong class="guilabel">好吧保存参数估计MAT-file会话。