保存仿真数据
保存或记录仿真数据为分析和调试模型提供了基准。您可以将仿真数据保存到工作区或文件中。记录仿真数据后,无需重新运行仿真,就可以检索、分析和后处理数据。您还可以使用记录的数据作为仿真模型的输入。
要记录仿真数据,请执行以下步骤:
选择要记录的仿真数据的类型。
根据要记录的数据选择一种或多种记录方法。
记录仿真数据。
此流程图根据您选择记录的数据类型,概要显示可用的方法和必要的配置设置。
选择要记录的仿真数据类型
仿真数据可以是输出、信号、时间、状态和数据存储记录数据的任意组合。
输出 - 记录输出数据以分析连接到根级 Outport 模块的信号。
信号数据 - 记录信号数据以分析连接到模块的信号、总线或总线数组。
时间 - 记录时间数据以保存仿真的时间值。
状态或最终状态 - 记录状态数据以分析模块状态在整个仿真期间如何变化。在仿真期间记录模型工作点,以便从其中任一工作点还原仿真。
数据存储 - 记录数据存储以保存仿真中所有步骤的局部或全局数据存储的值。数据存储记录通常用于模型调试或确认模型修改。
选择记录仿真数据的方法
可用的记录方法和必要的配置设置取决于您要记录的仿真数据的类型。您可以记录仿真数据类型的任意组合,并可使用多种记录方法保存同一模型中的仿真数据。
您可以使用以下方法中的一种或多种来记录仿真数据。
目的 | 记录方法 | 更多信息 |
---|---|---|
记录输出数据。 | 当您的模型已包含 Outport 模块时,请考虑记录顶层模型中的输出数据。 记录的输出数据以默认变量名称 在仿真期间,将以 | |
记录整个模型中的信号,而不添加模块。 | 启用信号记录并对要记录的信号进行标记。有关详细信息,请参阅 使用信号记录保存信号数据。 | 使用信号记录可避免向模型添加模块。 信号记录数据以默认变量名称 在仿真期间,信号记录将数据流式传输到仿真数据检查器。 使用通过信号属性或插桩属性指定的单个信号记录速率来记录信号。 以编程方式或使用信号记录选择器记录所标记信号的子集。有关详细信息,请参阅Override Signal Logging Settings |
将信号数据记录到工作区、文件和仿真数据检查器中。 | 将一个或多个信号连接到一个 Record 模块,并将该模块配置为将数据记录到工作区或文件中。 | Record 模块使用默认变量名称 在仿真期间,Record 模块将数据流式传输到仿真数据检查器。 您可以配置 Record 模块,以便将数据记录到工作区和/或文件中。有关详细信息,请参阅Log Data to the Workspace and a File Using the Record Block。 Record 模块支持将数据记录到 MAT 文件、MLDATX 文件或 Excel® 文件中。 使用包括迷你图、时间图和 XY 绘图在内的多种可视化方式来可视化在 Record 模块中记录的数据。 |
将信号数据记录到工作区。 | 将信号连接到 To Workspace 模块。 | To Workspace 模块使用默认变量名称 在仿真期间,To Workspace 模块将记录的数据流式传输到仿真数据检查器。 以不同于基本采样率的采样率保存数据。 有关详细信息,请参阅Output Simulation Data with Blocks |
将信号数据记录到 MAT 文件中。 | 将信号连接到 To File 模块。 | To File 模块将数据保存到 MAT 文件中,而不是保存到工作区中的变量中。 如果您将模型配置为在仿真数据检查器中记录所记录的工作区数据,则当仿真暂停、停止或完成时,仿真数据检查器可以使用记录到 To File 模块的数据。在仿真期间,数据无法流式传输到仿真数据检查器。 以不同于基本采样率的采样率保存数据。 To File 模块不支持记录可变大小信号。 有关详细信息,请参阅Output Simulation Data with Blocks |
记录显示在 Scope 模块中的信号数据。 | 将一个或多个信号连接到一个 Scope 模块,并将该模块配置为将数据记录到工作区。 | 记录的 Scope 数据以默认变量名称 以不同于基本采样率的采样率保存数据。 Scope 模块会存储数据,并且可能会占用大量内存。 有关详细信息,请参阅使用 Scope 模块保存仿真数据。 |
记录时间值。 | 启用时间记录。 | 软件以模型的基本采样率将时间数据记录到工作区。 记录的时间数据以默认变量名称 |
记录模块状态数据以分析模块状态在整个仿真期间如何变化。 | 在仿真期间,以 要分析模块状态在整个仿真期间如何变化,请将模型配置为记录状态。状态数据以默认变量名称 要在仿真暂停或停止时记录模块状态的快照,请将模型配置为记录最终状态。最终状态数据以默认变量名称 有关详细信息,请参阅Save Block States and Simulation Operating Points。 | |
记录完整的模型工作点以用作将来仿真的起点。 | 模型工作点表示模块状态和模型状态的完整集合,包括仿真时间、求解器状态和执行引擎状态。有关详细信息,请参阅Save Block States and Simulation Operating Points。 使用模型工作点可以节省时间,因为它无需重复运行这些场景变化时保持不变的仿真段。有关详细信息,请参阅Use Model Operating Point for Faster Simulation Workflow。 | |
日志数据存储可在整个模型层次结构中共享数据,用于调试模型或确认模型修改。 | 启用数据存储记录,向模型添加 Data Store Memory 模块,并配置该模块以记录数据。 | 数据存储使用默认变量名称 在仿真期间,记录的数据存储将流式传输到仿真数据检查器。 有关详细信息,请参阅Log Data Stores。 |
选择数据格式
您可以用多种格式记录数据。下表显示对每种数据类型和记录方法可用的数据格式。
记录的数据 | 数据格式 | ||||
---|---|---|---|---|---|
Dataset | timeseries | 数组 | 带时间的结构体 | 结构体 | |
输出 | 是(默认值) | 否 | 是 | 是 | 是 |
使用信号记录的信号数据 | 是(默认值) | 否 | 否 | 否 | 否 |
使用 Record 模块的信号数据 | 是(默认值) | 否 | 否 | 否 | 否 |
使用 To Workspace 模块的信号数据 | 否 | 是(默认值) | 是 | 是 | 是 |
使用 To File 模块的信号数据 | 否 | 是(默认值) | 是 | 否 | 否 |
使用 Scope 模块的信号数据 | 是(默认值) | 否 | 是 | 是 | 是 |
状态和最终状态 | 是(默认值) | 否 | 是 | 是 | 是 |
数据存储 | 是(默认值) | 否 | 否 | 否 | 否 |
时间数据记录为仿真时间的向量。有关数据格式的详细信息,请参阅记录的仿真数据的数据格式。
请考虑将以其他格式记录的数据转换为 Dataset
格式,以简化后处理。有关详细信息,请参阅Convert Data to Dataset Format。
记录数据
选择要记录的数据类型和记录方法后,就可以准备模型来记录数据。根据数据和所选的方法,使用以下一个或多个步骤:
在模块图中,根据您选择的方法添加模块或标记信号。
将模块配置为以所选格式记录数据。
如果使用 Record 模块、Scope 模块或记录数据存储,请配置这些模块以记录数据。
如果使用 To Workspace、To File 或 Scope 模块记录数据,您可以使用“模块参数”对话框更改记录的数据格式。双击模块可访问“模块参数”对话框。
配置模型以记录所选数据。
在建模选项卡的设置部分中,点击模型设置。
选择数据导入/导出窗格。
选择要保存数据的参数。例如,要保存输出数据,请选择输出。
您选择的参数取决于您记录的数据。
数据 | 配置参数 | 默认启用? |
---|---|---|
输出数据 | 输出 | 是 |
为信号记录已进行标记的信号数据 | 信号记录 | 是 |
时间数据 | 时间 | 是 |
状态 | 状态 | 否 |
最终状态 | 最终状态 | 否 |
数据存储 | 数据存储 | 是 |
以 Dataset 以外的格式记录的数据,以及使用 To File 或 Scope 模块记录的数据(在仿真暂停或停止后,您要在仿真数据检查器中查看这些数据)。 | 在仿真数据检查器中记录所记录的工作区数据 | 否 |
为记录所选数据准备好模型后,点击运行以对模型进行仿真。在仿真期间记录数据。要以交互方式检查记录的仿真数据,请考虑使用仿真数据检查器。有关详细信息,请参阅在仿真数据检查器中查看仿真数据。
您还可以通过编程方式访问工作区中记录的数据。默认情况下,结果以单个 Simulink.SimulationOutput
对象形式返回,该对象包含完整的仿真元数据和工作区中记录的所有仿真数据。每个记录的数据类型均为由记录的数据的变量名称指定的 SimulationOutput
对象的属性。有关详细信息,请参阅View and Access Logged Simulation Data。
另请参阅
模型设置
对象
模块
- Record | Outport | To Workspace | To File | Scope | Data Store Memory