Main Content

データをストリーミングするための特徴抽出関数と Simulink モデルのエクスポート

診断特徴デザイナーで、選択した特徴の対話的な計算を自動化する MATLAB® 関数を生成できます。生成する関数は、次の 2 つの方法で書式設定できます。

  1. MATLAB の生成コードを使用した自動特徴抽出の説明に従って、マルチメンバー データ アンサンブルからの特徴抽出を自動化します。

  2. データをストリーミングするための特徴抽出を自動化します。

    • MATLAB Coder™ に準拠する MATLAB 関数を生成し、codegen (MATLAB Coder) を使用してその関数を C/C++ に変換します。

    • MATLAB 関数を使用する Simulink® モデルを生成します。

    自己回帰モデリングまたは状態空間モデリングを使用して作成するスペクトル特徴は、データのストリーミングではサポートされません。スペクトル特徴のコードを生成するには、ウェルチ法を使用して特徴を抽出する必要があります。また、アンサンブル統計の変数またはフレームベースの処理から派生する特徴もコード生成ではサポートされません。

ストリーミング用の MATLAB 関数の生成

次の図は、一連の特徴のランク付け table を示しています。これらの特徴には、自己回帰モデルを使用して計算されたスペクトル特徴が含まれています。

Variables are on the left. Feature ranking bar chart is in the middle. Feature values are on the right.

[エクスポート] をクリックしてエクスポート オプションにアクセスし、[特徴の関数の生成] を選択します。

The Export button is the rightmost button on the top. The Generate Function for Features option is the top item in the middle section of the menu.

このダイアログ ボックスでは、上位ランクの特徴の数や、関数をデータのストリーミング用に書式設定するかどうかを選択できます。

The Number of top features is the third item from the top and is set to 6. The Format for streaming data check box the fourth item and is selected.

[OK] をクリックすると、ストリーミング用に書式設定された関数が生成されます。次のコードは、関数の先頭にある説明用ヘッダーです。

%DIAGNOSTICFEATURES recreates results in Diagnostic Feature Designer.
%
% Input:
%  inputData: A timetable.
%
% Output:
%  featureTable: A table containing all features.
%
% This function computes signals:
%  Vibration_tsa/Data
%
% This function computes features:
%  Vibration_sigstats/Mean
%  Vibration_tsa_rotmac/RMS
%  Vibration_tsa_rotmac/CrestFactor
%
% 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.

% Auto-generated by MATLAB 
この関数は、入力データを timetable の形式で受け入れて特徴テーブルを返します。この関数はアプリ セッションから 3 つの特徴のみを生成します。これは、他の 3 つの特徴が、C/C++ と互換性がない自己回帰モデルを使用して計算されたパワー スペクトルから抽出されているためです。

比較のために、同じセッション データからストリーミング形式を使用せずにエクスポートされたコードの説明がMATLAB の生成コードを使用した自動特徴抽出に示されています。

ストリーミング コードの生成

この新しい MATLAB 関数から、codegen (MATLAB Coder) を使用して C または C++ コードを生成できます。

たとえば、関数のファイル名が diagnosticFeatures.m で、代表的な関数入力が timetable tt 内にある場合は、次のコマンドを使用して C コードを生成します。

codegen diagnosticFeatures.m -args {tt}

データをストリーミングするための Simulink ブロックのエクスポート

MATLAB 関数のエクスポートに加え、その関数を使用する Simulink ブロックもエクスポートできます。

[エクスポート] メニューで、[特徴抽出 Simulink ブロックの生成] を選択します。

The Generate Feature Extraction Simulink Box option is the last menu item.

表示されるダイアログ ボックスは [特徴の関数の生成] ダイアログ ボックスに似ていますが、ストリーミングのチェックボックスが含まれていません。これは、Simulink ブロックのコードは常にストリーミング用に書式設定されるためです。

The Generate Feature Extraction Simulink Block contains, from top to bottom, Feature Table, Features sorted by, and Number of top features. Help, OK, and Cancel bottoms are beneath these options.

[OK] をクリックすると、振動信号とタコメーター信号の入力、エクスポートされた Feature Extraction ブロック、および出力スコープを含むテンプレート Simulink モデルが生成されます。

The input blocks are on the left. The Feature Extraction block is in the center. The output scope block is on the right.

Feature Extraction ブロックをダブルクリックしてブロック パラメーターを開き、特徴抽出関数とバッファリング、独立変数、およびサンプル時間と開始時間の情報を確定するか指定します。

Block parameters for feature extraction. Descriptions are in text in the upper half. Parameter settings are in the lower half.

入力ブロックをダブル クリックして入力パラメーターを指定します。ブロックにはメイン パラメーターと信号属性のタブが含まれています。

Block parameter specification for the Vibration_Data input block. The Main tab is open.

分類学習器Predict ブロックなどの追加ブロックを組み込むこともできます。

参考

| (MATLAB Coder) | (MATLAB Coder) |

関連するトピック