Simulink Real-Time と Speedgoat を使用している場合、Simulation Data Inspector(SDI)や Dashboard ブロックのライブスト​リーミング性能を向上​させるにはどうすれば​よいですか?

2 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2025 年 10 月 3 日 0:00
回答済み: MathWorks Support Team 2025 年 10 月 3 日 0:31
Simulink Real-Time(SLRT)を使用して Speedgoat ターゲットコンピューター上でシミュレーションを実行し、Simulation Data Inspector(SDI)や Dashboard ブロックでライブ信号データを表示したいと考えています。SDI に信号をストリーミングするために、モデル内の signal logging バッジや以下のようなインスツルメントを使用しています。
しかし、MATLAB プロセスがホスト PC 上で非常に高い RAM や CPU 負荷を引き起こし、MATLAB GUI が遅くなったり、ラグが発生したりして、クラッシュする可能性があります。SDI データに明らかなギャップが見られたり、'logsout' 変数を確認したり SDI からデータをエクスポートした際にタイムステップが失われていることがあります。また、Speedgoat のシステムログに以下のような警告が表示されることもあります:
Live Stream overload
モデルのサンプルレートを下げずに、SDI や Dashboard ブロックのパフォーマンスを向上させる方法はありますか?

採用された回答

MathWorks Support Team
MathWorks Support Team 2025 年 10 月 3 日 0:00
Simulink Real-Time (SLRT) と Speedgoat ハードウェアを使用してライブ ストリーミングのパフォーマンスを向上させるための推奨手順をいくつか示します。
1. 最新の MATLAB リリースにアップグレードする
SDI の性能向上に継続的に取り組んでいるため、最新の MATLAB を使用することを推奨します。特に、External Mode(「Run on Target」ボタン)を使用していて、モデルに多くのグラフィカル要素(Dashboard ブロック、Scope、Display など)が含まれている場合は、基盤となるフレームワークが大幅に改善された R2024b 以上へのアップグレードを推奨します。また、使用しているリリースの最新アップデートレベルを使用していることを確認してください。 
2. ライブストリーミングのデータレートを下げる
ライブストリーミングのデータレートを下げるには、以下の方法があります:
  • モデルのサンプルレートを下げる
  • ストリーミングする信号の数を減らす
  • 信号のデータ型を変更する(例:'double' ではなく 'single')
  • バッジ付き信号のロギングサンプル時間を調整する
  • バッジ付き信号やインスツルメント信号の間引き(decimation)を増やす(R2021b 以降)
  • バッジ付き信号のデータポイント数を制限する(R2021b 以降)
データポイントの間引きや制限、ロギングサンプル時間の変更は、信号のロギングバッジ(青い WiFi シンボル)を右クリックして「Instrumentation Properties」を開くことで設定できます。
参照:
https://www.mathworks.com/matlabcentral/answers/2176573-how-do-i-decimate-or-limit-data-points-when-live-streaming-signals-from-speedgoat-hardware-to-simula
3. ライブストリーミングの代わりにファイルロギングを検討する
SDI で低レートで信号をストリーミングしながら、同じ信号を Speedgoat のローカル SSD に File Logs ブロックを使って記録することで、元のサンプル時間を保持できます。ファイルロギングは、データを落とすことなく、はるかに高いデータレートに対応可能です。詳細は以下をご参照ください:
なお、リアルタイムアプリケーションからのライブストリーミングでは、すべてのデータが SDI に表示される保証はありません。ライブストリームのインスツルメンテーションはリアルタイムアプリケーションよりも優先度が低いため、ホストとターゲット間の接続が追いつかない場合、データが失われる可能性があります。この動作については以下の MATLAB 回答で説明されています:
また、MATLAB やホスト PC の予期せぬシャットダウンによってデータが失われる可能性もありますが、File Logs を使用することで回避できます。
4. SDI の記録モードを「View during simulation only」に変更する
SDI の記録をオフにすることで、性能を大幅に向上させることができます。以下の SDI の「Preferences > Storage」パネルで設定してください:
 
「View during simulation only」を選択すると、SDI はディスクや RAM にデータを記録しません。データはシミュレーション中のみプロットされ、終了後は破棄されます。このモードでは、SDI はオシロスコープのように動作し、信号を一時的にライブ表示するだけで、後で解析するためには保存されません。
注意:MATLAB を再起動すると、Record モードはデフォルトの「View and record data」に戻ります。毎回自動的に設定するには、以下のコマンドをスタートアップファイルに追加してください:
Simulink.sdi.setRecordData(false);
5. External Mode の代わりにカスタムアプリや SLRT Explorer、MATLAB コマンドを使用する
大規模な Simulink モデルを扱う場合、モデルインターフェース(「Run on Target」ボタンによる External Mode)を介してリアルタイムシミュレーションとやり取りすると、オーバーヘッドが大きくなる可能性があります。代わりに、App Designer を使って軽量なカスタム SLRT アプリを作成したり、より抽象的な SLRT Explorer(>> slrtExplorer)を使用したり、基本的な MATLAB コマンドやスクリプトを使用することができます。 
参照:
6. DMR ファイルを削除し、ホスト PC のディスク容量を監視する
すべての MATLAB セッションを閉じた後、Windows の一時フォルダーにある .dmr 拡張子の SDI アーティファクトファイルを削除することも有効です: 
>> winopen(tempdir)
 通常、MATLAB は閉じるとこれらの DMR ファイルを自動的に削除します。ただし、異常終了の場合、これらのファイル (数 GB に増加する可能性があります) が C ドライブに残り、SDI の速度が低下する可能性があります。
DMRファイルへの記録をオフにするオプション(#4を参照)は、最大ディスク使用量やアーカイブサイズ制限の設定など、さまざまなオプションを利用してDMRファイルのサイズを制御できます。
7. ホスト PC の RAM を増やす
MATLAB プロセスで RAM がいっぱいになる場合は、PC の RAM を増やすことを検討してください (少なくとも 16 GB、32 GB または 64 GB を使用することをお勧めします)。RAM を増やすと、より大きなデータセットを処理し、メモリ不足によって引き起こされるパフォーマンスのボトルネックの可能性を減らすことができます。
8. ネットワークのセットアップとハードウェアを確認する
まれに、USB-イーサネット アダプターの故障などのハードウェア/ネットワークの問題により、「ライブ ストリームの過負荷」警告が発生することがあります。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeReal-Time Signal Logging and Streaming についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!