Main Content

シミュレーション データ インスペクターへの string データのログ記録

この例では、数値入力データに基づいて string データを自然言語出力テキストに連結する Stateflow® チャートの作成方法を説明します。出力テキストは、シミュレーション データ インスペクターおよび MATLAB® ワークスペースで表示できます。string データの詳細については、string を使用したテキスト情報の管理を参照してください。

この例のモデルは Sine Wave ブロックを使用して、閉じたパスに沿って移動する点の緯度と経度を提供します。Sine Wave ブロックは、振幅が 50、バイアスが 0、周波数が 1 です。Latitude ブロックの位相は 0、Longitude ブロックの位相は $\pi/2$ です。

チャートでは、これらの座標を調べ、次のルールに従って string q1 および q2 を割り当てます。

  • latitudelongitude が正の場合、q1 = "North"q2 = "east"

  • latitude が正で longitude が負の場合、q1 = "North"q2 = "west"

  • latitude が負で longitude が正の場合、q1 = "South"q2 = "east"

  • longitudelongitude が負の場合、q1 = "South"q2 = "west"

その後、チャートでこれらの string を連結して出力 string sout を生成します。

シミュレーション結果の表示

モデルのシミュレーション中に、チャートに出入りする信号がログに記録されます。

シミュレーションの結果を調べるには、シミュレーション データ インスペクターを開き、latitudelongitude、および sout の各信号のチェック ボックスをオンにします。latitude 信号と longitude 信号は正弦曲線として表示されます。sout 信号は遷移プロットとして表示されます。遷移プロットの帯内に string の値が表示され、線の交差位置は値の変化を示します。

MATLAB ワークスペース内でログ データにアクセスするには、信号のログ オブジェクト logsout を呼び出します。Stateflow は、string データ sout を MATLAB string スカラーとしてエクスポートします。たとえば、コマンド プロンプトで次のように入力します。

Table = table(logsout.get("latitude").Values.Data, ...
    logsout.get("longitude").Values.Data, ...
    logsout.get("sout").Values.Data);
Table.Properties.VariableNames = ...
    ["Latitude","Longitude","QuadrantInfo"];
Table([4:8:30],:)
ans =

  4x3 table

    Latitude    Longitude              QuadrantInfo          
    ________    _________    ________________________________

     28.232       41.267     "Location in Northeast Quadrant"
     40.425      -29.425     "Location in Northwest Quadrant"
    -30.593      -39.548     "Location in Southwest Quadrant"
    -38.638       31.735     "Location in Southeast Quadrant"

チャート データのログ記録の詳細については、ステートとデータのシミュレーション出力のログを参照してください。

参考

| (Simulink) |

関連するトピック