ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

複数のシミュレーションの実行

複数の並列シミュレーションおよび大量のデータのログ記録が含まれるワークフローについて、Simulink.SimulationInput オブジェクトの配列を使用してシミュレーション セットを作成できます。これはモデルのテスト、実験設計、モンテカルロ解析、モデルの最適化などのシナリオで役立ちます。

Simulink.SimulationInput オブジェクトの配列を使用すると、複数のシミュレーションの実行とそれらの並列実行が簡略化されます。Parallel Computing Toolbox™ をお持ちの場合、parsim コマンドおよび batchsim コマンドを使用してシミュレーションを並列実行できます。

parsim コマンドは、全体のシミュレーション時間を短縮するために各シミュレーションをワーカーに分散します。parsim コマンドは並列プールの作成を自動化し、ファイルの依存関係を特定して、アクセラレータとラピッド アクセラレータのシミュレーションのビルド アーティファクトを管理します。

batchsim コマンドは、シミュレーションを計算クラスターにオフロードします。シミュレーションの実行がクラスター上で行われることで、バッチ ジョブの処理中に他のタスクを実行したり、クライアント MATLAB® を閉じてバッチ ジョブに後でアクセスしたりできるようになります。

Parallel Computing Toolbox のライセンスがない場合、parsimsim コマンドと同様に機能します。シミュレーションは逐次実行されます。

batchsim コマンドは、Parallel Computing Toolbox™ ライセンスを使用して、計算クラスターでシミュレーションを実行します。batchsim は、並列プールが作成できない場合、シミュレーションを逐次実行します。Parallel Computing Toolbox ライセンスが使用されていない場合、batchsim エラーが発生します。

Simulink.SimulationInput オブジェクトを使用してモデルを変更し、その変更した状態でシミュレーションを並列実行できます。Simulink.SimulationInput オブジェクトを変更すると、モデル内の値がオーバーライドされます。シミュレーションでは、モデルで定義されている値ではなく Simulink.SimulationInput オブジェクト内の値が使用されます。こうすることで、モデルを変更未保存 (ダーティ) の状態にせずに変更できます。Simulink.SimulationInput オブジェクトでは、モデル内の次の設定を変更できます。

  • 初期状態

  • 外部入力

  • モデル パラメーター

  • ブロック パラメーター

  • 変数

Simulink.SimulationInput オブジェクトにより、PreSimFcnPostSimFcn をそれぞれ使用して、各シミュレーションの開始時と終了時に MATLAB 関数が実行されるように指定することもできます。

Simulink.SimulationInput オブジェクトを使用すると、モデル パラメーターはシミュレーションの終了後に復元されます。parsim を使用した並列シミュレーションの実行を参照してください。

メモ

プールがまだ開いておらず、シミュレーションをはじめて実行する場合は、シミュレーションの開始にかかる時間が長くなります。その後の並列シミュレーションは高速になります。

その他の利点

  • 簡単にデバッグできるように、シミュレーション出力オブジェクトのエラーを出力

  • ラピッド アクセラレータと高速リスタートに対応

  • ファイルのログに対応 (ビッグ データに役立つ)

  • ローカルの並列プールに加え、MATLAB Distributed Computing Server™ に対応

  • ベース ワークスペース変数をワーカーに転送可能

  • 透過性のエラーを回避

シミュレーション マネージャー

シミュレーション マネージャーを使用すると、複数の並列シミュレーションを監視できます。並列実行されている実行の進捗が表示されます。パラメーター、経過時間、診断といった、すべての実行の詳細を確認できます。シミュレーション マネージャーは、シミュレーション データ インスペクターでの結果を解析および比較できるオプションを提供する、便利なツールとして機能します。実行を選択して、その値をモデルに適用することもできます。詳細については、Simulation Manager を参照してください。

複数のシミュレーションのデータ ログ

結果として得られる Simulink.SimulationOutput オブジェクトにはシミュレーション出力が含まれ、エラー メッセージとシミュレーション メタデータがキャプチャされます。[データのインポート/エクスポート]、[データセットのデータをファイルにログ] コンフィギュレーション パラメーターを選択すると、Simulink® では、結果として得られる MAT ファイルに保存される Dataset ごとに Simulink.SimulationData.DatasetRef オブジェクトが作成されます。この DatasetRef オブジェクトを使用して、Dataset 要素のデータにアクセスできます。Simulink.SimulationInput オブジェクトを使用して実行するシミュレーションでは、DatasetRef オブジェクトは SimulationOutput オブジェクトの一部として返されます。その結果、より迅速にアクセスでき、それらを作成する必要はありません。

並列シミュレーションでは、MATLAB メモリで保持できる以上のログ データが生成される場合があります。並列シミュレーションでメモリ要件を減らす場合は、永続ストレージにログ記録することを検討してください。[データのインポート/エクスポート]、[データセットのデータをファイルにログ] コンフィギュレーション パラメーター (LoggingToFile) を選択すると、Simulink の並列シミュレーションの場合は次が実行されます。

  • データは MAT ファイルにデータセット形式で記録されます。

  • それぞれのシミュレーションで、各データセット要素に対して Simulink.SimulationData.DatasetRef オブジェクトが作成されます (たとえば logsout)。

DatasetRef オブジェクトを使用すると、特定の信号のデータにアクセスできます。ログ データを永続ストレージからモデルにストリーミングするために使用する matlab.io.datasetore.SimulationDatastore オブジェクトを作成できます。

参考

| | | | | | | | | |

関連するトピック