Main Content

シミュレーション データのログ作成とプロット

この例では、センサーをモデルに追加する代わりにシミュレーション データのログを作成し、このデータをプロットする方法を示します。この例では、スクリプト作成とバッチ処理に適したコマンド ライン関数を使用します。Simscape™ 結果エクスプローラーを使用して、ログに記録されたシミュレーション データをプロットする対話型の例については、シミュレーション データのログ作成、ナビゲートおよびプロットを参照してください。

次に示すモデルは永久磁石 DC モーターを表しています。

このモデルは永久磁石 DC モーターの例に非常によく似ていますが、そのモデル例とは異なり、センシング ユニット w (Ideal Rotational Motion Sensor ブロックおよび PS-Simulink Converter ブロック) と Motor RPM スコープが含まれていません。永久磁石 DC モーターの例の詳細は、DC モーターの性能の評価を参照してください。

  1. 前の図に示したモデルを作成します。

  2. モデル ウィンドウで [モデル化] タブを開き [モデル設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスが開きます。

  3. [コンフィギュレーション パラメーター] ダイアログ ボックスの左側のペインで、[データのインポート/エクスポート] を選択します。[単一のシミュレーション出力] チェック ボックス (既定でオン) をオフにします。この手順により、ログに記録されたシミュレーション データを、単一の出力オブジェクトの一部とするのではなく、個別のワークスペース変数と関連付けることができます。

  4. データ ログ作成を有効にするには、[コンフィギュレーション パラメーター] ダイアログ ボックスの左側ペインで [Simscape] を選択し、[シミュレーション データ ログ] パラメーターを [すべて] に設定して [OK] をクリックします。

  5. モデルのシミュレーションを実行します。これにより、simlog という名前 ([ワークスペース変数名] パラメーターで指定) のワークスペース変数が作成され、シミュレーション データが格納されます。

  6. simlog 変数にはモデルと同じ階層が設けられます。変数構造の全体を確認するには、コマンド プロンプトで次のように入力します。

    print(simlog)

    このコマンドにより、データ ツリーの全体が出力されます。

         mlog_ex_dcmotor1
         +-Electrical_Reference2
         | +-V
         |   +-v
         +-Friction_Mr
         | +-C
         | | +-w
         | +-R
         | | +-w
         | +-t
         | +-w
         +-L
         | +-i
         | +-i_L
         | +-n
         | | +-v
         | +-p
         | | +-v
         | +-v
         +-Load_Torque
         | +-C
         | | +-w
         | +-R
         | | +-w
         | +-S
         | +-t
         | +-w
         +-Mechanical_Rotational_Reference
         | +-W
         |   +-w
         +-Mechanical_Rotational_Reference1
         | +-W
         |   +-w
         +-Motor_Inertia_J
         | +-I
         | | +-w
         | +-t
         | +-w
         +-Rotational_Electromechanical_Converter
         | +-C
         | | +-w
         | +-R
         | | +-w
         | +-i
         | +-n
         | | +-v
         | +-p
         | | +-v
         | +-t
         | +-v
         | +-w
         +-Rotor_ResistanceR
         | +-i
         | +-n
         | | +-v
         | +-p
         | | +-v
         | +-v
         +-x1_5V
           +-i
           +-n
           | +-v
           +-p
           | +-v
           +-v
  7. アクロス変数、スルー変数、内部ブロック変数を表すすべてのノードに系列データがあります。この系列にアクセスするには、最上位の変数名から始まるツリー内での完全パスを指定する必要があります。たとえば、モーターの角速度を表す系列のハンドルを取得するには、次のように入力します。

    s1 = simlog.Rotational_Electromechanical_Converter.R.w.series;

    ここから、系列の値と時間ベクトルにアクセスして解析することができます。

  8. 系列データの値を時間や他の系列に対してプロットするために、系列データを分離する必要はありません。たとえば、モーター回転数 (1 分あたりの回転数) の時間による変化を表示するには、次のように入力します。

    plot(simlog.Rotational_Electromechanical_Converter.R.w,'units','rpm')

  9. この図を、永久磁石 DC モーターの例における RPM スコープの表示と比較します。結果は完全に同じになります。

  10. モーターのトルクを角速度 (rpm 単位) に対してプロットし、わかりやすい軸名を追加するには、次のように入力します。

    plotxy(simlog.Rotational_Electromechanical_Converter.R.w,simlog.Motor_Inertia_J.t,...
       'xunit','rpm','xname','Angular velocity','yname','Torque')
    

    ログに記録されたシミュレーション データのプロットの詳細は、simscape.logging.plotsimscape.logging.plotxy のリファレンス ページを参照してください。