数据分析是任何状态监测和预测维护活动的心脏。预知维修工具箱™提供了工具称为合奏数据存储创建,标记和管理所需的预测性维护算法的设计往往较大,复杂的数据集。
该数据可以来自测量上使用传感器诸如加速度计,压力计,温度计,高度计,电压表,转速表和系统。例如,你可能有机会获得从测量数据:
系统正常运行
在故障状态的系统操作
系统运行寿命纪录(运行到出现故障数据)
对于算法设计,您还可以使用运行Simulink生成的模拟数据金宝app®各种操作和故障情况下系统的建模。
无论是使用测得的数据,生成的数据,或二者,经常有许多信号,测距在时间跨度或多个时间跨度。您还可能有许多机器信号(例如,来自100个独立引擎测量所有生产均达到同一规格)。你可能有一个代表既健康运行和故障情况的数据。在任何情况下,设计的算法来预测维护需要整理和分析大量数据,同时跟踪的数据是该系统和条件。
乐团数据存储可以帮助您与这些数据的工作,无论是在本地或远程位置保存,如使用Amazon S3™(简单存储服务),Windows Azure云存储®Blob存储,和Hadoop®分布式文件系统(HDFS™)。
组织和预测性维护工具箱管理多方面的数据集的主要单位是数据集成。一个合奏是数据集,通过测量或变化的条件下模拟系统中创建的集合。
例如,考虑一个传动齿轮箱系统,其中有一个用来测量振动的加速度计和一个用来测量发动机轴旋转的转速计。假设你让引擎运转五分钟,然后把测量到的信号作为时间的函数记录下来。你还要记录引擎的使用年限,以行驶里程来计算。这些测量产生以下数据集。
现在,假设你有许多相同引擎的车队,并从所有这些记录数据。这样做产生了一个家庭的数据集。
数据集的这家是一个合奏,并在合奏每一行是一个会员的合奏。
集成中的成员是相关的,因为它们包含相同的数据变量。例如,在演示的集成中,所有成员都包含相同的四个变量:引擎标识符、振动和转速表信号以及引擎年龄。在这个例子中,每个成员对应于不同的机器。您的集成还可能包括同一机器在不同时间记录的数据变量集。例如,下面的插图显示了一个集成,该集成包含来自记录引擎年龄的同一引擎的多个数据集。
在实践中,对于每个集合构件中的数据通常被存储在一个单独的数据文件。因此,例如,您可能有以9,500rpm英里含21250英里发动机01中的数据的另一个文件,依此类推含发动机01中的数据一个文件。
在很多情况下,你从你的系统有没有真正的失败数据,或者只从系统故障条件的限制数据。如果你有一个接近实际系统的行金宝app为Simulink模型,可以在各种条件下反复模拟模型和记录仿真数据生成的数据集合。例如,您可以:
变化参数值,以反映故障的存在或不存在。例如,使用一个非常低的电阻值来模拟一个短路。
注入信号的缺点。测量信号中的传感器漂移和干扰会影响测量数据的值。您可以通过向模型添加适当的信号来模拟这种变化。例如,您可以向传感器添加偏移量来表示漂移,或者通过在模型中的某个位置注入信号来模拟扰动。
系统动力学变化。控制元件行为的方程式可能因正常和故障操作而改变。在这种情况下,可以将不同的动态实现为相同组件的变体。
例如,假设您有一个描述齿轮箱系统的Simulink模型。金宝app该模型包含一个参数,该参数表示振动传感器中的漂移。您可以在不同的传感器漂移值下模拟该模型,并配置该模型来记录每个模拟的振动和转速表信号。这些模拟产生了一个涵盖了一系列操作条件的集成。每个集成成员对应一个模拟,并在一组特定条件下记录相同的数据变量。
该generateSimulationEnsemble
命令有助于产生从在其中可以通过改变模型的某些方面模拟故障条件的模型这样的数据集。
您的集合中的变量有不同的用途,因此可以分为几种类型:
数据变量- 集合成员,包括测得的数据和派生数据您用于预测性维护算法分析和发展的主要内容。例如,在示出的齿轮箱合奏,振动
和转速表
是数据变量。数据变量还可以包括导出的值,例如信号的平均值,或在信号频谱的峰值大小的频率。
独立变量- 在合奏识别或订购部件的变量,如时间戳,进行操作时数,或机器标识符。在被测齿轮箱数据的合奏,年龄
是一个独立的变量。
条件变量- 描述该故障状况或合奏构件的操作条件的变量。条件变量可以记录存在或不存在故障状态的,或其他操作条件,例如环境温度。在模拟齿轮箱数据的合奏,SensorDrift
是条件变量。条件变量也可以导出的值,例如为编码多故障和操作条件的单个标量值。
实际上,您的数据变量、独立变量和条件变量都是不同的变量集。
随着预测性维护工具箱,您管理和交互使用集成数据合奏数据存储对象。在MATLAB®时间序列数据通常存储为矢量或时间表
。其它数据可以被存储作为标量值(如发动机年龄),逻辑值(例如,是否存在故障或不),字符串(例如一个标识符),或表格。您的合奏可以包含是记录您的应用程序有用的任何数据类型。在合奏中,通常存储的数据在一个单独的文件中的每个成员。乐团数据存储对象帮助您组织,标签和过程集成的数据。你使用哪一种整体数据存储对象取决于你是否与测量数据在磁盘上的工作,或从Simulink模型生成的模拟数据。金宝app
simulationEnsembleDatastore
对象 - 使用管理从一个仿真模型产生的数据金宝appgenerateSimulationEnsemble
。
fileEnsembleDatastore
对象 - 管理存储在磁盘上的任何其他集合的数据,例如测量数据。
合奏数据存储对象包含有关存储在磁盘上的数据信息,并允许您与数据进行交互。你可能会使用的命令,例如读
,其提取从合奏数据到MATLAB工作区中,并writeToLastMemberRead
,其将数据写入合奏。
当你与合奏工作,该软件跟踪哪些集合构件的它最近读的。你打电话时读
,软件选择下一个成员阅读和更新LastMemberRead
合奏的属性,以反映该成员。当你下一次调用writeToLastMemberRead
,软件写入该成员。
例如,考虑模拟齿轮箱数据的集成。当你用generateSimulationEnsemble
中,来自每个仿真运行的数据被记录到磁盘上的一个单独的文件中。然后创建一个simulationEnsembleDatastore
反对它指向这些文件中的数据。可以设置合奏对象的属性的变量成组分离如独立变量或条件变量。
假设你现在从集合对象读取一些数据,合奏
。
数据=读(合奏);
第一次打电话读
上的合奏,该软件指定的合奏一些构件作为第一构件阅读。软件读选择从成员变量到MATLAB工作区中,成表
叫数据
。(所选的变量是您在SelectedVariables
的属性合奏
。)软件更新属性ensemble.LastMemberRead
与该成员的文件名。
直到你打电话读
同样,最后组成员阅读指定停留其中整体部件,所述软件分配它。因此,例如,假设您处理数据
计算一些导出变量,如在振动信号的频谱峰值的频率,VibPeak
。您可以将导出值追加到它所对应的集合构件,这仍然是最后一个成员阅读。要做到这一点,首先展开数据变量的列表合奏
包括新的变量。
ensemble.DataVariables = [ensemble.DataVariables;“VibPeak”]
此操作等效于将一个新列的合奏,如图在下一个示意图。新变量被丢失的值最初填充在每个系综。(看到失踪
了解更多信息。)
现在,使用writeToLastMemberRead
在最后一个成员的新变量的值填充读取。
newdata =表(VibPeak,'VariableNames'{'VibPeak'});writeToLastMemberRead(合奏,newdata);
在合奏,新的值存在,并且相同的构件上最后部件读取指定遗迹。
你叫下一次读
在合奏时,它确定下一个部件来读取,并且从该构件返回所选变量。最后一个成员读取指定的进步,以该成员。
该hasdata
命令告诉你是否乐团的所有成员都被读取。该重启
命令清除所有成员“改为”称号,这样到下次调用读
作用于合奏组的第一个成员。重置操作将清除LastMemberRead
合奏的财产,但不改变其他合奏性能,如DataVariables
要么SelectedVariables
。它也不会改变你写回合奏的任何数据。举一个例子,与所生成的数据的集合示出了更多的相互作用,见生成和使用模拟数据集成。
虽然前面的讨论中使用的模拟合奏作为一个例子,最后成员所读取的指定行为以同样的方式测量数据的乐团,你与管理fileEnsembleDatastore
。然而,当你与测量数据的工作,你必须提供的信息告诉读
和writeToLastMemberRead
命令你的数据是如何存储和磁盘上进行组织。
的属性来实现fileEnsembleDatastore
对象的功能,你写。设置ReadFcn
属性来描述如何读取数据文件中的数据变量的函数的句柄。你打电话时读
,它使用此功能来访问下一个集合文件,并从中读取指定的变量SelectedVariables
集合数据存储的属性。类似地,你使用WriteToMemberFcn
财产fileEnsembleDatastore
目的是提供一种描述如何将数据写入到所述集合的一个成员的功能。
对于实施例,显示与磁盘上的测量数据的集合这些相互作用,请参见:
在预测性维护工具箱套装是一家专业类型的数据存储MATLAB(见入门与数据存储(MATLAB))。该读
和writeToLastMemberRead
命令有行为是特定于数据存储合奏。此外,与合奏数据存储,因为它们不与其他MATLAB数据存储相同以下MATLAB数据存储的工作模式。
hasdata
- 确定合奏数据存储是否有尚未被读取的成员。
重启
- 恢复合奏数据存储到没有成员尚未被读取的状态。在这种状态下,没有当前成员。使用此命令重读数据你已经从合奏读取。
高
- 转换合奏的数据存储到高的表。(看到对于超出的内存数据高大数组(MATLAB))。
进展
- 确定合奏数据存储的比例已读。
划分
-将一个集合数据存储划分为多个集合数据存储进行并行计算。(对于集合数据存储,请使用分区(n, ds指数)
句法。)
numpartitions
- 确定数据存储分区的数量。
默认情况下,读
从一次一个集合构件命令返回的数据。到从一个以上的合奏构件在一个时间过程数据,设置ReadSize
合奏数据存储对象的值大于1。例如,如果你设置ReadSize
为3,则每次调用读
返回一个包含三行的表,并指定三个合集成员作为最后一次读取的成员。有关详细信息,请参见fileEnsembleDatastore
和simulationEnsembleDatastore
参考页。
某些功能,比如很多统计分析功能,可以在高大的表中的数据,让您与由数据存储备份的存储器外的数据进行工作操作。您可以从数据合奏数据存储转换成一个高大的表使用这种分析的命令使用高
命令。
在处理大型集成数据(如长时间序列信号)时,通常在集成中逐个处理它们读
和writeToLastMemberRead
。处理该数据来计算,可以作为该合奏构件的有用条件指示符的数据的一些功能。
通常情况下,你的条件指示符是标量值或比原始未处理信号占用在存储器空间较少的某个其它值。因此,一旦你写这样的值到您的数据存储,您可以使用高
和收集
提取条件指示符到内存中以便进一步的统计处理,诸如训练分类器。
例如,假设集合中的每个成员都包含时间序列振动数据。对于每个成员,读取集合数据并计算一个条件指示器,该条件指示器是从信号分析过程派生出来的标量值。将派生的值写回成员。假设派生的值位于一个称为的集合变量中指示器
和含有约合奏构件(如故障状况)信息的标签是在一个所谓的可变标签
。对合奏执行进一步的分析,可以阅读条件指示器和标签到存储器中,而不会在较大的振动数据读取。要做到这一点,设置SelectedVariables
要读取的变量的集合的属性。然后使用高
创建所选变量的高大表,收集
到读出的值装入内存。
ensemble.SelectedVariables = [“指示符”,“标签”]。featureTable =高(合奏);featureTable =聚集(featureTable);
将得到的可变featureTable
是驻留在MATLAB工作区中的一个普通表。您可以使用任何支持MATLAB表数据类型的函数来处理它。金宝app
对于示出了使用实例高
和收集
操作进行预测性维护分析集合数据,请参见:
合奏组织数据后,预测性维护算法设计的下一步是对数据进行预处理,以清洁或改变它。然后,你进一步处理该数据以提取条件指示符,其是数据的功能,可以使用区分故障操作健康。欲了解更多信息,请参见:
fileEnsembleDatastore
|generateSimulationEnsemble
|读
|simulationEnsembleDatastore