知識ゼロから始める、制御工学の基礎

未分類
この記事は約9分で読めます。

以前から何度か制御工学について記事は書いていますが、正直、過去記事にはふわっとしたことしか書いていません。

なので、これから制御工学についてちょっと勉強しようかな、と思っている人が読んでも「こんな使いみちがあるのか」ぐらいで、具合的な理解には殆ど役に立たないと思います。笑

そこで、今回はちょっと踏み込んで、

  • 制御工学では具体的にどういう問題を扱うのか
  • どんなツールを使って問題を解決していくのか

ということについて書いてみようと思います。

大学の講義風にいうと制御工学概論、って感じですかね。

そもそも “制御” とは何か

そもそも “制御” するってどういうことでしょう?一言でいうと、

”動かす対象” を ”狙い通り” に動かすこと

です。なぜこんなところからスタートするかというと、上の文言が制御問題の定式化につながるから。より工学っぽく言えば、

“制御対象” を “要件” を満たすように動かすこと

と言えます。従って、制御工学で行っていることは大雑把にいうと下記の3つです。

  1. 制御対象の振る舞いを数式を用いて表現する
  2. 要件を定量的に(具体的な数値や数式で)表現する
  3. 上記2つを用いて、要件を満たす制御入力(動かし方)を求める問題を解く

…こうやって言葉で書いてしまうと非常にシンプルなのですが、数式を使って制御対象の振る舞いを表現したり、要件を表すにはそれなりに色々な知識が必要になるので、真面目に勉強するとけっこう大変です。。

ここでは、制御工学を学ぶきっかけとなることを目標として、

なるべく数学的な用語を使わずに説明します。

制御理論の分類と特徴

制御工学で扱われる理論は、大きく分けて古典制御現代制御非線形制御の3つあります。(大学や専門学校の講義で習うのは古典制御、現代制御だけだと思います)

それぞれの特徴は下記の通り。

まあ、いきなり見せられてもナンノコッチャって感じだと思うので、以下、1つずつ解説していきます。

古典制御

大学の授業で真っ先に習うのがこの古典制御理論。厳密に言えば多入力多出力のシステムも扱えなくはないのですが、理論的に難しくなってしまうため、1入力1出力のシステムを扱うことが多いです

制御対象の表現(伝達関数)

古典制御では、入出力の関係を考慮し、伝達関数というものを使って制御対象の振る舞いを表現します。

伝達関数の意味合いとしては、制御対象に正弦波を入力したときに、振幅や周波数がどう変化するかを表したものになります。

なぜ正弦波なのか?と疑問に思われるかもしれませんが、その理由は、超大雑把にいえば、任意の信号は正弦波の重ね合わせで表現できるという考えに基づいています。

信号が様々な周波数の正弦波の重ね合わせでできているということは、どの周波数成分がどれぐらい含まれているのか、というものを考えることができます。これを、周波数を軸として示したものを周波数領域での表現といいます。

そして、この周波数領域での信号を用いると、

出力信号 = 伝達関数×入力信号

と、シンプルに表すことができます。

制御の要件定義と制御器の設計

制御対象の伝達関数がわかったあと、次に考えるべきことは

どういう制御をしたいのか

ということですが、制御の狙いとして代表的なのは

  • 安定化(出力を0に収束させる)
  • 目標値追従(出力を目標値に収束させる)

です。上記にプラスして、何秒以内に収束させるだとか、なるべく消費エネルギーを抑えるだとか、外乱に強くしたいだとか、追加の要件を考えることも多いですが、大きな狙いとしては上の2つが多いです。

要件が決まったら、それを達成できるような制御器を設計します。もう少し具体的に言うと、制御要件を満たせる制御器の伝達関数を求めます

例として、目標値追従のための制御器設計までの流れを下記に示しておきます。

しれっと書いてますが、時間領域から周波数領域に信号を変換するのは、ラプラス変換というものを使います。定義含め、ラプラス変換を数学的に正しく理解するのは色んな前提知識がいるのでかなり難しいとは思いますが、基本的な関数のラプラス変換であればラプラス変換表という早見表みたいなのがあるので(ググればすぐ出てくる)、それを使えば簡単な制御器設計くらいはできてしまうかもしれません。

古典制御のポイント
  • 時間領域の信号をラプラス変換で周波数領域の信号に変換して考える
  • 制御器の設計とは、制御器の伝達関数を求めること

現代制御

古典制御では伝達関数を用いていたのに対して、現代制御では状態空間表現という形でシステムを表現できます。

状態空間表現

状態空間表現とは、制御対象の内部状態をx、制御入力をu、出力をyとして、

\begin{align*} \left\{ \begin{matrix} \dot{x}=Ax+Bu\\ y=Cx+Du \end{matrix} \end{align*}

の形で表現したものをいいます。ここで A, B, C, D は行列、x, u, y はそれぞれベクトルになるため、複数の状態、入力、出力を持つシステムを扱うことができます。図で表すとこんな感じ。古典制御では入力 u と出力 y しか考えていなかったのに対し、下記では制御対象の内部状態として x が考慮されています。

…何やら難しそうな感じがしますが、要は運動方程式や電気回路の関係式など、時間領域での関係式を用いて制御対象の振る舞いを表現できる、ということです。

時間領域の式であるため、内部構造がわかりやすいというメリットがあります。

さらに、状態空間表現では

  • 可制御性(任意の制御が実行できる性質)があるかどうかがわかる
  • 可観測性(出力から内部状態を推定できる性質)があるかどうかがわかる
  • 伝達関数を求めることができる

ということができるため、古典制御よりも多くの情報を得ることができます。

現代制御のポイント
  • 状態空間表現を使うことで、時間領域の式で制御対象を表現できる
  • 制御対象の性質について、古典制御よりも多くの情報を知ることができる

非線形制御

世の中に存在する制御対象は、大なり小なり何らかの非線形性を持つことが多いです。例えばタイヤの摩擦力特性なんかがいい例でしょう。

自動車の運動に対して古典制御や現代制御の考え方を適用する場合、横滑り角が非常に小さいという前提(すなわち、タイヤがスリップしていない前提)で考え、タイヤの摩擦力を線形近似(直線で近似すること)する必要があります。

このように、非線形性をある1点の近傍で線形近似を行って古典制御や現代制御理論を適用するのに対し、非線形制御理論は、線形近似を行わずに非線形のまま考慮して制御するという理論です。

そんなことできるなら最初からそうすりゃいいじゃん、と思うかもしれませんが、理論としては格段に難しくなります。まず第一に、伝達関数が使えないため周波数領域で考えることができません。他にも、古典制御や現代制御で当たり前のように使っていたツールが使えないため、別のアプローチをする必要があります。

詳しくはここでは述べませんが、非線形制御だと最適制御とかモデル予測制御などが主に実用化されている印象です。

非線形制御のポイント
  • 非線形性を近似することなく扱うので、従来の制御よりも適用範囲が広い
  • しかしながら理論的に難しく、まだまだ発展途上

本日のまとめ

制御工学について、主にどんな理論があるのかという触りの部分だけですが解説してみました。

特に古典制御理論は企業でもけっこう使われることが多いので(昔受けた某企業では、入社試験に制御の科目があったし…)、こういう前提知識だけでも知っておくと理解度が深まると思います。

もっと細かい話は、やる気が出てきたら書こうかな。笑

制御工学に興味のある方、これから授業で習う予定の方の助けに少しでもなっていれば幸いです。

2021.05.22 追記

もうちょっと細かい話に関する記事を、こちらにまとめました。

2021.06.24 追記

udemyで講義の動画を公開しようと企んでいるので、準備として導入編の講義資料をスライド形式で作ってみました。少しでも参考になれば幸いです。

知識ゼロから始める制御工学1

 

参考文献

制御工学を学ぶ上で、より理解の助けになるような文献を紹介します。

けっこう数学の知識を必要とする学問なので、その辺の参考書も紹介しておきます。

フィードバック制御入門(コロナ社)

制御界では有名な杉江先生の著書。古典制御の基礎的な部分はこれで理解できると思います。昔、杉江先生の授業も受けたことあるんですがわかりやすかったんですよね。

非線形最適制御入門(コロナ社)

非線形制御について書かれた本はそこまで多くありませんが、比較的とっつきやすいのはこの辺だと思います。最適制御というのは、評価関数という指標を設定し、それを最小(または最大化)するという意味で最適な制御器を設計するという手法です。

数学的な知識がいるところはきちんと章立てて説明されているので、文字通り非線形制御の入門書としては丁度いいかもしれません。

フィードバック制御理論~安定化と最適化~

非線形制御の勉強にいいなと思ったのがこの本。基本的な予備知識はもちろん、様々な制御手法についてかかれており、非線形制御について幅広く勉強できます。

エレガント線形代数(現代数学社)

制御、特に現代制御について理解するには、線形代数の知識が不可欠になります。

この本では、線形代数の考え方についてわかりやすく書いてあるので、より深く理解して勉強できると思います。

システムと制御の数学

ネットで探してみたけど、amazonにしかなかった…

古典制御や現代制御に必要な、線形代数や関数解析の知識を中心に丁寧に解説された本です。価格が少々高いのは、おそらくプレミアでしょうか。。

ちなみに英語版の “From Vector Spaces to Function Spaces” というのもあって、こちらのほうが制御工学への応用に役立つ項目が追加されていたりするのですが…いかんせん価格が高い。。いや、専門書なんてそんなもんかもしれんけど。。

でも解説は丁寧で良い本なので、古本屋などで見かけたら買っておくことをお勧めします。笑



いかがでしたでしょうか。本文含め、大学の講義1回分くらいの内容はあると思います。今でもちょこちょこ書店を漁ってたりするので、また面白そうな文献みつけたら紹介します。

 

コメント