主要内容

保存块状态和模拟操作点

在模拟过程中,模型中的块使用模拟时间和块的输入计算每个时间步骤的输出值。一些块还存储关于其状态的信息,并使用该状态信息以及块输入和模拟时间来计算每个时间步骤的输出值。例如,单位延迟Block存储来自前一个时间步长的输出信号值作为其状态,并使用该信息计算当前时间步的输出值。

除了块状态之外,模型的其他方面还具有影响模拟的状态信息。模型工作点表示完整的块状态集和模型的状态,包括仿真时间、求解器状态和执行引擎状态。

使用记录块状态、最终状态和操作点,你可以:

  • 分析整个模拟过程中块状态的变化。

  • 为模型中的块指定初始状态。

  • 通过从初始操作点进行模拟,可以更快地运行一组模拟。

选择要记录的状态信息

根据你想如何使用状态信息,你可以配置你的模型:

  • 每个模拟时间步骤的日志块状态。

  • 在模拟暂停或模拟停止时记录块状态的快照。

  • 当模拟暂停或模拟停止时,记录完整的模型工作点。

方法记录每个模拟步骤的块状态,以分析整个模拟过程中块状态的变化情况配置参数。要保存给定模拟时间的模型快照,记录最终状态,包括或不包括完整的模型工作点。

您可以在同一个模拟中记录状态和最终状态。当您记录最终状态时,您可以选择是保存仅包含块状态的模拟状态快照,还是保存捕获完整模型操作点的快照。将模型配置为返回单个模拟输出时,日志状态和最终状态将作为金宝app仿真软件。SimulationOutput对象。

要为模型配置状态日志记录,请使用“配置参数”对话框。在建模选项卡上,单击模型设置,然后选择数据导入/导出

型号配置参数 保存的状态信息类型 当保存状态信息时 如何保存状态信息 默认变量名

阻塞状态

每个仿真时间步长

使用指定的格式格式参数

xout
最终状态

阻塞状态

当模拟暂停或停止时

使用指定的格式格式参数

xFinal
最终状态而且保存最终工作点

模型的完整仿真状态,包括:

  • 阻塞状态

  • 状态日志无法捕获的隐藏状态,包括以下状态:

    • 传输延迟块

    • 可变传输延迟块

    • 从工作区块

    • 对于每个子系统块

    • 有条件执行的子系统

    • Stateflow®图表

    • MATLAB®系统模块

    • 实现自定义工作点方法的s函数

    • Simscape™多体™第二代块

  • 求解器和执行引擎状态

  • 讨论二阶导数过零信息

  • 用于恢复模拟状态所需输出值的块的输出值

当模拟暂停或停止时

作为一个金宝appSimulink.op.ModelOperatingPoint对象

loggedStates的属性ModelOperatingPoint对象以指定的格式存储块状态格式参数。

xFinal

并不是所有的建模模式和工作流都完全支持日志状态和最终状态。金宝app金宝app在整个模拟过程中对记录块状态的支持取决于您使用的格式。有关更多信息,请参见选择“记录状态信息的格式”

金宝app对保存最终状态的支持取决于您是否保存模型操作点和您使用的格式。在决定如何保存最终状态时,请考虑建模需求以及希望如何使用最终状态。

建模模式或工作流 没有作业点的最终状态 具有作业点的最终状态

更快的模拟工作流程

没有工作点的最终状态并不总是足以在不改变计算结果的情况下从特定状态和时间恢复模拟。

如果您不确定您的模型的需求,请使用一个操作点来从特定状态模拟模型。

使用模型操作点可以节省时间,不要重复运行从一个场景到下一个场景没有变化的模拟部分。从一个操作点开始的模拟得到的结果与从头开始运行的不间断模拟得到的结果完全匹配。

当你使用一个工作点作为初始状态时:

  • 开始时间的模拟匹配开始时间为仿真所产生的作业点。

  • 仿真计算从创建操作点的时间开始的结果,该操作点保存在snapshotTime的属性ModelOperatingPoint对象。

有关更多信息,请参见使用模型工作点加快仿真工作流程

恢复模拟时间

属性指定的开始时间开始使用最终状态作为初始状态的模拟开始时间模型的配置参数。

使用操作点作为初始状态的模拟从操作点被保存时的模拟时间开始snapshotTime属性。金宝appSimulink.op.ModelOperatingPoint对象。

检查和修改状态值

可以在保存最终状态和使用状态信息作为另一个模拟的初始状态之间修改单个状态的值。

查看并编辑最终状态变量,xFinal默认情况下。

可以在保存工作点和将其用作另一个模拟的初始状态之间修改各个状态的值。

控件的内容loggedStates属性。金宝appSimulink.op.ModelOperatingPoint对象

ModelOperatingPoint对象包含的状态数据比没有操作点时记录的状态数据更多。这些附加状态中的一些可以使用loggedStates属性是只读的。

部分状态恢复

可以使用保存的状态信息的子集来指定模拟的初始状态。

必须使用完整的工作点作为模拟的初始状态。

指定包含总线数据的初始状态

金宝app方法保存的最终状态数据集格式

金宝app支持所有格式

在模拟之间修改模型

修改模型后,只要模型中存在与初始状态对应的块,就可以将保存的状态信息作为初始状态进行仿真。

在不修改模型和进行一定更改后,可以使用保存的工作点作为初始状态进行仿真,包括:

  • 更改可调参数值。

  • 修改日志记录或可视化选项。

  • 修改解算器设置,只要解算器的类型保持相同(固定步长或可变步长)。

详细信息请参见使用模型工作点加快仿真工作流程

模拟模式

金宝app支持所有仿真模式

金宝app支持所有仿真模式

对于在与生成工作点的仿真相同的仿真模式下运行的仿真,只能使用模型工作点作为初始状态。

模型参考

金宝app支持

在加速模式下模拟引用模型时,会有限制。详细信息请参见模型参考

代码生成

金宝app类型以外的格式保存的状态信息支持数据集格式 不支持金宝app

选择“记录状态信息的格式”

属性指定用于记录状态信息的格式格式参数。数据导入/导出窗格中的“模型配置参数”对话框。当您记录每个模拟步骤的块状态或没有模型工作点的最终状态时,将格式参数指定记录数据的格式。当您保存模型操作点的最终状态时,将格式参数中数据的格式loggedStates的属性金宝appSimulink.op.ModelOperatingPoint对象。的格式参数还指定记录输出数据的格式。

缺省情况下,使用数据集格式。类中返回块状态金宝appSimulink.SimulationData.Dataset对象,该对象包含金宝appSimulink.SimulationData.State对象。属性记录状态和输出数据集格式可以简化后处理,当您还使用信号记录或日志数据存储时,这些数据存储总是使用数据集格式。

你也可以使用结构结构随时间变化格式。的数据集结构,结构随时间变化格式存储类似的元数据,包括块路径,以及数值状态数据。这些格式为某些建模模式和工作流提供了不同级别的支持。金宝app

建模模式或工作流 数据集 结构而且结构随时间变化

记录给定时间步长的多个采样值

金宝app支持

对于记录状态流数据或for迭代器子系统或While迭代器子系统内的数据很重要。

不支持金宝app

流数据到模拟数据检查器

金宝app支持

不支持金宝app

快速加速器模拟

不支持在整个模拟过程中记录状态。金宝app

支持记录最终状态。金宝app

金宝app支持

指定包含总线数据的初始状态

金宝app支持保存有或没有操作点的最终状态

金宝app支持最终工作点

不支持保金宝app存没有操作点的最终状态

记录函数调用子系统内部的状态

不支持金宝app

金宝app支持

代码生成

不支持金宝app

金宝app支持

使用数组不推荐格式。的数组格式不包括元数据。您可以使用数组中数据的顺序来确定哪个状态值对应于模型中的哪个块。数组中块状态的排列基于模型中块的排序顺序,可以从一个模拟更改到下一个模拟,包括当您修改模型或更改模拟或代码生成模式时。

另请参阅

模型设置

对象

相关的话题