Simulink:在 scope/block 中绘制时间序列以可视化数据

Simulink: Plot Timeseries in a scope/block to visualize data

我有一个调用用户定义函数的 Simulink 块。此函数调用另一个函数:thingspeakread.m(由ThingSpeak Official Toolbox提供)。

从这里开始,我想要两个结果。数据(数字类型、向量)和时间戳(字符串、向量)。

[data,timestamps] = thingSpeakRead(___)

现在,我可以毫无问题地将 "Data" 的值获取到作用域中(使用 coder.extrinsic('thingSpeakRead') 并预分配变量来存储此类点)。我遇到的问题是:我需要更好地理解数据可视化,为此,我需要根据时间戳向量中显示的信息绘制此 "Data"。时间戳仅每分钟变化。

我会尝试做的,但不是很令我满意:

这个选项发回一个巨大的数字(确实可以用来绘制数据与时间的关系图,但它看起来不像 'good' 因为数字太大了,我不喜欢它).

我也想过这些:

但我没有看到我想要的地方(这是绘制数据与时间的关系,能够轻松发现 "Time" 显示的数字对应于特定的 HH:MM:SS 一天)。

请问大家有什么建议吗?非常感谢!

编辑 1:我可以在 Simulink 中使用类似 datetick() 的东西吗?

转换为 datenum 的操作是将 "dates" 传递到 Simulink 信号的唯一方法。

没有显示时间序列的机制,日期显示在 x 轴上,无需编写自定义代码。

如果您不需要显示时间序列,因为模拟是 运行 那么只需将其转储到现有代码中的 mat 文件,并在 post 处理期间生成绘图.

如果你想让它显示为模拟 运行 那么你需要编写一个自定义显示块。这应该作为 Level-2 M-Code S-Function 来完成,但可以使用 MATLAB Function 块来完成。无论哪种方式,您都可以将 datenum 输入块,然后将 datenum 转换回日期 - 在生成可视化之前使用 datetime 之类的东西,或者之后使用 datetick