主要内容

处理大数据

这个例子展示了如何仿真软件模型处理大数据作为输金宝app入和输出的模拟。

描述的例子

大数据指的是太大的数据加载到系统内存中。

金宝app仿真软件可以产生大数据作为模拟输出和使用大数据作为模拟输入。处理大数据的输入和输出,整个数据存储在一个硬盘MAT-file。只有小块的数据加载到系统内存随时在模拟。这种方法被称为流。金宝app仿真软件可以从MAT-file和流数据。流媒体解决内存问题,因为硬盘的容量通常是大于随机存取存储器的容量。

这个例子展示了如何处理大数据在仿真软件模拟。金宝app日志文件功能用于大数据流作为输出的模拟。大数据流从文件然后供应作为一个模拟输入。

设置日志文件

流输出数据MAT-file,使日志文件。

通过选择启用日志记录文件“数据导入/导出配置参数> >日志数据集数据文件”选择。您还可以指定文件的名称,将包含结果。

使日志文件的编程方法是通过设置模型参数LoggingToFile

当日志文件上启用了一个模型,仿真模型的流直接进入MAT-file记录信号。此外,如果启用了日志记录的状态或输出和SaveFormat被指定为数据集,这些值是一样涌入MAT-file。

模拟模型

这个例子中改变一个临时目录的目录,写权限。然后调用的示例sim命令来模拟模型,日志文件。

SignalLoggingName设置参数,它指定数据集对象的名称来保存信号记录的结果,topOut。设置参数LoggingFileName,它指定的名称MAT-file,top.mat。StopTime参数被设置为5000秒。对于一个更现实的大数据示例,停止时间将是一个更大的值,这将导致更多的样本数据记录。cd (tempdir);

# # #开始连续模型参考模拟构建# # #成功更新了模型参考模拟目标:sldemo_mdlref_counter_bus构建总结模拟目标构建:模型重建行动的原因= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = sldemo_mdlref_counter_bus sldemo_mdlref_counter_bus_msf代码生成和编译。mexa64并不存在。1 1模型的建立(0模型已经更新)构建持续时间:0 h 0米21.987秒

创建一个DatasetRef对象引用MAT-file中记录的数据集

使用DatasetRef对象引用记录MAT-file生成的数据集。使用DatasetRef的好处是,引用MAT-file没有加载到内存中。DatasetRef是非常轻的包装器对象引用存储在一个文件的数据集。调用的替代负载函数在这个文件加载整个文件到内存中,这可能不可能,如果这个数据集包含大数据。

获得一个引用记录信号

您可以使用{}DatasetRef对象的索引引用单个信号在一个数据集,没有这些信号加载到内存中。例如,引用秒信号:

sig2是SimulationDatastore对象的值字段,这是一个轻量级的参考信号2的数据,存储在磁盘上:

ans = SimulationDatastore属性:ReadSize: 100 NumSamples: 50001文件名:/ tmp / Bdoc21b_1757077_108416 / tp3a4e0d10 / ex31145726 /。垫的数据预览:时间数据从______ 0秒1 5 0.1秒1 5 0.2秒2 6 0.3秒2 6 0.4秒3 7::

获得更多引用其他记录信号

这个示例使用这些记录作为输入的模拟信号参考模型。为每一个创建轻量级的引用。这些总线信号模型和生成的值字段SimulationDatastore对象的结构。每个结构反映了原始总线信号的层次结构。

创建一个新的数据集对象作为模拟输入

指定一个模拟的输入信号通过一个数据集对象。每个元素在这个数据集提供了输入数据相对应的尺寸块相同的索引。创建一个空的数据集ds然后把引用记录的信号是数字1和2的元素。

使用{}索引数据集对象分配到适当的位置的元素。

数据集内的每个元素,您可以混合信号数据的引用(例如,SimulationDatastore对象)和内存数据(例如,timeseries对象)。改变上层的饱和限制从30 - 37:

流数据输入到模拟

现在模拟参考模型sldemo_mdlref_counter_bus数据集,并使用ds作为输入。SimulationDatastore引用的对象的数据涌入没有压倒性的系统仿真。

饱和上限的数据不是流,因为信号被指定为一个内存timeseries。饱和限制的变化反映在时间6范围(信号现在变得饱和值37,而不是30)。

总结

这个例子展示了一个往返工作流的大数据和仿真。日志使用持久存储流数据从第一个模拟MAT-file。然后设置第二个模拟流文件作为输入的数据。一个更实际的例子会更大的值为模型StopTime参数,导致一个更大的记录MAT-file。第二个模拟也可以配置为StopTime更长。不过,即使有了更大的数据文件输出和输入,再模拟的内存需求保持不变!

MATLAB®工作流

SimulationDatastore允许您在MATLAB分析记录的数据增量。回到参考第二个记录信号,分配数据存储到一个新的变量来简化对它的访问。

访问的数据块

SimulationDatastore允许增量阅读的参考数据。阅读在块和由ReadSize控制财产。ReadSize的默认值是100个样本(每个样本信号的数据记录一个仿真时间步)。对于这个例子改变它到1000年。每次读取的数据存储返回的时间表表示数据。

重置SimulationDatastore读取计数器

每次读取的数据存储读取计数器。你可以重置计数器,从一开始就开始阅读:

遍历所有数据存储中的数据

使用SimulationDatastore增量访问记录在MATLAB模拟大数据的数据分析。您可以遍历整个数据记录和块:

另请参阅

相关的话题