診断特徴デザイナーでの MATLAB 関数の生成
診断特徴デザイナーでは、信号処理、特徴生成、およびランク付けのためのツールを使用して、特徴を対話的に調査します。最適な特徴セットを選択したら、それらの特徴の計算を再現する MATLAB® 関数を生成できます。この関数を、より大規模な測定データセットに直接適用して、特徴セットのメンバー数を増やすことができます。また、用途に合わせて関数を変更したり、関数の一部または全部を他のコードに組み込むことができます。
この例では、MATLAB 関数を生成して特徴セットを計算し、元のデータセットを使用してその関数を検証する方法を説明します。
この例では、アンサンブル データの概念およびアプリでの基本的な操作 (データのインポート、信号処理、特徴の生成など) に精通していることを前提としています。これらの概念と操作の詳細については、予知保全アルゴリズムの設計のための状態インジケーターの特定を参照してください。
トランスミッション モデル データのインポート
この例では、Simulink を使用した故障データの生成のトランスミッション システム モデルから生成されたアンサンブル データを使用します。モデルの出力には以下のものが含まれます。
ケーシングの振動を監視するセンサーからの振動測定
シャフトが 1 回転するたびにパルスを発するタコメーター センサー
モデル化された故障の存在を示す故障コード
MATLAB コマンド ウィンドウで、table dataTable
に格納されているトランスミッション データを読み込みます。
load dfd_Tutorial dataTable
dataTable
は、16 個のメンバーが含まれるアンサンブル table です。各メンバーはシミュレートされた 1 つのトランスミッション システムを表します。table の各行は 1 つのメンバーに対応します。table の各列は、Vibration
や FaultCode
など、1 つの変数に対応します。すべてのアンサンブル メンバーは同じ変数をもちます。診断特徴デザイナーを開きます。
diagnosticFeatureDesigner
アプリで dataTable
をインポートします。インポート処理の際、faultCode
のタイプを状態変数に設定します。インポートが完了すると、[変数] ペインの [信号] リストに振動データおよびタコメーター データが表示されます。インポート処理の詳細については、診断特徴デザイナーでのアンサンブル データのインポートと可視化を参照してください。
TSA 信号の計算
振動信号およびタコメーター信号から時間同期平均化 (TSA) 信号を計算します。そのためにはまず、[変数] ペインで Vibration/Data
を選択します。次に、[特徴デザイナー] タブで [フィルター処理と平均化] 、 [時間同期平均化] を選択します。パラメーターを次の図に示すように設定して [OK] をクリックします。
アプリの [変数] ペインに新しい信号が表示されます。
TSA 信号の詳細については、tsa
を参照してください。
TSA 信号からの特徴抽出
[変数] ペインで、TSA 信号を選択します。次に、[特徴デザイナー] タブで、[時間領域の特徴] 、 [信号の特徴] を選択して、使用可能な信号特徴のセットを開きます。[平均]、[標準偏差]、および [尖度] の特徴を選択します。
特徴値を表示します。[変数] ペインで、[FeatureTable1]
を選択します。次に、プロット ギャラリーで、[特徴テーブル ビュー] をクリックします。これらの手順により、状態変数 faultCode
と共に、各メンバーの特徴値が含まれる table が開きます。
MATLAB 関数の生成
これらの特徴の計算を再現する MATLAB 関数を生成します。[特徴デザイナー] タブで、[エクスポート] 、 [特徴の関数の生成] を選択します。
選択すると、特徴テーブルと特徴を指定できるダイアログ ボックスが開きます。ランク付けを実行していないため、アプリによって、3 つの関数をすべてエクスポートするようにダイアログ ボックスが構成されます。
[OK] をクリックすると、次の行から始まる MATLAB エディターで関数スクリプトが開きます。
function [featureTable,outputTable] = diagnosticFeatures(inputData) %DIAGNOSTICFEATURES recreates results in Diagnostic Feature Designer. % % Input: % inputData: A table or a cell array of tables/matrices containing the % data as those imported into the app. % % Output: % featureTable: A table containing all features and condition variables. % outputTable: A table containing the computation results. % % This function computes signals: % Vibration_tsa/Data % % This function computes features: % Vibration_tsa_sigstats/Kurtosis % Vibration_tsa_sigstats/Mean % Vibration_tsa_sigstats/Std % % Organization of the function: % 1. Compute signals/spectra/features % 2. Extract computed features into a table % % Modify the function to add or remove data processing, feature generation % or ranking operations.
diagnosticFeatures.m
として保存します。コード内容の詳細については、アプリで生成された MATLAB コードの構造を参照してください。
元のデータを使用した関数の検証
dataTable
を使用して関数を実行し、新しい特徴テーブル featuretable
を作成します。
featuretable = diagnosticFeatures(dataTable)
アプリで、最初の 8 個の特徴値について、対応する特徴値と比較します。表示された精度のレベルでは、値は同一です。
16×4 table faultCode Vibration_tsa_stats/Kurtosis Vibration_tsa_stats/Mean Vibration_tsa_stats/Std _________ ____________________________ ________________________ _______________________ 0 2.2516 0.022125 0.99955 1 2.2526 -0.027311 0.999 1 2.2571 -0.45475 0.99629 1 2.2526 0.47419 0.999 1 2.2529 0.37326 0.999 1 2.2526 -0.14185 0.999 1 2.2529 0.40644 0.999 1 2.2529 -0.47485 0.99915
参考
readMemberData
| read
| workspaceEnsemble
| writeToLastMemberRead
| readFeatureTable
| tsa