主要内容

writeToLastMemberRead

写数据到一个数据存储的成员

描述

例子

writeToLastMemberRead (系综,名称,值)写一个或多个指定的数据名称,值对参数读取一个数据存储的成员。上次阅读成员成员最近访问使用命令。(见数据集合体状态监测和预测维护)。每一个的名字必须匹配条目的财产吗ensemble.DataVariables。写相应的功能价值整体数据存储。

  • 如果系综是一个simulationEnsembleDatastore对象,然后writeToLastMemberRead将数据写入MAT-file对应上次阅读乐团成员(ensemble.LastMemberRead)。

  • 如果系综是一个fileEnsembleDatastore对象,然后writeToLastMemberRead使用函数确定的属性ensemble.WriteToMemberFcn写数据。如果属性没有定义,那么writeToLastMemberRead生成一个错误。

这个语法时不可用ReadSize的属性系综大于1。使用writeToLastMemberRead(合奏,数据)代替。

writeToLastMemberRead (系综,数据)将一个表中的数据写入上一次读书乐团成员。表变量必须匹配条目的属性ensemble.DataVariables

例子

全部折叠

你可以在一个数据存储过程数据和派生变量添加到乐团成员。对于这个示例,过程变量值来计算标签表明乐团成员是否包含数据获取与错误。然后添加标签。

对于这个示例,使用下面的代码来创建一个simulationEnsembleDatastore对象使用数据之前通过运行仿真软件生成®模型在各种故障值。金宝app(见generateSimulationEnsemble)。套装包括五个不同的仿真数据模型的参数值,ToothFaultGain。模型配置日志仿真数据变量命名logsoutmat文件中存储的这个例子simEnsData.zip。由于数据的数量,解压缩操作可能需要一两分钟。

解压缩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字符串)

读取数据的第一个成员。确定哪些合奏的软件是第一个成员,并更新属性ensemble.LastMemberRead来反映相应的文件的名称。

data =阅读(整体)
data =表1×5PMSignalLogName SimulationInput SimulationMetadata转速器振动售予______________________________ _________________________________ ___________________ ___________________ {‘logsout} {1 x1仿真软件。金宝appSimulationInput} {1 x1金宝app仿真软件。SimulationMetadata} {20202 x1时间表}{20202}x1时间表

默认情况下,所有的变量存储在整体数据指定为SelectedVariables。因此,返回的表行包括所有合奏变量,包括一个变量SimulationInput,其中包含的金宝appSimulink.SimulationInput这个乐团成员对象配置仿真。该对象包含了ToothFaultGain值用于合奏团成员,存储在一个数据结构变量财产。检查这个值。(更多信息关于仿真配置存储,明白了金宝appSimulink.SimulationInput(金宝app模型))。

data.SimulationInput {1}
ans = SimulationInput属性:ModelName:“TransmissionCasingSimplified”InitialState: [0 x0 Simulink.op。金宝appModelOperatingPoint] ExternalInput: [] ModelParameters: [0 x0金宝app Simulink.Simulation。ModelParameter] BlockParameters: [0 x0金宝app Simulink.Simulation。BlockParameter]变量:[1 x1 Simulink金宝app.Simulation。变量)PreSimFcn: [] PostSimFcn: [] UserString:“
Inputvars = data.SimulationInput {1} .Variables;Inputvars.Name
ans = ' ToothFaultGain '
Inputvars.Value
ans = 2

假设您想要转换ToothFaultGain每个乐团成员为一个二进制值指标的牙齿是否存在过错。进一步假设您知道从你的经验与系统tooth-fault增益值小于0.1级小到可以被认为是健康的操作。这个乐团的增益值转换成一个指标,是0(无过错)-0.1 <获得< 0.1,1(断层)。

圣= abs (Inputvars.Value) < 0.1;

添加新的tooth-fault指标对应的整体数据,首先扩展的列表数据变量的套装包括一个变量指标。

ensemble.DataVariables= [ensemble.DataVariables;“ToothFault”];ensemble.DataVariables
ans =6 x1字符串“SimulationInput”“PMSignalLogName SimulationMetadata”“转速器”“振动”“ToothFault”

这个操作在概念上相当于合奏的表中添加一列数据。现在,DataVariables包含新变量名称、派生值分配给该列的成员使用writeToLastMemberRead

writeToLastMemberRead(合奏,“ToothFault”、圣);

在实践中,您想要添加tooth-fault指标总体中每一个成员。,重置合奏数据存储到未读状态,以便下一个读操作开始在第一个乐团成员。然后,遍历所有乐团成员,计算ToothFault对于每一个成员和附加。的重置操作不会改变ensemble.DataVariables,所以“ToothFault”仍然存在在那个列表中。

重置(套装);圣= false;hasdata(整体)数据=阅读(套装);InputVars = data.SimulationInput {1} .Variables;TFGain = InputVars.Value;圣= abs (TFGain) < 0.1;writeToLastMemberRead(合奏,“ToothFault”、圣);结束

最后,指定新tooth-fault指标在整体数据存储作为一个条件变量。您可以使用此名称来跟踪和引用变量在总体数据代表的条件生成的数据成员。

ensemble.ConditionVariables= {“ToothFault”};ensemble.ConditionVariables
ans = " ToothFault "

您可以添加新的变量ensemble.SelectedVariables当你想读出来进行进一步分析。例如显示更多的方法来处理和分析数据存储在一个simulationEnsembleDatastore对象,看到利用仿真软件金宝app生成故障数据

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

%创建指向数据文件来完成整体数据存储在当前文件夹解压缩fileEnsData.zip%提取压缩文件位置= pwd;扩展=“.mat”;fensemble = fileEnsembleDatastore(位置、扩展);%指定数据和条件变量fensemble。DataVariables = [“gs”;“老”;“负载”;“速度”];fensemble。ConditionVariables =“标签”;%为读写可变数据配置与功能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 / Bdoc23a_2213998_1396526 / tp118ca88d / 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

输入参数

全部折叠

整体数据存储变量添加数据,指定为:

writeToLastMemberRead将数据写入读取指定的合奏,成员确定的LastMemberRead财产的合奏。上次阅读乐团成员成员最近访问使用命令。(见数据集合体状态监测和预测维护)。

新数据写入当前乐团成员,指定为一个。例如,假设您有两个值计算,您想要添加到当前成员:一个向量存储为MATLAB®工作空间变量Afilt和一个标量存储Amean。使用下面的命令来构建数据

data =表(Afilt Amean,“VariableNames”,{“Afilt”,“Amean”});

表中的行数必须匹配ReadSize的属性系综。默认情况下,ReadSize= 1,你写一个表行一个乐团成员。当您配置系综一次读取多个成员,您必须编写相同数量的成员。例如,如果ReadSize= 3,然后数据是一个三横列表格。

限制

  • 当你使用simulationEnsembleDatastore管理数据在一个偏远的位置,比如云存储使用Amazon S3™(简单存储服务),Windows Azure®Blob存储和Hadoop®分布式文件系统(HDFS™),你不能使用writeToLastMemberRead将数据添加到集合数据存储。

版本历史

介绍了R2018a