シミュレーション データのログ作成とプロット
この例では、センサーをモデルに追加する代わりにシミュレーション データのログを作成し、このデータをプロットする方法を示します。この例では、スクリプト作成とバッチ処理に適したコマンド ライン関数を使用します。Simscape™ 結果エクスプローラーを使用して、ログに記録されたシミュレーション データをプロットする対話型の例については、シミュレーション データのログ作成、ナビゲートおよびプロットを参照してください。
次に示すモデルは永久磁石 DC モーターを表しています。
このモデルは永久磁石 DC モーターの例に非常によく似ていますが、そのモデル例とは異なり、センシング ユニット w
(Ideal Rotational Motion Sensor ブロックおよび PS-Simulink Converter ブロック) と Motor RPM スコープが含まれていません。永久磁石 DC モーターの例の詳細は、DC モーターの性能の評価を参照してください。
前の図に示したモデルを作成します。
モデル ウィンドウで [モデル化] タブを開き [モデル設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスが開きます。
[コンフィギュレーション パラメーター] ダイアログ ボックスの左側のペインで、[データのインポート/エクスポート] を選択します。[単一のシミュレーション出力] チェック ボックス (既定でオン) をオフにします。この手順により、ログに記録されたシミュレーション データを、単一の出力オブジェクトの一部とするのではなく、個別のワークスペース変数と関連付けることができます。
データ ログ作成を有効にするには、[コンフィギュレーション パラメーター] ダイアログ ボックスの左側ペインで [Simscape] を選択し、[シミュレーション データ ログ] パラメーターを
[すべて]
に設定して [OK] をクリックします。モデルのシミュレーションを実行します。これにより、
simlog
という名前 ([ワークスペース変数名] パラメーターで指定) のワークスペース変数が作成され、シミュレーション データが格納されます。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
アクロス変数、スルー変数、内部ブロック変数を表すすべてのノードに系列データがあります。この系列にアクセスするには、最上位の変数名から始まるツリー内での完全パスを指定する必要があります。たとえば、モーターの角速度を表す系列のハンドルを取得するには、次のように入力します。
s1 = simlog.Rotational_Electromechanical_Converter.R.w.series;
ここから、系列の値と時間ベクトルにアクセスして解析することができます。
系列データの値を時間や他の系列に対してプロットするために、系列データを分離する必要はありません。たとえば、モーター回転数 (1 分あたりの回転数) の時間による変化を表示するには、次のように入力します。
plot(simlog.Rotational_Electromechanical_Converter.R.w,'units','rpm')
この図を、永久磁石 DC モーターの例における RPM スコープの表示と比較します。結果は完全に同じになります。
モーターのトルクを角速度 (
rpm
単位) に対してプロットし、わかりやすい軸名を追加するには、次のように入力します。plotxy(simlog.Rotational_Electromechanical_Converter.R.w,simlog.Motor_Inertia_J.t,... 'xunit','rpm','xname','Angular velocity','yname','Torque')
ログに記録されたシミュレーション データのプロットの詳細は、
simscape.logging.plot
とsimscape.logging.plotxy
のリファレンス ページを参照してください。