バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/
はじめに
前回、DCモータ状態空間モデルをPID制御するよう検討。
恐らくできるが、PID制御器を作成する必要がある。
この流れでやって行く予定。
- 前回までの構成の確認
- 今回の構成を確認
- PID制御器の基本式の確認
- PID制御器の基本式変形
- PID制御器の離散化
- 離散化PID制御器のブロック図
- PID制御器を加味した構成図
- 各種ツール、言語でシミュレーション
今回は、構成について確認
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
いままでの状態空間モデルの制御を構成図として書くと。

まずやることは、「前回までの構成の確認」?

構成と言っても、状態空間モデルがあるだけだよね?

いんや、厳密には状態空間モデルの入力があるな。

あ、ステップ入力してたアレか。

図で書くとこんな感じだな。
前回までの状態空間モデルの構成


制御をしていると言えばしてるけど、
いわゆるオープンループってやつだね。
開ループ制御(かいループせいぎょ)またはオープンループ制御(英: Open-loop control)は、制御理論において、現在の状態と制御システムのモデルのみを使って入力に対して計算を行う制御を指す。フィードバックを使わずに、入力が所定の目標値に達したかを判断することを特徴とする。つまり、開ループ制御システムは制御しているプロセスの出力を観測しない。したがって、真の開ループシステムは機械学習には採用されず、発生させた誤りを訂正することもできない。また、システムにおける外乱を補償することもできない。
Wikipediaより(https://ja.wikipedia.org/wiki/%E9%96%8B%E3%83%AB%E3%83%BC%E3%83%97%E5%88%B6%E5%BE%A1)
今回の構成を確認

対して、今回の構成はこれになる。
今回の状態空間モデルを制御する構成


こっちはちゃんとクローズループになってるね。
閉ループ制御(へいループせいぎょ)またはクローズループ制御(英: Close-loop control)は位置決め制御方式の一種。制御装置からの出力信号によって制御された機械やモーターの移動量のデータを制御装置にフィードバックし、入力値と出力値を常に比較して両者を一致させるように全体の操作量を調整する制御。指令だけをしてフィードバックを取らないオープンループ制御に対して、クローズループ制御は指令からフィードバックを取り補正を加える。
Wikipediaより(https://ja.wikipedia.org/wiki/%E9%96%89%E3%83%AB%E3%83%BC%E3%83%97%E5%88%B6%E5%BE%A1)

あと、角速度\(\omega(t)\)をフィードバックしているということは角速度制御をするってことか。

そうだね。
まぁここは角度\(\theta(t)\)でも良いけど、今回は角速度\(\omega(t)\)にしておこう。

構成が確認できたところで、次回はPID制御器の数式についてだ。

(うーん、嫌な予感しかしない・・・。)
まとめ

まとめだよ。
- これまでの状態空間モデルの構成を確認。
- オープンループ制御になっている。
- 今回の構成を確認。
- PID制御でクローズループにする。
- 角速度ωをフィードバックすることで角速度制御をすることが分かる。
バックナンバーはこちら。
コメント