きくちShinichiの学び場

某国公立大学の大学院1年生が気まぐれで書くブログ

適応学習制御理論 講義メモ

本記事について

本記事は筆者が大学院で受講した講義を復習用にまとめたものです。

受講する度に内容を加筆していきます。

万が一、内容に間違いや不適な表現がありましたら、コメントで指摘をいただけると幸いです。

 内容ごとに見出しを分ける予定ですが、一つの科目ごとに単一の記事で記載します。

もしかしたら、途中で方針を大幅に変えるかもしれません。ご了承ください。

 

フィードバック制御

適応学習制御を学ぶ前に、基本であるフィードバック制御について押さえます。

そもそも「制御」とは?

制御とは、制御対象であるシステムが望ましい振る舞いをするような操作量(入力)を決めることです。

操作量  u(t) をシステム  x(t) に入力した時のシステムからの応答  y(t) f : u(t) \rightarrow y(t) という写像関係として記述でき、やりたいこととしては逆写像  f^{-1} を求めることになります。

写像を求めるのは難しい

しかしながら、逆写像を正確に求めることは簡単ではありません。

  • 制御対象のシステムは物理現象を用いるため、微分方程式で記述されるケースが多い → システムを記述する全ての微分方程式を解く必要がある
  • システムそのものに何らかの変化が生じた場合、その度に逆写像を求めないといけない
  • システム外部のノイズや環境などによる外乱の影響を考慮するのが難しい

といった課題があります。

発想の転換!逆写像は知らなくても良い

望ましい振る舞いを実現する操作量を決めるために逆写像を考えていました。

しかし、目的を達成するには逆写像である必要はありません。

写像を導出した上で我々が操作量そのものを決めるのでは無く、何らかの仕組みによって望ましい操作量を生成してやれば良いです。

そこで、フィードバック制御という仕組みが用いられます。

「操作量をどのくらい変えれば出力が望ましい値になるか?」という考え方であり、出力の結果をフィードバックして操作量を決定します。

 

ざっくりとした流れは、人間が微調整して望ましい出力にするのと同じです。

「今は右にちょっとズレてるから、少し左に寄せて」

「時速60km超えてるから、少しスピード落として」

と、同じことをやっています。

PID制御(フィードバック制御でよく使う手法)

上記のようなフィードバック制御機械的にうまく行う手法として、PID制御がよく使われます。

PID制御では、入力  u(t)偏差(制御量の現在の値と目標値の差)  e(t) を用いて以下の式で決定します。

 u(t) = K_p e(t) + K_i \int^{t}_{0} e(\tau) d\tau + K_d \frac{\rm{d}}{\rm{dt}}e(t)

ここで、 K_p\,,K_i\,,K_d は独立した定数です。

また、 K_p e(t) を比例項、 K_i \int^{t}_{0} e(\tau) d\tau積分項、 K_d\frac{\rm{d}}{\rm{dt}}e(t)微分項といいます。(そのまんまですね)

比例(Proportional)と積分Integral)と微分Differential)を用いていることから、それぞれの頭文字をとってPID制御と名付けられています。

それぞれの項が持つ役割のイメージとしては

  • 比例項は現在の偏差
  • 積分項は過去の偏差の蓄積
  • 微分項は未来の偏差 

と考えるとわかりやすいです。現在・過去・未来の情報を元に操作量を決める制御方式であり、望ましい出力となるためにやることは  K_p\,,K_i\,,K_d を決めることとなります。逆写像を求めるより圧倒的に簡単ですね!

状態フィードバック制御(現代制御)

先述のPID制御は強力な手法なのですが、それでもシステム内部の時間変化(Ex. 回路に流れる電流によって発生したノイズの影響など)を表現しきれない、という課題があります。

そこで、システム内部の状態を表す内部変数を導入した状態フィードバック制御という考え方が現れました。現代制御理論とも呼ばれています。(対照的にPID制御などの手法は古典制御と呼ばれています。)

違いとしては、古典制御では1入力1出力なのに対し、現代制御では多入力多出力に対応している点です。

状態フィードバック制御では、「システムの出力  y(t) は、入力された操作量  u(t) によって変化した内部変数のうちのいくつかが観測されている」と考えています。

 

(第1回分ここまで)