主要内容

用测量数据文件整体数据存储

在预见性维护算法设计中,你经常处理大型数据集的收集系统在不同条件下的操作。的fileEnsembleDatastore对象可以帮助您管理和与这些数据交互。对于这个示例,创建一个fileEnsembleDatastore对象指向整体数据在磁盘上。配置功能,读取数据和将数据写入。

数据文件的结构

对于本例,您有两个数据文件包含健康从轴承系统运行数据,baseline_01.matbaseline_02.mat。你也有三个数据文件包含错误的数据从相同的系统,FaultData_01.mat,FaultData_02.mat,FaultData_03.mat。在实践中你可能有更多的数据文件。

每一个数据文件包含一个数据结构,轴承。加载和从第一个健康检查数据结构数据集。

解压缩fileEnsData.zip%提取压缩文件负载baseline_01.mat轴承
轴承=结构体字段:sr: 97656 g (5000 x1双):负载:270:25

加速度计的结构包含一个矢量数据gs的采样率被记录的数据,其他数据变量。

整体数据存储创建和配置文件

处理这些数据对预测维护算法设计,首先创建一个文件集合数据存储指向数据文件在当前文件夹。

fensemble = fileEnsembleDatastore (pwd,“.mat”);

与系综中的数据之前,您必须创建函数告诉软件如何处理数据文件读取变量到MATLAB®工作区和回写数据文件。对于这个示例,使用下面提供的功能:

  • readBearingData——提取请求从一个结构变量,轴承和其他变量存储在文件中。这个函数还解析文件名的故障状态数据。函数返回一个表包含一个表行变量为每个请求的变量。

  • writeBearingData——结构,写出其变量数据文件存储作为单独的变量。

分配这些功能ReadFcnWriteToMemberFcn分别套装的属性数据存储。

fensemble。ReadFcn= @readBearingData; fensemble.WriteToMemberFcn = @writeBearingData;

最后,设置属性的整体识别数据变量和条件变量。

fensemble.DataVariables= [“gs”;“老”;“负载”;“速度”];fensemble。ConditionVariables = [“标签”;“文件”];

检查合奏。函数和变量名称分配给适当的属性。

fensemble
fensemble = fileEnsembleDatastore属性:ReadFcn: @readBearingData WriteToMemberFcn: @writeBearingData DataVariables: [4 x1字符串]IndependentVariables: [0 x0字符串]ConditionVariables: [2 x1字符串]SelectedVariables: [0 x0字符串]ReadSize: 1 NumMembers: 5 LastMemberRead: [0 x0字符串)文件:[5 x1字符串)

读取数据从乐团成员

告诉分配的函数writeToLastMemberRead命令如何相互作用构成了整体数据存储的数据文件。因此,当你调用命令,它使用readBearingData阅读所有的变量fensemble.SelectedVariables

指定变量的读,读他们的第一个成员。的命令读取数据从第一个乐团成员到一个表行MATLAB的工作区。先读软件确定哪些乐团成员。

fensemble.SelectedVariables= [“文件”;“标签”;“gs”;“老”;“负载”;“速度”];data =阅读(fensemble)
data =1×6表标签文件gs sr售予_____ _____ _____负荷率________ * * *“错误”“FaultData_01”{5000 x1双}48828 0 25

乐团成员写入数据

假设您想要分析加速度计数据gs通过计算其功率谱,然后写回合奏的功率谱数据。为此,首先从表中提取数据,计算频谱。

gsdata = data.gs {1};sr = data.sr;[pdata, fpdata] = pspectrum (gsdata sr);pdata = 10 * log10 (pdata);%转换为数据库

你可以写频率向量fpdata和功率谱pdata数据文件作为独立的变量。首先,新变量添加到集合数据存储中的数据变量的列表。

fensemble.DataVariables= [fensemble.DataVariables;“频率”;“谱”];fensemble.DataVariables
ans =6 x1字符串“gs”“sr”“负载”“率”“频率”“谱”

接下来,向文件写入新值对应于上一次读书乐团成员。当你打电话writeToLastMemberRead,它将数据转换为结构和调用fensemble.WriteToMemberFcn写数据到文件。

writeToLastMemberRead (fensemble“频率”fpdata,“谱”,pdata);

您可以添加新的变量fensemble.SelectedVariables如有需要,或其他属性识别变量。

调用再从下一个文件中读取数据的整体数据存储和更新属性fensemble.LastMemberRead

data =阅读(fensemble)
data =1×6表标签文件gs sr售予_____ _____ _____负荷率________ * * *“错误”“FaultData_02”{5000 x1双}48828 50 25

你可以确认这个数据从不同的成员负载表中的变量。在这里,它的值是50,而在前面读的成员,这是0。

从所有的乐团成员批量转换数据

你可以重复处理步骤来计算,附加的频谱乐团成员。在实践中,它是更有用的自动化过程,阅读、加工、写入数据。为此,重置合奏数据存储状态没有数据被读取。(重置操作不会改变fensemble.DataVariables,其中包含你已经添加了两个新的变量。)然后循环通过系综和执行读取、过程,并为每个成员编写步骤。

重置(fensemble)hasdata (fensemble)数据=阅读(fensemble);gsdata = data.gs {1};sr = data.sr;[pdata, fpdata] = pspectrum (gsdata sr);writeToLastMemberRead (fensemble“频率”fpdata,“谱”,pdata);结束

hasdata命令返回当乐团的每个成员被阅读。现在,在乐团包括每个数据文件光谱频率变量由加速度计数据的文件。您可以使用类似的技术,从整体循环提取和处理数据文件当你开发一个预见性维护算法。为例详细说明文件的使用整体数据存储在算法开发过程中,明白了滚动轴承故障诊断。这个例子也显示了使用并行计算工具箱™加快处理更大的整体。

确认文件中的派生变量存在整体数据存储,读取从第一和第二乐团成员。为此,再次重置合奏,新变量添加到选定的变量。计算派生值之后,在实践中,它可以是有用的只读这些值没有重读未加工的数据,这可以在内存中重要的空间。对于这个示例,阅读选定的变量,包括新变量,但不包括未加工的数据,gs

重置(fensemble) fensemble。SelectedVariables = [“标签”,“负载”,“频率”,“谱”];data1 =阅读(fensemble)
data1 =1×4表标签加载频率谱________ ____售予售予”错误“0 {4096 x1双}{4096 x1双}
data2 =阅读(fensemble)
data2 =1×4表标签加载频率谱________ ____售予售予50“错误的”{4096 x1双}{4096 x1双}

另请参阅

||

相关的话题