Engee 文档

软件处理 Engee 中的模拟结果

本文将介绍如何使用 simout 变量保存仿真结果。让我们以一个简单的示例—​使用程序块*正弦波* 输出正弦曲线—​为基础来考虑如何使用该变量。

默认情况下,模型仿真完成后不会创建 simout 变量。要使其出现,请在设置窗口debug article icon 1 中勾选复选框 将模拟结果保存到工作区

simout open 1

Engee 中的变量模拟:整合与互动

使用模块*正弦波* 和*终结者* 创建模型。为此,请将它们放置在工作区中,用信号线连接它们,并通过信号线的上下文菜单启用信号记录。(参见在 Engee 中记录信号 )。

simout 1

本例中所有参数(求解器和块参数*正弦波* )均保持默认。正弦信号模拟图将显示在图形窗口

在需要信息的引脚上连接块时,启用signal logging 1 信号记录功能。

如果电路组装正确,仿真结果将显示在图形上。模拟结束后,Engee 工作区将自动创建变量 simout

simout 2

simout "变量构成DataFrame - 一种以表格形式表示的数据结构。表格的单元格会自动填入模拟结果数据。为方便起见,请将表格保存为 CSV 格式(示例中命名为 result.csv)。

可以通过 collect 命令访问 simout 变量。该命令从 simout 变量中收集数据,并将其保存到一个新变量中。要执行命令,请创建一个变量(本例中为 result),并在命令行中输入以下代码保存仿真结果:

result = collect(simout["newmodel_1/Sine Wave.1"])

在哪里?

  • result 是保存模拟数据的变量名(可重命名)。

  • newmodel_1 - 当前模型的名称。

  • Sin Wave - 输出数据的程序块名称。

  • 1 - 端口的编号,从该端口的输出端读取变量 simout 的值,并将信号记录添加到该端口。

可以在命令行中以表格形式查看结果。

simout 4 cn

接下来,将模拟数据记录到 CSV 文件中。使用以下命令将 result 变量中的数据保存到 CSV 文件 result.csv 中:

using CSV
CSV.write("result.csv", result)

其中

  • using CSV 是一个字符串,表示代码将使用 CSV 库中的功能。在 Julia 中,using 关键字用于从包导入函数和类型。

  • CSV.write("result.csv", result) - 将数据写入 CSV 格式文件。CSV.write 函数有两个参数:CSV 格式文件 "result.csv "和 result 变量。因此,代码会将 result 变量的内容以 CSV 格式写入文件 "result.csv"。

得到的结果保存在 "result.csv "文件中,并在文件浏览器中显示。

simout 5

生成的 CSV 文件包含*正弦波* 程序块的数值结果和指定参数(本例中为默认值)。结果以 time 列和 value 列的形式显示,其中每个时间点对应于程序块*正弦波* 的模拟值。

使用至 CSV 程序块还可以获取包含模拟结果的 CSV 文件。

通过在命令行或脚本编辑器中显示图表,可以确保数据保存在 simout 变量中:

using Plots
plot(result.time, result.value)

生成的图形将与之前在图形窗口中获得的图形一致:

simout graph result

因此,本文演示了如何使用 simout 变量和几行代码轻松保存仿真结果。这种方法易于使用,并能确保仿真数据以方便通用的 CSV 格式保存。