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

7 ビュー (過去 30 日間)
Yuuki Tanaka
Yuuki Tanaka 2020 年 2 月 21 日
コメント済み: Toshinobu Shintai 2020 年 2 月 21 日
お世話になります。
実時間での10ms間隔で、シリアル送信を行いたいです。
MATLABでは可能でしょうか?
現在、SImlink上でSerial Send Blockにて制御周期 0.01(10ms)を指定し、
受信側の自作C++アプリケーションのシリアル受信間隔を確認したところ、16ms間隔でした。
受信側の自作アプリケーションは5ms間隔で動作させており、5ms間隔なのは動作確認済みです。
MATLABでは実時間での10ms間隔シリアル送信は可能でしょうか?

回答 (1 件)

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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSimulink Real-Time についてさらに検索

Community Treasure Hunt

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

Start Hunting!