主要内容

调整和试验块参数值

当你建立起一个模型,你可以用块实验参数,如的系数转移Fcn块,来帮助你决定使用哪一个街区。你可以用不同的参数值模拟模型,并获取,观察仿真输出。

你可以改变大多数数字块参数的值在一个模拟世界中。观察效果,可以实时可视化仿真的输出。这种技术允许您快速测试参数值在你开发一个算法。你可以在视觉上:

  • 调整和优化控制参数。

  • 调整模型参数。

  • 测试在不同条件下控制鲁棒性。

当你开始一个模拟,仿真软件金宝app®第一个更新模型图。这个操作可以花时间更大的模型。测试参数值没有反复更新模型图,您可以调整的参数值在一个单一的模拟运行。

此外,为了避免更新模型图,使用快速重启。更多信息快速重启,看到开始使用快速重启

如果你不能直观地分析实时仿真输出,或者如果你必须运行许多模拟,考虑使用编程方法全面的参数值。您可以捕获模拟输出数据并进行分析。有关更多信息,请参见优化、估计和扫描块参数值

基本信息访问和设置参数值,明白了组块的参数值

迭代调整块模拟运行之间的参数值

这个例子展示了如何原型模型通过改变参数值之间的模拟运行。你可以用参数值并观察实验仿真结果来帮助你决定哪些块使用和如何构建您的模型。

一个容错燃料控制系统模型示例模型sldemo_fuelsys代表了汽油发动机的燃料系统。模型中的一个子系统,feedforward_fuel_rate计算引擎的燃料需求通过使用常数14.6代表理想的空气燃料比(化学)发动机消耗。两个街区的子系统使用数量设置参数的值。

假设您想要改变的设计价值理想air-to-fuel比率14.617.5观察对燃料需求的影响。存储模型中的设计值,您可以修改块对话框中的值。或者,你可以用一个有意义的值存储在一个变量的名字,你可以重用的价值两个街区。

观察仿真输出的变化通过改变块对话框中的值:

  1. 打开一个容错燃料控制系统模型示例模型sldemo_fuelsys

    openExample (“金宝appsimulink_automotive / ModelingAFaultTolerantFuelControlSystemExample”)sldemo_fuelsys

  2. 设置模型仿真时间2000年50更快的模拟。

  3. 在模型中,打开范围块对话框。

  4. 模拟模型。改变窗口的大小范围对话框中看到所有的仿真结果。

    范围显示表明,整个仿真燃料信号振荡之间的约0.91.6。的air_fuel_ratio信号迅速爬到15无超调。

  5. 在模型中,打开模型数据编辑器。在建模选项卡上,单击模型数据编辑器。在模型数据编辑器,检查参数选项卡。

  6. 在模型或命令提示符并导航到目标子系统。

    open_system (“sldemo_fuelsys / fuel_rate_control fuel_calc / feedforward_fuel_rate ')

  7. 在模型数据编辑器,使用价值列改变恒定值(价值)参数常数块标记丰富的1 / (14.6 * 0.8)1 / (17.5 * 0.8)

  8. 同样的,改变恒定值参数块的标记正常的1/14.61/17.5

  9. 模拟模型。

    显示范围表明,现在的信号有不同的反应。

替换块对话框中的文字值数值变量:

  1. 使用模型数据编辑器设置的值正常的常数1 /混合物

  2. 设置的值丰富的1 /(混合* 0.8)

  3. 当编辑丰富的价值,旁边1 /(混合* 0.8),点击操作按钮并选择创建

  4. 创建新的数据对话框中,设置价值17.5并点击创建

    数值变量混合物出现在基地工作空间与价值17.5。在模拟运行时,你可以改变的价值混合物在基本工作空间而不是改变块对话框中的参数值。

在模拟优化块参数值

这个例子展示了如何观察一块参数值变化的影响在一个模拟世界中。这种技术可以让您避免更新之间的模型图模拟运行和交互测试和调试您的模型。

模型的例子sldemo_fuelsys包含一个常数块,节流命令,代表了节流命令。观察的影响增加的大小在仿真命令:

  1. 打开一个容错燃料控制系统模型示例模型sldemo_fuelsys

    openExample (“金宝appsimulink_automotive / ModelingAFaultTolerantFuelControlSystemExample”)sldemo_fuelsys

  2. 在模型中,打开范围块对话框。

  3. 开始仿真。

    模型配置为模拟2000秒。在仿真过程中,价值观的燃料air_fuel_ratio信号出现在实时图范围。

  4. 在模型中,当状态栏显示约1000年(1000秒),点击暂停按钮暂停仿真。

  5. 在显示范围,燃料图块模拟输出前暂停时间。

  6. 在模型中,建模选项卡上,单击模型数据编辑器

  7. 在模型数据编辑器中,选择参数选项卡。

  8. 在模型中,选择节流命令块。

  9. 在模型数据编辑器中,选择rep_seq_y行。确保你没有选择rep_seq_t行。

  10. rep_seq_y行,改变的价值价值列从(10 20)(10 30)

  11. 单击一步按钮逐步推进仿真。单击按钮约15倍或直到你看到的改变燃料图形的显示范围。

    的情节的信号燃料表明燃料需求量急剧增加,对应于增加节流命令。

  12. 在模型中,恢复模拟点击继续按钮

    范围显示显示了显著的周期性的燃料需求的增加,以及周期性减少air-to-fuel比率,在其余的模拟。

在仿真期间,您必须更新后的模型图你改变工作空间变量的值。更新模型图,仿真软件将来发布,在金宝app建模选项卡,编译部分中,点击更新模型

准备参数优化和实验

  • 使用工作空间变量设置参数值。

    访问一个块参数的值,例如恒定值参数的常数块,你必须在模型中导航到块并打开对话框,搜索块通过使用model Explorer,或使用功能set_param在命令提示符。

    或者,如果您设置块参数值通过创建一个工作空间变量,您可以更改变量的值通过使用命令提示符,MATLAB®工作空间浏览器,或Model Explorer。您还可以创建一个变量设置为多个块参数相同的值。当你改变变量值,所有目标块的参数使用新的值。关于访问的更多信息和设置参数值,明白了组块的参数值

  • 可视化仿真输出。

    观察仿真输出时实时调整块参数值,您可以使用块模型等范围块。你也可以捕获仿真输出的模拟运行,检查员和视图中的数据仿真数据。有关更多信息,请参见决定如何可视化仿真数据

  • 为块参数指定值范围,你期望在模拟优化。

    如果你期望他人使用您的模型和调优参数,可以控制允许调优值通过指定一个范围。此外,这是一个最佳实践为所有定点块参数指定值范围,你希望调整。指定块的参数值范围,明白了为块参数指定最小值和最大值

  • 控制仿真时间和速度。

    模拟运行可以执行得太快,你不能调整块参数值。同样,如果你想改变一个参数值在一个特定的仿真时间,你必须学会控制仿真速度。您可以配置仿真运行永远为一个特定的时间或运行,暂停和推进模拟当你想。有关更多信息,请参见模拟模型的交互通过编程的方式运行模拟

使用仪表板模块交互地调整

您可以调整块参数值通过添加块从仪表板库模型。仪表板模块允许您调整其它块的参数值,并观察模拟输出实时互动的旋钮、开关、和读数,模仿的外观工业控制。你可以与仪表板模块交互,而无需定位目标块的参数模型。有关更多信息,请参见优化与仪表板模块和可视化模型

在模拟块参数可调吗?

Nontunable块参数在仿真参数,其值不能改变。例如,你不能调整样品时间块参数。如果一个参数是nontunable,你不能改变它的值在模拟通过改变块对话框中的值或通过改变工作空间变量的值。

Nontunable块参数包括:

  • 样品时间。

  • 参数控制块的外观或结构,如输入的数量总和块。

  • 优先级,它允许您控制块的执行顺序。

  • 参数控制块算法,如积分器的方法参数的离散时间积分器块。

确定一个街区在仿真参数可调,使用这些技术之一:

  • 开始一块模拟和打开对话框。如果目标块参数的值是灰色模拟期间,你不能调优参数。

  • 在命令提示符下,确定标志读写read-only-if-compiled描述参数。

    1. 选择模型中的块。

    2. 在命令提示符处,使用函数get_param返回的信息块对话框参数。函数返回一个结构,它有一个块中的每个参数字段对话框。

      paramInfo = get_param (gcb),“DialogParameters”);

      或者,而不是定位和选择的块模型,你可以替换华东桐柏块路径等“myModel / mySubsystem / myBlock”

    3. 查看有关目标的信息块参数。例如,要查看的信息样品时间参数块,视图字段的值SampleTime,这也是一个结构。

      paramInfo.SampleTime
      ans =提示:“样品时间:”类型:字符串的枚举:{}属性:{“读写”“read-only-if-compiled”“dont-eval”}

    4. 检测结构的属性字段,其值是一个单元阵列的特征向量。如果国旗读写发表在《细胞数组,您可以修改参数值。然而,如果旗帜read-only-if-compiled也出现在细胞阵列,您不能修改参数值在模拟。

如果你用面具来创建自定义接口模块和子系统,可以控制个人面具的可调谐性参数。如果你使用模型参数引用的参数化模型,您可以调整每个模型参数的值模型块。

为什么仿真输出保持不变?

如果输出仿真后不会改变你改变一个参数值,使用这些故障诊断技术:

  • 找到一个工作空间变量的定义。

    如果你使用一个工作空间变量设置参数值,确定变量定义所在。例如,如果您定义了一个变量myvar#在模型空间和使用它来设置一块模型中的参数值,你不能改变参数值通过改变一个变量的值myvar#在基本工作空间。您必须访问模型中的变量定义的工作区。

    定位的定义一个变量,而编辑块参数的值,使用变量,单击附近的操作按钮并选择探索。一个对话框打开时,比如Model Explorer显示变量的定义适当的工作区。模型是如何使用变量的更多信息,见符号解析

  • 指定为定点参数值范围,要在模拟优化。

    如果你想调整块参数使用定点与best-precision扩展数据类型,指定一个最小值和最大值的参数模型可以计算并应用适当的缩放。金宝app如果你不指定一个值范围,模型可能会应用扩展,排除了调优您想要使用的值。金宝app指定值范围,明白了为块参数指定最小值和最大值

  • 在模拟运行更新模型图。如果你使用一个工作空间变量设置一个或多个块参数的值,当你改变变量的值在一个模拟,您必须更新模型图。

可调谐性注意事项和限制其他建模的目标

引用模型

当你使用模型块,这些参数可调谐性限制适用:

  • 如果你设置的模拟模式模型块加速模式或如果你父模型模拟在加速模式下,你不能调整块引用的模型在仿真参数。然而,如果引用模型使用变量的基本工作空间或一个数据字典设置参数值,您可以调整的变量的值。

  • 假设您使用MATLAB变量或金宝appSimulink.Parameter对象模型中工作区设置一块参数的值在一个模型。如果你使用一个模型块来引用该模型:

    • 你设置的模拟模式模型块加速模式或模型模拟父在加速模式下,你不能改变变量的值或对象在模拟。

    • 当你父模型模拟在加速模式下,改变变量的值或对象之间的模拟运行导致模型重新生成代码。金宝app

    • 你使用其他的模型块参考模型多次在父模式,你可以选择一个不同的模拟模式模型块。如果至少一块正常使用模拟模式和其他块使用不同的仿真模式,你不能改变变量的值或对象在模拟。同样,当你模拟父模型与快速重启,你不能改变变量的值或对象之间fast-restart模拟运行。

    作为一个解决方案,将变量或对象基本工作区或一个数据字典。

加速器和硅/公益诉讼模拟

这些可调谐性限制适用于加速器,快速的加速器,银,和公益诉讼模拟:

  • 假设您使用MATLAB变量或金宝appSimulink.Parameter对象模型中工作区设置一块参数的值在一个模型。如果你使用sim卡函数来模拟模型在快速加速器模式和设置RapidAcceleratorUpToDateCheck两个参数“关闭”,你不能使用RapidAcceleratorParameterSets双参数来指定不同的值的变量或对象。返回的结构金宝appSimulink.BlockDiagram.buildRapidAcceleratorTarget不包含变量或对象的信息。

  • 如果一个块参数值引用工作空间变量,你不能改变块参数值在快速加速器模拟,比如通过使用函数set_param。相反,您可以调整引用变量的值。

    另外,使用参数设置来优化运行时参数之间的快速加速器模拟。有关更多信息,请参见优化运行时参数

在加速模拟有关参数的更多信息可调谐性,明白了优化运行时参数sim在parfor快速加速模式。关于参数的更多信息可调谐性在银和公益诉讼模拟,明白了可调参数和硅/公益诉讼(嵌入式编码)

快速启动

关于参数的更多信息可调谐性当你使用快速启动,明白了开始使用快速重启

外部程序的代码生成和仿真

参数可调模拟可以作为nontunable出现内联参数中生成的代码。如果你模拟一个外部程序通过使用硅,公益诉讼,或外部模式模拟,参数可调谐性之间的仿真和模拟运行期间可以取决于你的代码生成设置。

控制参数的可调性在生成的代码中,您可以调整模型的代码生成设置通过使用配置参数默认参数的行为。您还可以调整设置个人MATLAB变量,金宝appSimulink.Parameter对象,和其他参数对象。有关更多信息,请参见保存生成的代码中的变量(金宝app仿真软件编码器)

Stateflow图表

调试Stateflow图通过改变数据在仿真中,看到的设置断点调试图表(Stateflow)

另请参阅

相关的话题