MATLAB Answers

enableサブシス​テムをつかったマルチ​サンプリングレートで​の連続系伝達関数につ​いて

3 views (last 30 days)
tera
tera on 19 Mar 2020
Commented: Toshinobu Shintai on 23 Mar 2020
現在、簡単な車両挙動のプラントモデルと、それを10msで動かすコントローラを設計しています。
具体的には車両挙動を固定ステップのソルバー(例:0.001s)で解き、enableサブシステムを使って10回に1回(例:0.01s)動く
コントローラのマルチサンプリングレート風のプログラムを作っています。
しかし、enableサブシステム内に連続系の伝達関数のブロックを置くと、伝達関数の時定数が10分の1になってしまいます。
この場合、伝達関数を目的のサンプリングレートでの離散系に変換すれば正しくはなりそうなのですが、
連続系の伝達関数自体はそのままで、simulinkの設定等で修正する手段はありますか?
またはもっと良いマルチサンプリングレートのモデルを作る方法はありますか?

  0 Comments

Sign in to comment.

Answers (1)

Toshinobu Shintai
Toshinobu Shintai on 19 Mar 2020
EnableサブシステムではなくRate Transitionを使ってください。
おっしゃっているようなシミュレーションを行う場合の典型的なモデリング方法を示しましたので、添付ファイルをご確認ください。
コンフィギュレーションパラメーターでは固定ステップ0.001sに指定しています。このモデルではControllerサブシステムでPID Controller、PlantサブシステムでTransfer fcnを使っていまして、それぞれ連続のブロックです。
ControllerはRate Transitionのサンプル時間を継承するため、0.01sで動作します。

  2 Comments

tera
tera on 23 Mar 2020
ありがとうございます。
添付していただいたモデルのコントローラは、Rate Transitionにより
以下のようになる理解で合っていますでしょうか?
・入力は0.01sのためセンサのサンプリングレートは0.01s。
・出力は0.001sのためコントローラの動作は0.001s。
・コントローラの動作(指示)を0.01sにしたければRate Transition2の
 サンプリングレートを0.01sにする。
それとも、入力のサンプリングレートが0.01sのため、
コントローラは0.01sで動いていると考えた方が良いのでしょうか?
Toshinobu Shintai
Toshinobu Shintai on 23 Mar 2020
申し訳ありません。先日の回答は間違えていました。
固定ソルバーにすると、連続ブロックはコンフィギュレーションパラメーターで指定した固定サンプル時間で動作します。したがって今回の添付モデルでは0.001sの刻みで動作します。
「Controller」サブシステムを別のモデルファイルで作成し、そのモデルを固定ソルバー0.01sに指定、その後、元のモデルで参照モデルとしてControllerモデルを呼ぶことで、Controllerモデル内のブロックは0.01sで動作します。
ちなみにこれは私個人の意見ですが、コントローラに実装することを意識して離散モデルを作ろうとされているのであれば、最初から離散ブロックを用いて設計するべきだと思います。

Sign in to comment.

Sign in to answer this question.

Products


Release

R2017a