【发布时间】:2013-06-13 19:07:57
【问题描述】:
我需要从我的 simulink 模型中获取数据,将其写入 txt 文件,让另一个程序读取它,并且每 0.008 秒一次。
有什么办法吗?我所能得到的就是将数据放入工作区
系统也是离散的
【问题讨论】:
我需要从我的 simulink 模型中获取数据,将其写入 txt 文件,让另一个程序读取它,并且每 0.008 秒一次。
有什么办法吗?我所能得到的就是将数据放入工作区
系统也是离散的
【问题讨论】:
您应该使用To File block 将数据保存到磁盘。它将为您计算出正确的缓冲区大小等,并将数据写入磁盘。您只需从其他程序进行轮询即可获取新数据。
8 毫秒通常不足以证明磁盘 IO 的开销是合理的,因此 To File 块需要更多的时间才能写入磁盘,而您的其他程序需要更多的时间才能读取。这显然会引入延迟。
如果您想要更低延迟的解决方案,请考虑使用 DSP System Toolbox 库中的 UDP 或 TCP 通信块。
【讨论】:
当然,没有更多细节是不可能说什么的。
多少数据?什么操作系统?如果你“错过”会怎样?文件在什么类型的磁盘上?它真的必须是磁盘上的文件吗,你不能使用例如管道或其他东西以避免撞击磁盘? “其他程序”与数据有什么关系?
8 毫秒对于磁盘执行任何操作来说并不是很多时间,您基本上会假设所有访问都在缓存中以便工作,因此将磁盘排除在外。使用管道或 RAM 磁盘。
8 毫秒对于典型的桌面操作系统来说也不算多。
【讨论】: