主要内容

状态信息

模拟状态信息

一些块维护它们在模拟过程中使用的状态信息。例如,a的状态信息单位延迟块是前一个模拟步骤的输出信号值。该块使用状态信息计算当前模拟步骤的输出值。

如何使用保存的状态信息的一些例子包括:

  • 停止模型的模拟,并在重新启动模拟时使用保存的状态信息作为输入。

  • 模拟一个模型,并使用保存的状态信息作为输入,以第一个模型的结果为基础模拟另一个模型。

  • 在整个模拟过程中检查状态信息的变化。

国家信息类型

您可以保存这类状态信息。

国家信息类型 描述 在“数据导入导出窗格”中配置参数
每个模拟步骤的状态 在模拟的每个时间步中,块的状态信息(称为部分状态数据)
最终状态 模拟结束时块的状态信息 最终状态
最终状态为ModelOperatingPoint 最终状态ModelOperatingPoint对象,该对象捕获Simulink提供的附加内部信息金宝app®模拟期间的使用 最终状态而且保存最终工作点

ModelOperatingPoint提供比最终状态信息本身更完整的最终模拟状态信息。但是,如果有使用的要求和限制ModelOperatingPoint不符合您的建模要求,保存最终状态信息没有ModelOperatingPoint

作业点和最终状态日志记录的比较

特征 最终状态 带作业点的最终状态

模拟模式

金宝app支持所有仿真模式

正常或加速。

模型参考

引用模型的状态信息

看到模型参考

恢复模拟

不支持金宝app

金宝app支持。

已保存状态数据

仅记录状态-块的连续和离散状态-这是模型完整模拟状态的子集

没有保存模型的用户数据、运行时参数或日志

完整的状态信息。

不保存模型的用户数据、运行时参数或日志。

块输出

没有保存模型的用户数据、运行时参数或日志

金宝appSimulink尝试将块的输出保存为类的一部分ModelOperatingPoint对象,即使s函数声明为noModelOperatingPoint对象存在于块中。如果块输出是自定义类型,Simulink将显示一个错误。金宝app

可读性

使用结构和时间格式,以获得最佳的可读性

要检查数据的简化视图,请考虑使用loggedStates的属性金宝appSimulink.op.ModelOperatingPoint类。

恢复状态数据

可以保存和恢复在不同的模拟模式。如果日志状态信息不够,可以在普通模式和加速模式下获得不同的结果。

不能在正常模式下保存并在加速模式下恢复,也不能在加速模式下保存并在正常模式下恢复。

恢复多个状态

您只能初始化模型中多个已记录状态中的一个。

您可以恢复模型中的所有状态。不能加载状态的子集。

结构变化

您可以在模拟和恢复模拟之间进行结构更改。

之间的模型不能进行结构更改ModelOperatingPoint对象恢复模拟时使用ModelOperatingPoint对象。类型的数据块后,不能添加或删除数据块ModelOperatingPoint对象,而不重复模拟并保存新的ModelOperatingPoint对象。

输入模型函数

对模型函数进行输入,使用数组使用类型的非复杂数据进行格式化

您不能输入ModelOperatingPoint对象来建模函数。

代码生成

金宝app支持

不受支持金宝app的。

对于这两个ModelOperatingPoint和最终状态日志,Simulink将状态信息保存在以金宝app下点之一:

  • 在最后的时间步

  • 在模拟暂停或停止的执行时间

欲了解更多有关ModelOperatingPoint,请参阅保存和恢复工作点的局限性

无操作点保存的状态信息格式

如果您不使用ModelOperatingPoint用于保存状态信息,则使用配置参数>数据导入/导出>格式为保存的状态信息指定数据格式。

你可以设置格式:

  • 数据集(默认)

  • 数组

  • 结构

  • 结构随时间变化

的默认设置格式参数是数据集.的数据集格式:

  • 存储已登录的数据timeseries时间表对象。中保存的数据timeseries时间表MATLAB对象®没有Simulink金宝app许可证。

  • 金宝app控件中记录数据时可能需要记录给定时间步骤的多个数据值对于迭代器子系统,一个While迭代器子系统和状态流®

  • 不支持快速加速器模金宝app拟、记录函数调用子系统中的状态信息或代码生成。

信号日志总是使用数据集格式。日志使用数据集Format允许您对模拟数据进行后处理,而无需为不同类型的日志数据编写自定义代码。方法记录状态时数据集在模拟过程中,数据也会自动流到模拟数据检查器。

数组选项。格式参数的存在是为了向后兼容早期版本中开发的模型,当时Simulink仅支持金宝app金宝app数组记录状态信息的格式。数组中信号的顺序取决于块排序顺序,当你改变以下任何一个时,可以从一个模拟改变到另一个模拟:

  • 模型(即使不改变信号)

  • 仿真模式

  • 代码生成方式

信号顺序的变化会给后处理记录数据带来挑战。

结构而且结构随时间变化格式在使用状态信息初始化模拟模型时很有用,允许您:

  • 将初始状态值与状态的完整路径名称直接关联。这种关联消除了在Simulink重新排序状态时可能发生的错误,但初始状态数组的顺序没有相应改变。金宝app

  • 为每个状态的初始值分配不同的数据类型。

  • 只初始化状态的一个子集。

引用模型的状态信息

当Simu金宝applink以结构或结构随时间格式保存状态时,它会添加一个inReferencedModel的子字段信号结构场。这个附加子字段的值为真(1)如果信号字段记录了位于引用模型中的块的最终状态。例如:

xout.signals (1)
ans = values: [101x1 double] dimensions: 1 label: 'DSTATE' blockName: [1x66 char] inReferencedModel: 1

如果信号字段记录了一个引用的模型状态,它的blockName子字段包含顶级模型路径和引用模型路径的复合路径。顶层模型路径是从模型根到模型引用引用模型的块。引用模型路径是从引用模型根到状态为的块的路径信号现场记录。复合路径使用|字符分隔顶部模型路径和引用模型路径。例如:

> > xout.signals (1) .blockName
ans = sldemo_mdlref_basic/CounterA|sldemo_mdlref_counter/上一条输出信息

另请参阅

相关的话题