当您需要迭代地模拟模型以优化参数、实现所需的响应或自动化测试时,请使用快速重启以避免再次编译。快速重启允许您执行迭代模拟,而无需每次编译模型或终止模拟。使用快速重启的通用工作流涉及以下步骤。
打开快速重启使用快速启动按钮金宝app®工具条或命令行。
模拟模型。第一个模拟需要模型编译、初始化和保存ModelOperatingPoint
对象。一旦模拟完成,它就不会终止。相反,模型将在快速重启中再次初始化。
执行以下任何操作:
改变可调参数。
调优根级输入。
修改可调参数引用的基本工作空间、模型工作空间变量和数据字典条目。
改变输入从文件和从工作空间块。
改变初始状态参数,用于下一次模拟。
使用信号生成器阻塞、更改数据、重命名信号和信号组,并添加新组。
控件以编程方式更改模型的信号日志记录重写值set_param
命令和DataLoggingOverride
参数。看到覆盖信号记录设置从MATLAB.
一旦在快速重启中初始化了模型,就不能这样做了
更改信号或变量的尺寸、类型或复杂性。
更改不可调优的参数,如样本时间。
进行结构更改,如添加或删除块或连接。
这些更改要求您再次编译模型。要进行这样的更改,请关闭快速重启,进行更改,然后重复此过程。
模拟模型。模型使用您提供的参数和输入的新值,但不会再次编译。
一旦你达到了期望的响应,关闭快速重启。
请注意
当您关闭快速重新启动时,Simulink不会存储模型的任何编译信金宝app息。当您下一次模拟模型时,模型将进行编译。
在快速重启中模拟模型之前,请确保模型满足以下要求:
如果您在模型中启用了回调,请确保在重新初始化模型时,它们不会试图进行结构更改。例如,在每次模拟开始时都会调用掩码初始化命令等回调函数。因此,避免使用对模型进行结构更改的掩码初始化代码。
模型中的所有块都必须支持金宝appModelOperatingPoint
对象。
模拟模式为正常模式或加速模式。
请注意
当启动快速重启时,您不能在模型编译后保存对它的更改。保存更改需要Simulink丢弃有关编译状态的信金宝app息。要保存对模型的任何更改,请首先关闭快速重新启动。
使用以下方法之一来启用快速重启:
单击快速启动按钮在Simuli金宝appnk编辑器工具栏上。
在MATLAB®命令提示符,使用set_param
启用快速重启。类型
set_param(模型、“FastRestart”、“上”)
加载模型并启用快速重启后,模拟模型。
通过调用来模拟模型sim卡
或单击运行按钮在Simuli金宝appnk编辑器工具栏中。快速重启中的第一个模拟要求模型编译并保存ModelOperatingPoint
对象。
一旦模拟完成,状态栏显示模型在快速重启中初始化。
调整模型中的可调参数,如a的增益值获得块或调优根级输入值。您还可以对基本工作区变量进行更改。不能调整样本时间等不可调优参数,因为这样做需要再次编译模型。
再次模拟模型。这一次,模型不能编译。当你点击玩按钮或步进,Simulink会更新具有新值的块以金宝app及引用工作区变量的块。
当您对您的结果感到满意时,通过单击快速启动按钮。
要保留您的更改,请保存模型。
请注意
在快速重启中初始化模型后,如果您试图对模型进行结构更改,Simulink将显示一条警告。金宝app要进行这些更改,必须关闭快速重启。
当你点击停止在快速重启模拟过程中:
模拟不会终止。
模型处于初始化状态。
您现在可以更改模型中的可调参数
单击,可以终止模拟并退出快速重启快速启动按钮。
只有当模型处于初始化状态时,才能退出快速重启。模拟完成后,单击快速启动按钮。要以编程方式完成此操作,输入:
set_param(模型、“FastRestart”、“了”)
金宝app仿真软件仿真终止。
金宝appSimulink丢弃了所有关于模型的编译信息。
在下次模拟时,模型必须再次编译。
在快速重启中初始化模型时,除了块值和基本工作区变量外,还可以在数据导入/导出和解算器“配置参数”对话框中的模拟选项卡,在准备,点击模型设置).
只有当模型在快速重启中初始化时,某些参数才可在模拟之间进行调优。它们包括:
初始值参数的集成电路块
初始输出参数的合并块
数据参数的从工作空间块
信号的参数和信号组信号生成器块。
当快速重启开启时,Simulink调用模型和块方法金宝app和回调如下:
调用模型InitFcn
回调。
调用模型SetupRuntimeResources
方法。
调用mdlSetupRuntimeResources
功能的方法。
调用模型开始
方法。
调用mdlStart
功能的方法。
调用模型初始化
方法。
调用mdlInitializeConditions
功能的方法。
请注意
使用ssIsFirstInitCond标志,用于保护只应在任何模拟的初始化阶段(包括快速重启中的第一次和后续初始化)运行的代码。
调用模型和块StartFcn
回调。
请注意
步骤1-5适用于Simulink中的所有模拟(有或没有快速重启)。金宝app
对于快速重启中的第一个模拟,捕获一个模拟快照。模拟快照包含模拟状态(ModelOperatingPoint
)以及与记录的数据和可视化块相关的信息。作为快照捕获的一部分,调用ModelOperatingPoint
功能的方法。
这是任何模拟的标准执行阶段,无论是否快速重启。
调用模型输出
.
调用模型更新
.
调用模型衍生品
.
循环重复这些步骤,直到停止时间或请求停止为止。
调用模型终止
方法。
调用mdlTerminate
功能的方法。
仿真结束后,调用模型和块StopFcn
回调。这是任何模拟的标准阶段,无论是否快速重启。
恢复为快速重启所拍摄的模拟快照。作为恢复的一部分,打电话集
功能的方法。
在重新初始化状态下等待,直到以下操作之一:
要在快速重启中运行另一个模拟(以编程方式或使用Simulink编辑器),请回到步骤3。金宝app
要结束快速重启模式并解编译模型,请执行以下操作:
调用模型方法CleanupRuntimeResources
和mdlCleanupRuntimeResources
功能的方法。
不叫StopFcn
此时再次回调。
在某些情况下。的开始
和终止
方法只被调用一次,而不是针对每个连续的Fast Restart模拟。在这些情况下,这些方法调用与对的调用组合在一起SetupRuntimeResources
和CleanupRuntimeResources
,分别。这些情况如下:
当s函数包含自定义时ModelOperatingPoint
保存和恢复方法。
当s函数设置标志时SS_OPTION_CALL_TERMINATE_ON_EXIT
.
当s函数被放置在参考模型的加速模式内时。
有关模型回调的更多信息,请参见自定义模型行为的回调.
您可以更改初始状态值,包括ModelOperatingPoint
,在快速重启模拟之间。
当一个ModelOperatingPoint
对象的初始状态用于快速重新启动,每次新的模拟将重置为模型的开始时间,而不是每个模型的快照时间ModelOperatingPoint
对象。之后,在前进的第一步,Simulink检查是否金宝appModelOperatingPoint
已经指定。如果是,Simu金宝applink会在计算下一步之前将其恢复。因此,第一个模拟步骤有效地快进到指定的快照时间ModelOperatingPoint
对象。
快速重启支持使用仿真数据检金宝app查器记录数据。快速重启中的每个模拟都会创建一个具有该名称的SDI对象数量
每个模拟的增量。
将自定义代码放入配置参数>模拟目标>自定义代码>初始化函数窗格中模型配置参数对话框中,此方法仅在快速重启的第一次模拟期间调用。