シミュレーション結果を単一の出力オブジェクトとして返すようにしてモデルをシミュレートすると、すべてのログ データおよびシミュレーション メタデータに Simulink.SimulationOutput オブジェクトを使用してアクセスできます。
この例のモデルでは [単一のシミュレーション出力] パラメーターが有効になっており、いくつかの異なるログ記録方法を使用してデータをログに記録します。
Sine Wave ブロックの出力は、信号のログを使用してログに記録されます。
Gain ブロックの出力は、To Workspace ブロックを使用してログに記録されます。
Gain ブロック、Chirp Signal ブロック、Square Wave Generator ブロックの出力は、Record ブロックを使用してログに記録されます。
Square Wave Generator ブロックの出力は、出力ログを使用してログに記録されます。
モデルは時間データを記録するようにも設定されます。
モデルを開きます。
Simulink.SimulationInput オブジェクトを作成してシミュレーションをモデル用に構成します。関数 setModelParameter を使用して StopTime パラメーターを 20 に設定します。
モデルのシミュレーションを実行します。sim 関数は、結果をシミュレーションのすべてのログ データが格納された Simulink.SimulationOutput オブジェクトとして返します。ブロックごと、ログのタイプごとのデータは、ブロックまたはモデルで指定されているログ変数の名前と一致するプロパティとして保存されます。
ログ データには、ドット表記、関数 get、または関数 find を使用してアクセスできます。
ドット表記を使用して、To Workspace ブロックを使用してログ記録された信号 Big Sine にアクセスします。
timeseries
Common Properties:
Name: 'Big Sine'
Time: [51x1 double]
TimeInfo: [1x1 tsdata.timemetadata]
Data: [51x1 double]
DataInfo: [1x1 tsdata.datametadata]
More properties, Methods
get 関数を使用して、信号ログを使用してログ記録された信号 Sine にアクセスします。
logsout =
Simulink.SimulationData.Dataset 'logsout' with 1 element
Name BlockPath
____ _______________________
1 [1x1 Signal] Sine LoggingBlocks/Sine Wave
- Use braces { } to access, modify, or add elements using index.
find 関数を使用して、出力ログを使用してログ記録された信号 Square Wave にアクセスします。
yout =
Simulink.SimulationData.Dataset 'yout' with 1 element
Name BlockPath
___________ _____________________
1 [1x1 Signal] Square Wave LoggingBlocks/Outport
- Use braces { } to access, modify, or add elements using index.
SimulationOutput オブジェクトの SimulationMetadata プロパティ内のシミュレーション メタデータにアクセスします。
simmetadata =
SimulationMetadata with properties:
ModelInfo: [1×1 struct]
TimingInfo: [1×1 struct]
ExecutionInfo: [1×1 struct]
UserString: ''
UserData: []
シミュレーション メタデータは Simulink.SimulationMetadata オブジェクトとして返されます。SimulationMetadata オブジェクトは、オブジェクトのプロパティで情報を構造体としてグループ化したものです。
SimulationMetadata オブジェクトの ExecutionInfo プロパティを確認します。実行情報には、シミュレーションが停止時間 20 まで警告やエラーなしで実行されたことが示されます。
ans = struct with fields:
StopEvent: 'ReachedStopTime'
StopEventSource: []
StopEventDescription: 'Reached stop time of 20'
ErrorDiagnostic: []
WarningDiagnostics: [0×1 struct]