主要内容

为诊断特征设计器准备矩阵数据

这个例子展示了如何准备导入的矩阵数据诊断特性设计器.首先将单个成员矩阵及其相关的错误代码转换为表格.然后,将多个表组合成一个集成表,该集成表可以作为多成员集成导入。

诊断特性设计器接受包含在单个数值矩阵中的成员数据。但是,成员表提供了更多的灵活性和易用性。

  • 使用表格,您可以将测量值嵌入为信号变量,每个变量包含一个自变量和一个或多个数据变量。对于矩阵,您只能指定一个适用于所有数据列的自变量。该应用程序可以更容易地解释表格数据。

  • 使用表,您可以指定有信息的变量名。对于矩阵,应用程序使用列号来识别数据向量。

  • 使用表,您可以为每个成员包括标量信息,例如条件变量或特征。对于矩阵,您不能将标量信息与信号信息结合起来。这个限制意味着你不能在应用程序中根据标签对数据进行分组,也不能评估特征的有效性,比如,健康的数据从不健康的数据。

集成表甚至更容易使用,因为它将所有成员表组合到一个数据集中。要导入集成表,只需导入一个项,而不需要选择多个项。

负载成员矩阵和故障代码

加载成员数据和故障代码数据。成员数据dmatall包括四组时间戳振动和转速计测量,间隔30秒。这些成员矩阵被堆叠在一个三维矩阵中。一个独立的故障码向量足球俱乐部指示每个成员是否来自健康的(0)或不健康(1)系统。

初始化tv_ensemble表,其中最终包括每个成员的时间标记数据和故障代码。

负载tvmatrixmembersdmatall足球俱乐部

将矩阵转换为表格

首先将单个成员矩阵转换为包含测量信号和成员故障代码时间表的表。提取第一个元素矩阵dmatall

Memmat = dmatall(:,:,1);

的前两列memmat包含被测振动信号。第三和第四包含测量的速信号。每个信号由一个自变量(时间)和一个数据变量(振动或转速测量)组成。将这些信号提取到独立的矩阵中vibmat而且tachmat

Vibmat = memmat(:,[1 2]);Tachmat = memmat(:,[3 4]);

将每个信号转换为a时间表.首先,将每个信号分离为时间和数据组件。使用函数将时间戳转换为时间表的持续时间变量。然后输入信号分量array2timetable把信号转换成时间表vibtt而且tachtt.分配变量名数据到数据列。时间表自动分配名称时间转到时间栏。

Vibtime = seconds(vibmat(:,1));Vibdata = vibmat(:,2);Tachtime =秒(tachmat(:,1));Tachdata = tachmat(:,2);Vibtt = array2schedule (vibdata,“RowTimes”vibtime,“VariableNames”, {“数据”});Tachtt = array2时间表(tachdata,“RowTimes”tachtime,“VariableNames”, {“数据”});

提取故障代码faultcode从故障代码向量足球俱乐部

Faultcode = fc(1);

组装包含两个时间表、故障代码标量和描述性变量名的成员表。

Memtable = table({vibtt},{tachtt},faultcode,“VariableNames”, {“振动”转速计的“FaultCode”});

现在您有了一个成员表,可以将其插入到包含多个成员表的集成表中。初始化集成表并插入第一个成员。

Tv_ensemble_table = table();Tv_ensemble_table (1,:) = memtable
tv_ensemble_table =1×3表振动转速计FaultCode  ___________________ ___________________ _________ { 30001} {30001} x1时间表1 x1时间表

将多个成员矩阵转换为集成表

可以对所有成员矩阵重复相同的处理步骤,以创建完整的集成表。您还可以自动化每个矩阵的处理步骤。为此,首先初始化一个集成表。然后循环遍历成员矩阵,将成员转换为表,并将它们插入集成表。

初始化tv_ensemble_table

Tv_ensemble_table = table();

循环转换和插入序列

Idx = 1:size(dmatall,3) vibmat = dmatall(:,[1 2], Idx);Tachmat = dmatall(:,[3 4],idx);Vibtt = array2schedule (vibmat(:,2),“RowTimes”秒(vibmat (: 1)),“VariableNames”, {“数据”});Tachtt = array2schedule (tachmat(:,2),“RowTimes”秒(tachmat (: 1)),“VariableNames”, {“数据”});Tv_member = table({vibtt},{tachtt},fc(idx),“VariableNames”, {“振动”转速计的“FaultCode”});Tv_ensemble_table (idx,:) = tv_member;结束

您已经创建了一个集成表。每一行表示一个成员,每个成员由表示振动和转速表信号的两个时间表和标量故障代码组成。

tv_ensemble_table
tv_ensemble_table =4×3表振动速错码___________________ ___________________ _________ {30001x1时刻表}{30001x1时刻表}1 {30001x1时刻表}{30001x1时刻表}0 {30001x1时刻表}{30001x1时刻表}1 {30001x1时刻表}{30001x1时刻表}0

您可以将这个集成表导入诊断特性设计器通过点击新会话并选择数据表选择更多变量窗格。

另请参阅

|||

相关的话题

Baidu
map