用测量数据文件整体数据存储
在预见性维护算法设计中,你经常处理大型数据集的收集系统在不同条件下的操作。的fileEnsembleDatastore
对象可以帮助您管理和与这些数据交互。对于这个示例,创建一个fileEnsembleDatastore
对象指向整体数据在磁盘上。配置功能,读取数据和将数据写入。
数据文件的结构
对于本例,您有两个数据文件包含健康从轴承系统运行数据,baseline_01.mat
和baseline_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
——结构,写出其变量数据文件存储作为单独的变量。
分配这些功能ReadFcn
和WriteToMemberFcn
分别套装的属性数据存储。
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双}
另请参阅
fileEnsembleDatastore
|读
|writeToLastMemberRead