Simulinkでリ​アルタイムでモータを​動作させたい(HiL​S)

26 visualizaciones (últimos 30 días)
KAZUKI KISHIWADA
KAZUKI KISHIWADA el 17 de Feb. de 2020
Respondida: Toshinobu Shintai el 18 de Feb. de 2020
Simulink上でC++で書いたプログラムにMEX関数に変換して,モータをパルス列で動作させています.
一台のモータを動作させる場合は,ペーシングが正常ですが,2台のモータを同時に動作させようとすると,ペーシングが遅れます.制御周期は0.001秒です.(これ以上大きくしたくないです.)
メモリは4GBと少ないので,ここが原因かと思うのですが,他に見るべきところはありますか.
  3 comentarios
Shoumei
Shoumei el 18 de Feb. de 2020
Simulinkでリアルタイム処理させようなんて、そんな無謀な!Simulinkはリアルタイム実行には向いていません。
Arduinoなど組み込み機器に実装したほうが良いと思います。
KAZUKI KISHIWADA
KAZUKI KISHIWADA el 18 de Feb. de 2020
Sintai様
PC上で動作しているMATLAB/Simulinkでリアルタイム制御しようとしています.

Iniciar sesión para comentar.

Respuestas (1)

Toshinobu Shintai
Toshinobu Shintai el 18 de Feb. de 2020
すでにShoumeiさんがおっしゃっていますが、PC上で動作しているMATLAB/Simulinkでリアルタイム制御をするというのは無謀ですね。Windows/Mac/Linuxどれであっても、Simulink標準の「シミュレーションペーシング」機能では、リアルタイム性は全く確保されません。
参考までに、Simulink Desktop Real-Timeというツールボックスを用いると、かなり改善されます。
Simulink Desktop Real-Timeにはノーマルモードとエクスターナルモードがありますが、Simulinkの全機能が使えるのはノーマルモードです。エクスターナルモードでは専用のI/Oインターフェースが必要で、少し制約もあります。
ノーマルモードを使う場合、Windowsではサンプリング周期20msまでなら、厳密なリアルタイムではありませんが使えます。それより小さいステップは厳しいと思ってください。
エクスターナルモードを使う場合、100μsでも動作します。こちらは厳密に近いと言えます。
根本的な話ですが、一般的にPCがリアルタイム制御に向いていないのは、
  • CPUのリソースを有効に使うために、PC向けのOSはリアルタイム性よりもリソース効率を重視して作られている
  • リアルタイム制御を必要とする機器はエラー1個が人命に繋がる可能性があるため、ハード的にもソフト的にも頻繁に故障するPCは危なくて使えない
が理由です。
リアルタイム制御には専用の組み込み機器を用いることを推奨します。

Community Treasure Hunt

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

Start Hunting!