主要内容

从快速重启开始

当您需要迭代地模拟模型以调优参数、实现期望的响应或自动化测试时,请使用快速重启来避免再次编译。快速重新启动允许您执行迭代模拟,而无需每次编译模型或终止模拟。使用快速重启的通用工作流包括以下步骤。

  1. 启用快速重启快速启动按钮金宝app®工具条或命令行。

  2. 模拟模型。第一个模拟需要模型编译、初始化和保存ModelOperatingPoint对象。一旦模拟完成,它不会终止。相反,在快速重启中再次初始化模型。

  3. 执行以下任何一个动作:

    • 更改可调参数。

    • 在变步长求解器之间切换。

    • 调优根级输入。

    • 修改由可调参数引用的基本工作区、模型工作区变量和数据字典条目。

    • 将输入更改为从文件而且从工作空间块。

    • 改变初始状态参数用于下一次模拟。

    • 使用信号生成器阻塞、更改数据、重命名信号和信号组以及添加新组。

    • 控件以编程方式更改模型的信号日志覆盖值set_param命令和DataLoggingOverride参数。看到覆盖信号记录设置从MATLAB

    一旦在快速重启中初始化了一个模型,就不能这样做了

    • 改变信号或变量的维度、类型或复杂性。

    • 对不可调参数(如采样时间)进行更改。

    • 进行结构更改,例如添加或删除块或连接。

    这些更改要求您再次编译模型。要进行这样的更改,请关闭快速重启,进行更改,并重复此过程。

  4. 如果更改求解器,则不需要重新编译模型。您可以在运行时选择合适的求解器,而不必经历昂贵的重新编译过程。

  5. 模拟模型。该模型使用您提供的参数和输入的新值,但不会再次编译。

  6. 一旦你得到了想要的响应,关闭快速重启。

    请注意

    • 当您关闭快速重启时,Simulink不会为模型存储任何编译信息。金宝app当您下次模拟模型时,模型将被编译。

    • 不支持快速重启金宝app引用模型时使用局部求解器中启用。解算器窗格中

准备一个用于快速重启的模型

在快速重启中模拟模型之前,请确保模型满足以下要求:

  • 如果您在模型中启用了回调,请确保在模型重新初始化时它们不会尝试进行结构更改。例如,在每次模拟开始时调用掩码初始化命令等回调。因此,避免使用对模型进行结构更改的掩码初始化代码。

  • 模型中的所有块都必须支持金宝appModelOperatingPoint对象。

  • 模拟模式为普通模式或加速模式。

请注意

当启动快速重启时,在模型编译后无法保存对模型的更改。保存更改需要Simulink丢弃关于编译状态的信金宝app息。要保存对模型的任何更改,请先关闭快速重启。

启用快速重启

使用以下方法之一来启用快速重启:

  • 单击快速启动按钮在Simuli金宝appnk编辑器工具栏上。

  • 在MATLAB中®命令提示符,使用set_param启用快速重启功能。类型

    set_param(模型、“FastRestart”、“上”)

使用快速重启模拟一个模型

加载模型并启用快速重启后,模拟模型。

  1. 通过调用模拟模型sim卡或单击运行按钮在Simuli金宝appnk编辑器工具条中。快速重启中的第一个模拟需要模型编译并保存一个ModelOperatingPoint对象。

    模拟完成后,状态栏显示在快速重启中编译了模型。

    快速重启过程中,模拟状态变为重新启动时,Simulink金宝app Editor会冻结,就像在模型编译和初始化过程中一样。

    金宝appSimulink状态栏显示“重新启动”状态消息

  2. 调整模型中的可调参数,如a的增益值获得阻塞或调优根级输入值。您还可以对基本工作区变量进行更改。你不能调整不可调参数,比如采样时间,因为这样做需要模型再次编译。

  3. 再次模拟模型。这一次,模型没有编译。当你点击按钮或向前一步,Simulink将更新具有新值的金宝app块以及引用工作区变量的块。

  4. 当您对结果感到满意时,请单击快速启动按钮。

  5. 若要保留更改,请保存模型。

请注意

在快速重启中初始化模型后,如果您试图对模型进行结构更改,Simulink将显示一个警告。金宝app要进行此类更改,必须关闭快速重启。

停止模拟

当你点击停止在快速重启模拟过程中:

  • 模拟不会终止。

  • 模型处于初始化状态。

  • 您现在可以更改模型中的可调参数

  • 单击,可以终止模拟并退出快速重启快速启动按钮。

退出快速重启

只有当模型处于初始化状态时,才能退出快速重启。模拟完成后,单击快速启动按钮。要以编程方式执行此操作,输入:

set_param(模型、“FastRestart”、“了”)

  • 金宝appSimulink终止仿真。

  • 金宝appSimulink丢弃了关于模型的任何编译信息。

  • 该模型必须在下次模拟时再次编译。

快速重启方法

模拟之间的参数调整

  • 在快速重启中初始化模型时,除了块值和基本工作区变量外,还可以调优数据导入/导出而且解算器窗格中的“配置参数”对话框(在模拟选项卡,在准备,点击模型设置).

  • 只有在快速重启中初始化模型时,某些参数才能在模拟之间进行调整。它们包括:

    • 初始值参数。集成电路

    • 初始输出参数。合并

    • 数据参数。从工作空间

    • 信号的参数和信号组信号生成器块。

在模拟之间切换求解器

当开启快速重启时,您可以在模拟之间切换求解器。方法中只列出了可切换到的有效求解器解算器列表。如果你切换求解器使用set_param命令,并设置为无效的求解器,您将看到一个警告,无效的求解器将被忽略。

快速重启中的模型方法和回调

当开启快速重启时,Simulink调用model和金宝appblock方法和回调如下:

  1. 调用模型InitFcn回调。

  2. 调用模型SetupRuntimeResources方法。

    1. 调用mdlSetupRuntimeResources功能的方法。

  3. 调用模型开始方法。

    1. 调用mdlStart功能的方法。

  4. 调用模型初始化方法。

    1. 调用mdlInitializeConditions功能的方法。

      请注意

      使用ssIsFirstInitCond标志,以保护只应在任何模拟的初始化阶段运行的代码,包括快速重启中的第一次和后续初始化。

  5. 调用模型和块StartFcn回调。

    请注意

    步骤1-5适用于Simulink中的所有模拟(有或没有快速重启)。金宝app

  6. 对于快速重启中的第一个模拟,捕获一个模拟快照。模拟快照包含模拟状态(ModelOperatingPoint)和与记录数据和可视化块相关的信息。作为快照捕获的一部分,调用ModelOperatingPoint功能的方法。

  7. 这是任何模拟的标准执行阶段,无论是否快速重启。

    • 调用模型输出

    • 调用模型更新

    • 调用模型衍生品

    • 在循环中重复这些步骤,直到停止时间或请求停止。

  8. 调用模型终止方法。

    1. 调用mdlTerminate功能的方法。

  9. 模拟结束后,调用模型和块StopFcn回调。这是任何模拟的标准阶段,无论是否快速重启。

  10. 恢复用于快速重启的模拟快照。作为恢复的一部分,调用功能的方法。

  11. 在重新初始化状态下等待,直到以下操作之一:

    • 若要在快速重启中运行另一个模拟(以编程方式或使用Simulink Editor),请返回到步骤3。金宝app

    • 结束快速重启模式并解编译模型:

      1. 调用模型方法CleanupRuntimeResourcesmdlCleanupRuntimeResources功能的方法。

      2. 不要打电话StopFcn此时再次回调。

在某些情况下。的开始而且终止方法只被调用一次,而不是在每个连续的快速重启模拟中调用。在这些情况下,这些方法调用与对SetupRuntimeResources而且CleanupRuntimeResources,分别。这些情况如下:

  • 当s函数包含自定义ModelOperatingPoint保存和恢复方法。

  • 当s函数设置标志时SS_OPTION_CALL_TERMINATE_ON_EXIT

  • 当一个s函数被置于一个参考模型的加速模式内时。

有关模型回调的更多信息,请参见自定义模型行为的回调

工作点和初始状态值

您可以更改初始状态值,包括ModelOperatingPoint,在快速重启模拟之间。

当一个ModelOperatingPoint对象的初始状态用于快速重启,每次新的模拟重置为模型的开始时间,而不是每个模型的快照时间ModelOperatingPoint对象。之后,在向前迈出的第一步中,Simulink检查是否a金宝appModelOperatingPoint已指定。如果是,则在计算金宝app下一步之前,Simulink将其恢复。因此,第一个模拟步骤有效地快进到指定的快照时间ModelOperatingPoint对象。

使用模拟数据检查器分析数据

快速重启支持使用模拟数据检金宝app查器进行数据记录。快速重启中的每个模拟都创建一个具有此名称的SDI对象快速重启运行.的价值数量每个模拟的增量。

初始化函数中的自定义代码

中放置自定义代码时配置参数>模拟目标>自定义代码>初始化函数窗格中的型号配置参数对话框,这个只在快速重启的第一次模拟中被调用。

相关的话题