公開日:2017/11/10 , 最終更新日:2019/04/29
|
・In English
前提知識
・DCモーターの微分方程式
・Scilabの使い方
■内部モデル制御とは
内部モデル制御とはIMC(Internal Model Control)ともいい、フィードバック制御の一つです。制御対象物の特性がある程度解っていれば
比較的容易に精度の良いコントローラになるのが特徴です。先ずは考え方を説明し、その後例題としてDCモーターのコントローラを設計します。
なお似たような言葉として、現代制御で用いられる"内部モデル原理"というものがありますが、これとは別になります。
■内部モデル制御の考え方
以下の様な制御対象物があったとします。入力値に対して4倍の出力をする制御対象物です。この制御対象物に対してコントローラへの入力となる目標値と
制御対象物の出力が一致するためには、どのようなコントローラを設定すればいいでしょうか。

上記の場合だと、目標値に対して1/4の値を出力させれば良く、つまり制御対象物の逆関数のコントローラを設計すれば良いことが分かります。

上記が基本的な考えの一つですが、制御対象物の特性が想定からずれていたり(モデル化誤差)すると、目標値と一致しなくなります。
そこで以下の様に対応します。

例えば、制御対象物は本当は入力を5倍する特性を持っていたとします。コントローラは4倍のつもりで設計するのですが、
その際も、具体値を入れてみると解りますが、目標値と出力値が一致します。

以上が内部モデル制御の考え方です。一般化して記載すると以下のとおりになります。
Fはフィルタ処理なのですが、これは後述の例題で説明していきます。
<内部モデル制御の一般系>

■内部モデル制御の具体例
下記の様なシステムのモーター+円盤の角速度ω(t)をコントロールすることを考えます。

<モーターの微分方程式>
電圧と電流の関係式は以下のとおり(ω:モーターの回転速度, Ke:逆起電力定数)。詳細はこちらで説明。

またωと電流の関係は以下のとおり(J:イナーシャ, Kt:トルク定数)。

(1)(2)をブロック図で表現すると以下のとおり。

<内部モデル制御の設計>
先ずは制御対象物の逆関数のみをコントローラとして作ります。以下の様に目標角加速度を実現するような電圧v(t)を与えることを考えます。

先ずv(t)に対するωの式を導出します。(1)に(2)を代入。

上式がコントローラとなりますので、これを制御対象物に繋げると以下の様になります。

<Scilabで設計>
パラメータを以下とします。微分器の中身はこちら。
kt=0.5 , ke=0.5 , R=1 , L=0.1 , J=0.1

シミュレーション結果は以下のとおり。最終的には目標ωと実ωが一致しますが、最初に大きくずれています。
これは、目標ωの微分処理が強く影響しており、ステップ的に目標値が変化した時にずれが発生します。

<フィルタ処理>
これを直す手立てとして、目標ωにフィルタ処理を入れるのが一般的な手法の一つとなります。
以下の様にローパスフィルタを入れます(時定数は0.1を設定)。なお制御対象物はサブシステム化しております。

シミュレーション結果は以下のとおり。少しの応答遅れがありますが、素早く目標値に追従させることが出来ます。

またコントローラを設計する際のもう一つの留意点として、制御対象物にむだ時間が入っている場合、むだ時間の逆関数を取ることは出来ませんので、
むだ時間を除いてコントローラを設計する必要があります。
<外乱、モデル化誤差への対応>
外乱が入った時やモデル化誤差が発生した時の対応として、図1をScilabで設計すると以下のとおり。

制御対象物Pの中身は以下のとおり。2秒時点で外乱を0.5与えており、またモデルに誤差がある想定で制御対象物の特性を変えております。

シミュレーション結果は以下のとおり。外乱、モデル化誤差を与えても目標値に収束させることが出来ます。

■内部モデル制御の考察、更なる応用
① 内部モデル制御のテクニック
内部モデル制御は、制御対象物の微分方程式とその逆関数を求める必要があります。そこに難しさがあり、なかなかこの制御を使う事ができないと思うかもしれませんが、
実は厳密に微分方程式を立てなくても、内部モデル制御を使う事ができます。それはこれがモデル化誤差を許容している制御だからです。
ではどこまでのモデル化誤差なら良いのか考察します。こちらをクリック。
② 内部モデル制御とPID制御の関係
内部モデル制御は、古典制御のPID制御と動作を等価にすることができます。その上でPID制御の持つデメリットを解消したり、PIDより使い勝手のよい設計をすることが出来ます。
その理由をこちらで説明します。
③ 内部モデル制御と現代制御の関係
内部モデル制御は微分方程式を立てるところから、現代制御かと思うかもしれませんが、現代制御の様に状態方程式を立て、特性方程式から安定性を測ったりはしませんので、
どちらかと言えば古典制御に近いのかと個人的には思っております。現代制御との比較はこちら。
サブチャンネルあります。⇒ 何かのお役に立てればと
|