最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

シミュレーション中の MATLAB 関数でのデータへのアクセス

信号の [計測のプロパティ][データ アクセス] 機能を使用し、シミュレーション中に信号データを MATLAB® コールバック関数にストリームできます。シミュレーション全体を通じて、指定する関数が非同期的にパケットでデータを受け取ります。新しいデータを受け取るたびにコールバック関数が実行されます。コールバック関数を作成して、信号データを処理するか、シミュレーション中に信号のカスタムの可視化を作成できます。コールバック関数はモデル内の信号値に影響しません。データ アクセスはラピッド アクセラレータ モード、固定小数点データ、またはバス信号をサポートしておらず、1 次元および 2 次元行列信号のみをサポートしています。この例では、シミュレーション中に信号をプロットする簡単なコールバック関数を使用して信号データにアクセスするために必要な手順を説明します。

データ アクセス用のコールバック関数の作成

データ アクセス用のコールバック関数は常に信号データを最初の引数として受け取ります。シミュレーション時間とパラメーターの送信を選択できます。3 つの引数をすべて含める場合、シミュレーション時間は 2 番目の引数になります。単一信号に固有のコールバック関数にすることも、同じコールバックを使用して複数の信号を処理および可視化することもできます。コールバック関数は一度に 1 つの信号のデータのみにアクセスできます。この例では、特定の呼び出しに対して関数で処理される信号を識別するために使用される信号データ、時間、およびパラメーターを受け取るコールバック関数を作成します。

コールバック関数を、関数と同じ名前の M ファイルに作成します。MATLAB 関数の作成の詳細については、関数のファイルでの作成 (MATLAB)を参照してください。この例のコールバック関数はオプション パラメーターを使用して各信号に数値識別子を割り当てます。パラメーターは、各信号に一意の figure を作成し、各信号に異なるラインの色を割り当てるために使用されます。信号データをプロットに累積するには、コールバックに hold on を含めます。コールバックへの各呼び出しで、関数は信号データの一部を受け取ります。コールバックを使用して、必要に応じてパケットを累積できます。

function plotSignals(y,time,sigNum)
   
    figure(sigNum)
    
    if isequal(sigNum,1)
        marker = 'ro-';
    elseif isequal(sigNum,2)
        marker = 'go-';
    else
        marker = 'bo-';
    end
    
    hold on;
    plot(time,y,marker);

end

コールバック関数は戻り値を提供しません。戻り値で関数を指定すると、返されるデータは破棄されます。

ヒント

assignin を使用してベース ワークスペースでコールバック関数からデータにアクセスします。

MATLAB パスの場所でコールバック関数を保存します。コールバックを保存する場所がパス上にない場合は、パスに追加できます。MATLAB の [現在のフォルダー] セクションでコールバックが含まれるディレクトリを右クリックし、[パスに追加] を選択します。

データ アクセス用の信号の設定

データ アクセス コールバックで信号のデータにアクセスするには、信号を記録しなければなりません。ログ記録用に信号をマークするには、モデルで信号を右クリックし、[選択した信号のログ] を選択します。信号のデータ アクセスを設定するには、ログ バッジを右クリックして [プロパティ] を選択します。[計測のプロパティ][データ アクセス] タブで、コールバック関数の名前、コールバック関数が時間を引数として取るかどうか、およびオプションのパラメーター値を指定できます。

たとえば、vdp モデルを開いて、前のセクションからコールバックを使用する x1 信号と x2 信号を設定します。

  1. MATLAB [コマンド ウィンドウ]vdp と入力します。

  2. x1 信号と x2 信号を選択します。次に、選択した信号を右クリックし、コンテキスト メニューから [選択した信号のログ] を選択します。

  3. [計測のプロパティ] を開くには、x1 のログ バッジを右クリックし、[プロパティ] を選択します。

  4. [データ アクセス] ペインで、コールバックの名前を入力し、[シミュレーション時間を含める] をチェックして、1[関数パラメーター] として入力します。

  5. x2[計測のプロパティ] を開き、2[関数パラメーター] 値をもつ plotSignals コールバックを使用するように [データ アクセス] ペインを設定します。

vdp モデルのシミュレーションを実行します。コールバックは、シミュレーション中に Figure 1 と 2 を生成して x1 信号と x2 信号を表示します。

コールバック関数を変更してカスタムの可視化を作成することも、処理された信号データのプロットを作成することもできます。データ アクセス コールバック関数に関連するエラーはシミュレーションを中断しません。エラーは [診断ビューアー] で警告として表示されます。

関連するトピック