Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Stateflow.SimulationData.Data

シミュレーション中のデータ値

説明

Stateflow.SimulationData.Data を使用して、シミュレーション中のローカル データと出力データの値を記録します。

作成

  1. [シンボル] ペインで、ローカルまたは出力データ オブジェクトを選択します。

  2. [プロパティ インスペクター][ログ] で、[信号データのログ] チェック ボックスをオンにします。

プロパティ

すべて展開する

データ オブジェクトのログ名。文字配列として指定します。既定では、データ オブジェクトのログ名はデータ オブジェクトの名前です。データ オブジェクトに別の名前を割り当てるには、[プロパティ インスペクター][ログ名][カスタム] を選択し、カスタム ログ名を入力します。

データ型: char

ソース ブロックのブロック パス。Simulink.SimulationData.BlockPath (Simulink) オブジェクトとして指定します。

データ型: Simulink.SimulationData.BlockPath

ログ データと時間。timeseries オブジェクトとして指定します。

データ型: timeseries

オブジェクト関数

plot (Simulink)シミュレーション データ インスペクターでデータをプロットする

すべて折りたたむ

  1. sf_semantics_hotel_checkin モデルを開きます。

    openExample("stateflow/SemanticsHotelCheckinExample")

    この例の詳細については、実行時の Stateflow オブジェクトの相互作用を参照してください。

  2. Hotel チャートを開きます。

  3. [シンボル] ペインを開きます。[シミュレーション] タブの [準備] で、[[シンボル] ペイン] をクリックします。

  4. [プロパティ インスペクター] を開きます。[シミュレーション] タブの [準備] で、[プロパティ インスペクター] をクリックします。

  5. ログを作成する service ローカル データを設定します。

    • [シンボル] ペインで、service を選択します。

    • [プロパティ インスペクター][ログ] タブで、[信号データのログ] チェック ボックスをオンにします。

  6. Simulink® モデルに戻ります。

  7. モデルのシミュレーションを実行します。シミュレーション開始後に、1 つ目のスイッチを 2 回切り替えてホテルにチェックインし、2 つ目のスイッチを複数回切り替えてルーム サービスを注文します。シミュレーション時に、Stateflow® により、ログ データは Simulink.SimulationData.Dataset (Simulink) 信号のログ オブジェクトに保存されます。信号のログ オブジェクトの既定の名前は logsout です。詳細については、信号ログを使用した信号データの保存 (Simulink)を参照してください。

  8. シミュレーションを停止します。

  9. 信号のログ オブジェクトにアクセスするには、MATLAB® コマンド プロンプトで、以下のように入力します。

    logsout
    logsout = 
    
    Simulink.SimulationData.Dataset 'logsout' with 1 element
    
                            Name         BlockPath                        
                            ___________  ________________________________ 
        1  [1x1 Data ]      service      sf_semantics_hotel_checkin/Hotel

  10. ログが作成された要素にアクセスするには、get (Simulink) メソッドを使用します。

    serviceLog = logsout.get("service")
    serviceLog = 
    
      Stateflow.SimulationData.Data
      Package: Stateflow.SimulationData
    
      Properties:
             Name: 'service'
        BlockPath: [1×1 Simulink.SimulationData.BlockPath]
           Values: [1×1 timeseries]
    

  11. ログ データおよびログが作成された各要素の時間にアクセスするには、Values.Data プロパティと Values.Time プロパティを使用します。たとえば、関数 table を使用して、ログ データを表形式でまとめます。

    T = table(serviceLog.Values.Time,serviceLog.Values.Data);
    T.Properties.VariableNames = ["Time" "Data"]
    T =
    
      6×2 table
    
           Time       Data
        __________    ____
    
                 0     0
        1.7076e+06     0  
        1.8607e+06     1  
        1.9653e+06     2  
        1.9653e+06     3  
        1.9653e+06     4  
        2.2912e+06     5  
    
    この例では、値が 0 のデータ点は、チャートが時間 0 においてローカル データ service0 に初期化するときと、デフォルト遷移が時間 1.7076e+06 において service0 に設定するときが該当します。

ヒント

  • Stateflow.SimulationData.Data オブジェクトは、ログ記録中のデータに対して Stateflow チャートが書き込むたびに、データの値が変更されない場合でも、データ点を記録します。たとえば、ログ データにアクセスでは、値が 0 のデータ点は、チャートが時間 0 においてローカル データ service0 に初期化するときと、デフォルト遷移が時間 1.7076e+06 において service0 に設定するときが該当します。

バージョン履歴

R2017b で導入