simulationEnsembleDatastore
管理整体数据生成的generateSimulationEnsemble
或者通过日志仿真数据万博1manbetx
描述
一个simulationEnsembleDatastore
对象是一个数据存储专门用于开发状态监测算法和预见性维护使用模拟数据。
该对象指定的数据变量,自变量,条件变量存储在MATLAB的集合®数据文件(mat文件)。数据文件包含万博1manbetxSimulink.SimulationData.Dataset
变量的结果在仿真软件中记录数据万博1manbetx®模型模拟。
对于一个详细示例说明模拟整体数据存储的使用,看看生成和使用模拟数据。通用数据信息集合体的预见性维护工具箱™,明白了数据集合体状态监测和预测维护。
创建
创建一个simulationEnsembleDatastore
对象:
生成和日志从仿真软件仿真数据模型。万博1manbetx你可以使用
generateSimulationEnsemble
或任何其他的日志记录模拟到磁盘。创建一个
simulationEnsembleDatastore
对象指向生成的模拟数据使用simulationEnsembleDatastore
命令(在下面描述)。
如果你有以前生成的模拟数据generateSimulationEnsemble
或其他方法,您可以使用创建函数simulationEnsembleDatastore
创建一个新的模拟整体数据存储对象。
语法
描述
创建一个模拟合奏从数据生成之前使用系综
= simulationEnsembleDatastore (位置
)generateSimulationEnsemble
在指定的文件夹中位置
。函数标识整体变量在生成的数据信息存储在mat文件生成的。函数填充DataVariables
和SelectedVariables
的属性系综
这些集合变量的名字。
输入参数
位置
- - - - - -文件路径
字符串|特征向量
文件路径的位置存储仿真数据,指定为一个字符串或一个字符向量。文件路径可以是任何位置由MATLAB数据存储支持,包括一个IRI路径万博1manbetx指向远程位置。然而,当你使用simulationEnsembleDatastore
管理远程数据,不能使用writeToLastMemberRead
将数据添加到集合数据存储。关于工作的更多信息在MATLAB与远程数据,看看使用远程数据。
例子:pwd + " \ simResults "
signallog
- - - - - -变量名的记录信号
字符串|特征向量
变量名的记录信号,指定为一个字符串或一个字符向量。这个输入参数告诉simulationEnsembleDatastore
数据变量存储mat文件包含记录的仿真数据。这个变量名称中指定信号记录
配置参数的仿真软件模型生成的数据。万博1manbetx当你使用generateSimulationEnsemble
生成仿真数据的整体,每个生成MAT-file包含一个变量,PMSignalLogName
,指定的变量名称记录信号。
例子:“logsout”
属性
DataVariables
- - - - - -数据变量
字符串数组记录信号的名字(默认)|字符串数组
系综中变量的数据,指定为字符串数组。数据变量是乐团的成员的主要内容。数据变量可以包括测量数据或派生数据分析和发展的预见性维护算法。例如,您的数据变量可能包括测量或模拟振动等振动信号和派生值平均值或峰值振动频率。在实践中,您的数据变量,自变量,条件变量都是不同类型的变量。
simulationEnsembleDatastore
设置的初始值DataVariables
的名字记录信号的数据生成generateSimulationEnsemble
。simulationEnsembleDatastore
还增加了变量SimulationInput
和SimulationMetadata
来DataVariables
。这些变量包含信息仿真是如何执行的。
您还可以指定DataVariables
使用单元阵列的特征向量,如{“振动”;“转速计”}
,但变量名总是存储为字符串数组,(“振动”;“转速器”)
。如果你指定变量名的一个矩阵,矩阵是一个列向量夷为平地。
IndependentVariables
- - - - - -独立变量的合奏
[]
(默认)|字符串数组
独立变量的合奏,指定为字符串数组。你通常使用独立变量集合的成员。例子是时间戳,操作数小时,或行驶里程。将此属性设置为变量的名字在你的合奏。在实践中,您的数据变量,自变量,条件变量都是不同类型的变量。
您还可以指定IndependentVariables
使用单元阵列的特征向量,如{“时间”,“年龄”}
,但变量名总是存储为字符串数组,(“时间”,“年龄”)
。如果你指定变量名的一个矩阵,矩阵是一个列向量夷为平地。
ConditionVariables
- - - - - -条件变量的合奏
[]
(默认)|字符串数组
条件变量的合奏,指定为字符串数组。使用条件变量标签在乐团成员根据故障状态或其他操作条件下,乐团成员收集。在实践中,您的数据变量,自变量,条件变量都是不同类型的变量。
您还可以指定ConditionVariables
使用单元阵列的特征向量,如{“GearFault”;“温度”}
,但变量名总是存储为字符串数组,(“GearFault”;“温度”)
。如果你指定变量名的一个矩阵,矩阵是一个列向量夷为平地。
SelectedVariables
- - - - - -变量来读
字符串数组记录信号的名字
(默认)|字符串数组
从整体读取变量,指定为一个字符串数组。使用这个属性来指定哪些变量提取时使用MATLAB工作空间读
从整体命令来读取数据。读
返回一个表行包含一个表为每个名称中指定的变量SelectedVariables
。例如,假设你有一个乐团,系综
包含六个变量,你要读的只有两人,振动
和FaultState
。设置SelectedVariables
财产和调用读
。
ensemble.SelectedVariables= [“振动”;“FaultState”];data =阅读(整体)
SelectedVariables
可以任意组合的变量DataVariables
,ConditionVariables
,IndependentVariables
属性。如果SelectedVariables
是空的,读
生成一个错误。
simulationEnsembleDatastore
设置的初始值SelectedVariables
的名字记录信号生成的数据generateSimulationEnsemble
。
您可以指定SelectedVariables
使用单元阵列的特征向量,如{“振动”;“转速计”}
,但变量名总是存储为字符串数组,(“振动”;“转速器”)
。如果你指定变量名的一个矩阵,矩阵是一个列向量夷为平地。
ReadSize
- - - - - -成员数目来读
1(默认)|正整数
数量的成员从整体数据存储,读取指定为一个正整数,小于在乐团成员的总数。默认情况下,读
命令返回一行表包含数据从一个乐团成员。读取数据从多个成员在一个读
操作时,将此属性设置为一个整数值大于1。例如,如果ReadSize
= 3,然后读
返回一个三横列表每行包含数据从不同的乐团成员。如果少于ReadSize
成员都是未读的读
返回一个表和尽可能多的行有剩下的成员。
整体数据存储属性LastMemberRead
包含所有文件的名称在最近的阅读读
操作。因此,例如,如果ReadSize
= 3,然后一个读
操作集LastMemberRead
一个字符串向量包含三个文件的名字。
当你使用writeToLastMemberRead
,指定数据写一个表的行数等于ReadSize
。的writeToLastMemberRead
命令更新指定的成员LastMemberRead
每个指定文件,写一个表行。
改变了ReadSize
财产也重置合奏的未读状态。例如,假设您读一些乐团成员一次(ReadSize
= 1),然后改变ReadSize
为3。下一个读
操作返回的数据前三个乐团成员。
NumMembers
- - - - - -乐团的成员数量
正整数
这个属性是只读的。
乐团的成员数量,指定为一个正整数。
LastMemberRead
- - - - - -文件名最后的乐团成员阅读
”“
(默认)|字符串|字符串数组
这个属性是只读的。
文件名最后的读入MATLAB工作区,乐团成员指定为一个字符串。当你使用读
命令从一个数据存储,读取数据的软件决定哪个乐团成员阅读下,并从相应的读取数据文件。的LastMemberRead
属性包含最近的路径读取文件。整体数据存储时尚未阅读,或被重置,LastMemberRead
是一个空字符串。
当你打电话writeToLastMemberRead
添加数据整体数据存储,这个函数写入文件中指定LastMemberRead
。
默认情况下,读
读取数据时(从一个乐团成员ReadSize
房地产的整体数据存储时1)。ReadSize
> 1,LastMemberRead
是一个字符串数组,其中包含所有文件的路径看在最近吗读
操作。
文件
- - - - - -整体数据存储的文件列表
字符串向量
这个属性是只读的。
整体数据存储的文件列表,指定为一个列向量长度的字符串NumMembers
。每个条目包含在数据存储到一个文件的完整路径。文件的顺序读
命令读取乐团成员。
例子:[" C: \ \ Data_01.csv数据”;“C: \ Data \ Data_02.csv”;“C: \ \ Data_03.csv数据”)
对象的功能
的读
和writeToLastMemberRead
功能是专门用于预测维修工具箱合奏数据。其他功能,例如重置
和hasdata
使用,是相同的数据存储
在MATLAB对象。提取特定的合奏乐团成员到一个更小或更特定的数据存储,使用子集
。所有成员的数据转移到一个表或与一个命令单元阵列,使用readall
。划分一个数据存储,使用分区(n, ds指数)
语法的分区
函数。
读 |
从一个数据存储读取数据成员 |
writeToLastMemberRead |
写数据到一个数据存储的成员 |
子集 |
创建新的整体数据存储从现有整体数据存储的子集 |
重置 |
数据存储重置为初始状态 |
hasdata |
确定数据可用来读 |
进步 |
确定有多少数据被读取 |
readall |
读取所有数据存储中的数据 |
numpartitions |
数量的数据存储分区 |
分区 |
分区数据存储 |
高 |
创建高数组 |
isPartitionable |
确定是否可分区的数据存储 |
isShuffleable |
确定是否shuffleable数据存储 |
例子
产生的故障数据
生成一个模拟整体数据存储的数据代表一个机器操作在故障条件下通过模拟仿真软件®机器而不同故障参数的模型。万博1manbetx
加载仿真软件模型。万博1manbetx这个模型是一个简化版的变速箱模型中描述利用仿真软件万博1manbetx生成故障数据。在这个例子中,只有一个故障模式建模,齿的错。
mdl =“TransmissionCasingSimplified”;open_system (mdl)
齿断层建模的干扰齿的错
子系统。干扰的大小由模型控制变量ToothFaultGain
,在那里ToothFaultGain = 0
对应于没有齿故障(健康的操作)。生成的故障数据,您使用generateSimulationEnsemble
模拟模型在不同的值ToothFaultGain
,从2到零。这个函数使用的数组万博1manbetxSimulink.SimulationInput
对象配置仿真软件模型中每一个成员。万博1manbetx每个模拟生成一个单独的乐团的成员在其自己的数据文件。创建这样一个数组,和使用setVariable
每次运行分配tooth-fault增益值。
toothFaultValues = 2:0.5:0;% 5 ToothFaultGain值为ct =元素个数(toothFaultValues): 1:1思敏(ct) = Simuli万博1manbetxnk.SimulationInput (mdl);思敏(ct) = setVariable(思敏(ct),“ToothFaultGain”toothFaultValues (ct));结束
对于这个示例,该模型已经配置日志某些信号值,振动
和转速计
(见节省使用信号测井信号数据(万博1manbetx模型))。generateSimulationEnsemble
进一步配置模型:
保存记录数据在您指定的文件夹在文件。
使用
时间表
日志格式信号。存储每个
万博1manbetxSimulink.SimulationInput
对象与相应的记录数据保存的文件。
指定一个位置为生成的数据。对于这个示例,将数据保存到一个文件夹数据
在当前文件夹。的指标状态
是1(真正的)如果所有的模拟不完整错误。
mkdir数据位置= fullfile (pwd,“数据”);(地位、E) = generateSimulationEnsemble(思敏、位置);
(03 - mar - 2023 08:26:03)运行模拟……(03 - mar - 2023 08:26:06)完成1 5模拟运行(03 - mar - 2023 08:26:08)完成2 5模拟运行(03 - mar - 2023 08:26:09)完成3 5模拟运行(03 - mar - 2023 08:26:11)完成4 5模拟运行(03 - mar - 2023 08:26:13)完成5 5模拟运行
在数据
文件夹,检查一个文件。每个文件包含下面的MATLAB®MAT-file变量:
SimulationInput
- - -万博1manbetxSimulink.SimulationInput
对象用于配置模型生成的数据文件。您可以使用此提取条件的信息(如缺陷或健康)在模拟运行。logsout
——一个数据集
对象包含所有仿真软件的数据模型配置为日志。万博1manbetxPMSignalLogName
变量的名称,包含记录的数据(“logsout”
在本例中)。的simulationEnsembleDatastore
命令使用这个名字解析文件中的数据。SimulationMetadata
——其他信息生成的模拟数据记录在文件中。
现在你可以使用生成的数据创建仿真整体数据存储。由此产生的simulationEnsembleDatastore
对象指向生成的数据。整体对象列表数据变量,默认情况下所有的变量选择阅读。检查DataVariables
和SelectedVariables
整体确认这些名称的属性。
合奏= simulationEnsembleDatastore(位置)
合奏= simulationEnsembleDatastore属性:DataVariables: [4 x1字符串]IndependentVariables: [0 x0字符串]ConditionVariables: [0 x0字符串]SelectedVariables: [4 x1字符串]ReadSize: 1 NumMembers: 5 LastMemberRead: [0 x0字符串)文件:[5 x1字符串)
ensemble.DataVariables
ans =4 x1字符串“SimulationMetadata”“SimulationInput转速器”“振动”
ensemble.SelectedVariables
ans =4 x1字符串“SimulationMetadata”“SimulationInput转速器”“振动”
您现在可以使用系综
阅读和分析生成的整体数据存储中的数据。看到simulationEnsembleDatastore
为更多的信息。
从乐团成员提取存储变量的子集
一般来说,您使用读
命令来提取数据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。
派生数据附加到乐团成员
你可以在一个数据存储过程数据和派生变量添加到乐团成员。对于这个示例,过程变量值来计算标签表明乐团成员是否包含数据获取与错误。然后添加标签。
对于这个示例,使用下面的代码来创建一个simulationEnsembleDatastore
对象使用数据之前通过运行仿真软件生成®模型在各种故障值。万博1manbetx(见generateSimulationEnsemble
)。套装包括五个不同的仿真数据模型的参数值,ToothFaultGain
。模型配置日志仿真数据变量命名logsout
mat文件中存储的这个例子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仿真软件。万博1manbetxSimulationInput} {1 x1万博1manbetx仿真软件。SimulationMetadata} {20202x1 timetable} {20202x1 timetable}
默认情况下,所有的变量存储在整体数据指定为SelectedVariables
。因此,返回的表行包括所有合奏变量,包括一个变量SimulationInput
,其中包含的万博1manbetxSimulink.SimulationInput
这个乐团成员对象配置仿真。该对象包含了ToothFaultGain
值用于合奏团成员,存储在一个数据结构变量
财产。检查这个值。(更多信息关于仿真配置存储,明白了万博1manbetxSimulink.SimulationInput
(万博1manbetx模型))。
data.SimulationInput {1}
ans = SimulationInput属性:ModelName:“TransmissionCasingSimplified”InitialState: [0 x0 Simulink.op。万博1manbetxModelOperatingPoint] ExternalInput: [] ModelParameters: [0 x0万博1manbetx Simulink.Simulation。ModelParameter] BlockParameters: [0 x0万博1manbetx Simulink.Simulation。BlockParameter]变量:[1 x1 Simulink万博1manbetx.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
对象,看到利用仿真软件万博1manbetx生成故障数据。
阅读在一个操作多个乐团成员
读取数据从多个乐团成员在一个调用中读
命令,可以使用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}
版本历史
介绍了R2018a
Abrir比如
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
第一de MATLAB
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。