実時間での10ms制御 シリアル送信

10 Ansichten (letzte 30 Tage)
Yuuki Tanaka
Yuuki Tanaka am 21 Feb. 2020
お世話になります。
実時間での10ms間隔で、シリアル送信を行いたいです。
MATLABでは可能でしょうか?
現在、SImlink上でSerial Send Blockにて制御周期 0.01(10ms)を指定し、
受信側の自作C++アプリケーションのシリアル受信間隔を確認したところ、16ms間隔でした。
受信側の自作アプリケーションは5ms間隔で動作させており、5ms間隔なのは動作確認済みです。
MATLABでは実時間での10ms間隔シリアル送信は可能でしょうか?

Antworten (1)

Toshinobu Shintai
Toshinobu Shintai am 21 Feb. 2020
Simulinkで制御周期を0.01sに指定したとのことですが、コンフィギュレーションパラメータでステップサイズを0.01sに設定して「シミュレーションペーシング」を設定したということでしょうか。
いずれにしても、PCで動作しているMATLAB及びSimulinkでの実時間制御は難しいです。
以前同じような質問がありまして、以下に詳しく回答しましたのでご参照ください。
  2 Kommentare
Yuuki Tanaka
Yuuki Tanaka am 21 Feb. 2020
お世話になります。
ご回答ありがとうございます。
シミュレーション
>「シミュレーションペーシング」を設定したということでしょうか。
いえ。設定していません。
使用しているMATLABバージョンはR2017でして、実時間シミュレーションについて検索したところ以下URLの情報を見つけました。
0.01で動作させたのは以下2パターンです
 (1) 上記リンクのReal Time Pacerを設定した状態
    →結果、受信側でのシリアル受信間隔は10msではなく、16msであることを確認
(2) 上記リンクのReal Time Pacerを設定しない状態で、ステップ値をとにかく小さい値で実施
    →Real Time Pacerは使用できないのかな?と思い、設定しない状態で
  試行錯誤しました。結果、状況は変わりませんでした。
Toshinobu Shintai
Toshinobu Shintai am 21 Feb. 2020
Real Time Pacerもシミュレーションペーシングと原理は同じようなものでして、ソフトタイマーから得た時間からシミュレーションを遅らせているだけです。
おそらく、Real Time Pacerの動作としては正しく動いているのではないでしょうか。それでも、そのPCの動作精度では10msのリアルタイムを実現できていない、ということだと思われます。

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Simulink Real-Time finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!