主要内容

从一个数据存储读取数据成员

描述

使用这个函数读取数据从整体数据存储状态监测和预测维护。

例子

数据=阅读(系综)从乐团的成员数据存储中读取数据系综。读取变量中指定的函数SelectedVariables房地产的整体数据存储在一个表并返回它们。

如果整体没有读(或自去年成立以来重置使用重置),然后读取数据从第一个乐团的成员,由软件决定。否则,读取数据从下一个乐团成员。更新LastMemberRead房地产的整体识别最近读的成员。关于整体数据存储工作的更多信息,见数据集合体状态监测和预测维护

(数据,信息)=阅读(系综)还返回的位置信息数据读取和数据的大小。

例子

全部折叠

一般来说,您使用命令来提取数据simulationEnsembleDatastore对象的MATLAB®工作区。往往你的合奏包含更多比你需要使用特定的变量分析。使用SelectedVariables财产的simulationEnsembleDatastore对象选择变量对阅读的一个子集。

对于这个示例,使用下面的代码来创建一个simulationEnsembleDatastore对象使用数据之前通过运行仿真软件生成®(参见模型在各种故障值万博1manbetxgenerateSimulationEnsemble)。套装包括五个不同的仿真数据模型的参数值,ToothFaultGain。由于数据的数量,解压缩操作需要几分钟时间。

解压缩simEnsData.zip%提取压缩文件合奏= simulationEnsembleDatastore (pwd,“logsout”)
合奏= simulationEnsembleDatastore属性:DataVariables: x1字符串[5]IndependentVariables: [0 x0字符串]ConditionVariables: [0 x0字符串]SelectedVariables: x1字符串[5]ReadSize: 1 NumMembers: 5 LastMemberRead: [0 x0字符串)文件:[5 x1字符串)

生成的模型数据,TransmissionCasingSimplified,配置,这样生成的合奏包含变量包括加速度计数据,振动转速表的数据,转速计。默认情况下,simulationEnsembleDatastore对象指定所有这些变量数据变量和选择变量,如图所示DataVariablesSelectedVariables属性。

ensemble.DataVariables
ans =5 x1字符串“SimulationInput”“PMSignalLogName SimulationMetadata”“转速器”“振动”
ensemble.SelectedVariables
ans =5 x1字符串“SimulationInput”“PMSignalLogName SimulationMetadata”“转速器”“振动”

假设分析你想做的事,你只需要振动数据和万博1manbetxSimulink.SimulationInput对象,描述了这种成员数据模拟的条件。集ensemble.SelectedVariables你想读指定变量。的命令然后提取这些变量从当前乐团成员。

ensemble.SelectedVariables= [“振动”;“SimulationInput”];data1 =阅读(整体)
data1 =1×2表振动SimulationInput ___________________ ______________________________ {20202 x1时间表}{1 x1 Simulink.Simul万博1manbetxationInput}

data.Vibration是一个细胞包含一个数组时间表存储仿真时间和相应的振动信号。现在,您可以根据需要处理这些数据。例如,从表中提取振动数据和情节。

vibdata1 = data1.Vibration {1};情节(vibdata1.Time vibdata1.Data)标题(“振动——第一次全体成员)

图包含一个坐标轴对象。与标题振动轴对象——第一次全体成员包含一个类型的对象。

下次你打电话合奏,上一次读书成员指定进展到下一个乐团的成员(见数据集合体状态监测和预测维护)。阅读所选变量从下一个乐团的成员。

data2 =阅读(整体)
data2 =1×2表振动SimulationInput ___________________ ______________________________ {20215 x1时间表}{1 x1 Simulink.Simul万博1manbetxationInput}

确认data1data2包含来自不同的乐团成员的数据,研究不同模型参数的值,ToothFaultGain。对于每一个集合,这个值存储在变量场的SimulationInput变量。

data1.SimulationInput {1} .Variables
ans =变量属性:名称:“ToothFaultGain”值:2工作区:全局工作空间的描述:“
data2.SimulationInput {1} .Variables
ans =变量属性:名称:“ToothFaultGain”值:-1.5000工作区:全局工作空间的描述:“

这个结果证实data1从乐团成员吗ToothFaultGain= 2,data2从成员吗ToothFaultGain= -1.5

创建一个文件集合数据存储在MATLAB文件的数据存储,并配置功能告诉软件如何读取和写入数据存储。(整体数据存储配置文件的详细信息,请参阅用测量数据文件整体数据存储)。

%创建指向数据文件来完成整体数据存储在当前文件夹解压缩fileEnsData.zip%提取压缩文件位置= pwd;扩展=“.mat”;fensemble = fileEnsembleDatastore(位置、扩展);%指定数据和条件变量fensemble。DataVariables = [“gs”;“老”;“负载”;“速度”];fensemble。ConditionVariables =“标签”;%为读写可变数据配置与功能目录(fullfile (matlabroot,“例子”,“predmaint”,“主要”))%确保函数的路径fensemble。ReadFcn = @readBearingData;fensemble.WriteToMemberFcn= @writeBearingData;

功能告诉writeToLastMemberRead命令如何与数据文件组成。因此,当你调用命令,它使用readBearingData阅读所有的变量fensemble.SelectedVariables。对于这个示例,readBearingData提取请求从一个结构变量,轴承和其他变量存储在文件中。它还解析文件名的故障状态数据。

指定变量的读,读他们的第一个成员。

fensemble.SelectedVariables= [“gs”;“负载”;“标签”];data =阅读(fensemble)
data =1×3表标签gs负载________售予__“错误的”{5000 x1双}0

现在,您可以根据需要处理的数据成员。对于这个示例,计算信号的平均值存储在变量中gs。从返回的表中提取数据

gsdata = data.gs {1};gsmean =意味着(gsdata);

你可以写均值gsmean回数据文件作为一个新的变量。要做到这一点,首先扩展的列表数据变量套装包括一个变量的新值。所谓的新变量gsMean

fensemble。DataVariables = [fensemble.DataVariables;“gsMean”]
fensemble = fileEnsembleDatastore属性:ReadFcn: @readBearingData WriteToMemberFcn: @writeBearingData DataVariables: x1字符串[5]IndependentVariables: [0 x0字符串]ConditionVariables:“标签”SelectedVariables: [3 x1字符串]ReadSize: 1 NumMembers: 5 LastMemberRead:“/ tmp / Bdoc22a_1891349_68846 / tp68dc58c8 / predmaint-ex34165887 / FaultData_01。垫”文件(5 x1字符串):

接下来,编写派生的平均值相对应的文件上一次读书乐团成员。(见数据集合体状态监测和预测维护)。当你打电话writeToLastMemberRead,它将数据转换为结构和调用fensemble.WriteToMemberFcn写数据到文件。

writeToLastMemberRead (fensemble“gsMean”,gsmean);

调用再次提出了合奏last-read-member指示器到下一个文件和从文件中读取数据。

data =阅读(fensemble)
data =1×3表标签gs负载________售予__“错误的”{5000 x1双}50

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

你可以重复处理步骤来计算,附加的意思是乐团成员。在实践中,它是更有用的自动化过程,阅读、加工、写入数据。为此,重置合奏状态没有数据被读取。然后循环通过系综和执行读取、过程,并为每个成员编写步骤。

重置(fensemble)hasdata (fensemble)数据=阅读(fensemble);gsdata = data.gs {1};gsmean =意味着(gsdata);writeToLastMemberRead (fensemble“gsMean”,gsmean);结束

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

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

重置(fensemble) fensemble。SelectedVariables = [“标签”;“负载”;“gsMean”];data1 =阅读(fensemble)
data1 =1×3表标签负载gsMean ________ ________“错误的”0 -0.22648
data2 =阅读(fensemble)
data2 =1×3表标签负载gsMean ________ ________“错误的”50 -0.22937
rmpath (fullfile (matlabroot,“例子”,“predmaint”,“主要”))%重置路径

读取数据从多个乐团成员在一个调用中命令,可以使用ReadSize一个数据存储的属性。这个示例使用simulationEnsembleDatastore,但你可以使用相同的技术fileEnsembleDatastore

使用下面的代码来创建一个simulationEnsembleDatastore对象使用数据之前通过运行仿真软件模型生成各种故障值(见万博1manbetxgenerateSimulationEnsemble)。套装包括五个不同的仿真数据模型的参数值,ToothFaultGain。(因为数据量解压缩操作可能需要一两分钟。)指定要读取一些数据的变量。

解压缩simEnsData.zip%提取压缩文件合奏= simulationEnsembleDatastore (pwd,“logsout”);ensemble.SelectedVariables= [“振动”;“SimulationInput”];

默认情况下,调用在这个整体数据存储返回一个单列表,其中包含的值振动SimulationInput变量第一乐团成员。改变ReadSize属性读三个成员。

合奏。ReadSize= 3; data1 = read(ensemble)
data1 =3×2表振动SimulationInput ___________________ ______________________________ {20202 x1时间表}{1 x1 Simulink.Simul万博1manbetxationInput}{20215x1 timetable} {1x1 Simulink.SimulationInput} {20204x1 timetable} {1x1 Simulink.SimulationInput}

返回一个表三横列,每行包含的数据从一个第一,第二,第三乐团成员。也更新了LastReadMember房地产的整体数据存储到字符串数组包含三个对应的文件的路径。避免设置ReadSize值太大,内存耗尽的风险而加载数据。

如果集合包含三个或更多额外的成员,下一个操作返回的数据第四、第五和第六位成员。因为这个例子只包含五名成员的合奏,下一个操作只返回两行。

data2 =阅读(整体)
data2 =2×2表振动SimulationInput ___________________ ______________________________ {20213 x1时间表}{1 x1仿真软件。万博1manbetxSimulationInput} {20224 x1时间表}{1 x1 Simuli万博1manbetxnk.SimulationInput}

输入参数

全部折叠

整体数据存储读取指定为:

在这两种情况下,返回一个表,其中包含所有的变量中指定ensemble.SelectedVariables

输出参数

全部折叠

选择变量的乐团成员,作为一个返回。表变量选择的变量,和表数据值从整体读取数据。默认情况下,一次读取一个乐团成员,并返回一个表行。

读多个乐团成员,设置ReadSize的属性系综一个值大于1。例如,如果您设置ReadSize3,然后读取下一个乐团成员和返回一个表3行。如果少于ReadSize成员都是未读的返回一个表和尽可能多的行有剩下的成员。例如,看到的阅读在一个操作多个乐团成员。避免设置ReadSize等一个较大的值在装载数据内存耗尽的风险。

数据和乐团成员信息,作为结构返回字段:

  • 大小——表的维度数据,作为一个向量返回。例如,如果你的乐团有四个变量中指定ensemble.SelectedVariables,然后信息。大小= [1 4]

  • 文件名——路径相对应的数据文件访问乐团成员,作为字符串返回。例如,“C: \ \ Experiment1 \ fault1.mat数据”。调用还设置了LastMemberRead财产的合奏这个值。如果ReadSize的属性系综大于1,这个值是一个字符串向量包含所有访问文件的路径。

版本历史

介绍了R2018a