读
从一个数据存储读取数据成员
描述
使用这个函数读取数据从整体数据存储状态监测和预测维护。
例子
从乐团成员提取存储变量的子集
一般来说,您使用读
命令来提取数据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
对象指定所有这些变量数据变量和选择变量,如图所示DataVariables
和SelectedVariables
属性。
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}
确认data1
和data2
包含来自不同的乐团成员的数据,研究不同模型参数的值,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}
输入参数
系综
- - - - - -整体数据存储
fileEnsembleDatastore
对象|simulationEnsembleDatastore
对象
整体数据存储读取指定为:
simulationEnsembleDatastore
对象-读
读取下一个乐团成员。fileEnsembleDatastore
对象-读
使用函数中指定ensemble.ReadFcn
属性来读下一个乐团成员。(关于整体数据存储与文件的更多信息,参见fileEnsembleDatastore
)。
在这两种情况下,读
返回一个表,其中包含所有的变量中指定ensemble.SelectedVariables
。
输出参数
数据
——选择从乐团成员变量
表
选择变量的乐团成员,作为一个返回表
。表变量选择的变量,和表数据值从整体读取数据。默认情况下,读
一次读取一个乐团成员,并返回一个表行。
读多个乐团成员,设置ReadSize
的属性系综
一个值大于1。例如,如果您设置ReadSize
3,然后读
读取下一个乐团成员和返回一个表3行。如果少于ReadSize
成员都是未读的读
返回一个表和尽可能多的行有剩下的成员。例如,看到的阅读在一个操作多个乐团成员。避免设置ReadSize
等一个较大的值在装载数据内存耗尽的风险。
版本历史
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。