第7回:制御工学とは何か? 扇風機から学ぶ「思い通りに動かす」技術
これまでの記事では、力学や電気回路を題材に、身の回りの物理現象を数式で表現する方法を学んできました。
では、こうした知識は何のために役立つのでしょうか。
もちろん、物理現象を理解すること自体にも価値があります。しかし、エンジニアとして製品を設計するなら、もう一歩踏み込んで考えなければなりません。
「こう動かしたい」と思ったとき、どうすればその動きを実現できるのでしょうか。
ここからは、いよいよ制御工学の世界に入っていきます。
制御工学とは何か?
扇風機を思い浮かべてみましょう。
暑い日に扇風機の「強」ボタンを押すと、羽根が勢いよく回転し、強い風が吹いてきます。
反対に「弱」ボタンを押せば、羽根はゆっくり回転し、穏やかな風になります。
あまりにも当たり前の動作なので、普段は意識することもないでしょう。
しかし、少し考えてみてください。
扇風機は、私たちが「強」ボタンを押したことを、どうやって羽根の回転につなげているのでしょうか。
ボタンを押しただけで、羽根に直接力が加わるわけではありません。
実際には、ボタンの操作を受け取った電子回路が、モータに与える電気的な入力を決めています。その入力に応じてモータが回転し、羽根が風を生み出しています。
つまり、私たちの「もっと強い風が欲しい」という要求を、モータに与える入力へ変換しているのです。
この例のように、制御では、
思い通りの状態を実現するために、制御対象に与える入力と出力を適切に決める
ことが大切です。
これまで学んできた物理学では、主に「ある力を加えたとき、物体がどう動くか」を考えてきました。
一方、制御工学では「物体をこう動かしたいとき、どのような力を加えればよいか」を考えます。
扱っている物理現象は同じですが、問題を考える方向が逆になっているのです。
ただし、求める動きから必要な入力を単純に逆算すれば、必ず制御できるというわけではありません。
現実には、予想外の変化や外乱が加わることもあります。
そのような状況でも、できるだけ狙い通りの動きを実現するにはどうすればよいのか。
それを考えるのが制御工学です。
身の回りは制御だらけ
制御工学と聞くと、工場の巨大な機械や産業用ロボットなど、専門的な装置を想像するかもしれません。
しかし、実際にはもっと身近なところで使われています。
例えば、エアコンです。
リモコンで室温を25℃に設定すれば、エアコンは部屋をその温度に近づけようとします。
自動車も同様です。クルーズコントロールを60km/hに設定すれば、車はその速度を維持しようとします。
ほかにも、冷蔵庫、洗濯機、エレベーターなど、私たちの生活には制御技術を利用した製品が数多く存在しています。
ここで、これらの製品を使う私たちの立場から考えてみましょう。
エアコンを使うとき、内部でコンプレッサがどのように動いているかを理解する必要はあるでしょうか。
自動車を運転するとき、エンジンやモータがどのくらいのトルクを発生しているかを計算するでしょうか。
普通はそんなことをしません。
私たちが知りたいのは、エアコンなら「部屋が快適な温度になること」、自動車なら「思い通りの速度で走れること」です。
ユーザーにとって重要なのは、内部の複雑な仕組みではなく、求めた操作に対して期待通りの結果が得られることなのです。
このように、内部の仕組みには立ち入らず、入力と出力の関係だけに注目して考えることを、ブラックボックスとして扱うといいます。
例えば、次のように整理できます。
| 製品 | ユーザーの要求 | 制御対象への入力 | 得られる出力 |
|---|---|---|---|
| 扇風機 | 風量を変えたい | ボタンを押す | 羽根の回転速度 |
| エアコン | 室温を25℃にしたい | 温度を設定する | エアコンの風の強さと温度 |
| 自動車 | 60km/hで走りたい | 速度設定 | 駆動力 |

どの製品も、内部の仕組みはまったく異なります。
それでも、「入力を与えると出力が変化する」という点では共通しています。
もちろん、製品を設計するエンジニアは、内部の仕組みを理解する必要があります。
しかし、製品を利用するユーザーにまで、その理解を要求してはいけません。
むしろ、内部の複雑さを意識しなくても、誰もが簡単に使えることに価値があります。
とはいえ、最初から製品内部の細かい物理現象をすべて理解しようとするのはなかなか難しいと思います。
まずはブラックボックスとして捉え、「何を入力すると、何が出力されるのか」に注目してみましょう。
異なる製品でも、共通した制御の考え方が見えてくるはずです。
制御システムの基本構造
それでは、扇風機を例に、制御システムの中身をもう少し整理してみましょう。
扇風機はボタンを押すと、羽根の回転速度が変わります。
その時、ユーザーはモータにどのような電気的入力を与えるかまでは指定していません。
そこを決めるのが「制御器」です。
制御システムは、基本的に次のような要素で考えることができます。
- 目標値: 実現したい状態。例えば、羽根の目標回転速度。
- 制御器: 目標を実現するために、どのような入力を与えるか決める部分。
- 操作量: 制御器が決めた、制御対象に与える入力。
- 制御対象: 実際に動作する機械や装置。
- 制御量: 制御によって狙った状態にしたい量。例えば、羽根の回転速度。
扇風機なら、「強」ボタンの操作を受けて目標回転速度を設定し、制御器がモータへの入力を決め、モータと羽根が回転する、という流れになります。
ただし、ここで一つ問題があります。
制御器が適切に入力を与えれば、本当に狙った回転速度になるのかということです。
例えば、扇風機の羽根に汚れが付着したり、周囲の風の影響で羽根にかかる負荷が変化したりすると、同じ入力でも回転速度が変わる可能性があります。
このように、制御対象の動作に影響を与える外部からの作用を「外乱」と呼びます。
現実の制御システムでは、こうした外乱を無視することはできません。
つまり、制御器には二つの課題があります。
一つは、目標を実現するために適切な入力を決めること。
もう一つは、予想外の変化があっても、できるだけ目標に近い状態を維持することです。
この課題に対して、制御工学ではさまざまな方法が考えられています。
その基本となるのが、フィードフォワード制御とフィードバック制御です。
フィードフォワード制御:先回りして入力を決める
まずは、フィードフォワード制御(FF制御)から考えてみましょう。
例えば、自動車で一定の速度を維持したい場面を想像してください。
平坦な道路で60km/hを維持するためには、空気抵抗や転がり抵抗などに釣り合う駆動力が必要になります。
もし、その車が60km/hで走るために必要な駆動力をあらかじめ知っていたら、どうでしょうか。
60km/hという目標が与えられた時点で、必要な駆動力を計算して与えることができます。
これがFF制御の基本的な考え方です。
目標や、あらかじめ得られる情報をもとに、必要な入力を先回りして決めるのです。
例えば、平坦な道路なら100という大きさの駆動力が必要だと分かっていれば、その値を入力として与えればよいでしょう。
では、このまま上り坂に差しかかったらどうなるでしょうか。
上り坂では重力によって進行方向と反対向きの力が働くため、同じ速度を維持するには、より大きな駆動力が必要になります。
それにもかかわらず、平坦な道路と同じ100の駆動力を与え続ければ、車速は低下してしまいます。
ただし、坂道の勾配などが事前に分かっていれば、その情報を使って駆動力を増やすこともできます。
このように、FF制御は必ずしも目標値だけで入力を決めるわけではありません。測定した外乱などの情報を使う場合もあります。
FF制御の強みは、必要な入力をあらかじめ計算し、実際に速度が落ちる前から対応できることです。
一方、車の特性を正確に把握できていなかったり、想定外の外乱が発生したりすると、狙い通りの結果にならない可能性があります。
FF制御は、予測できることには強い反面、予測と現実のズレを出力から直接修正する仕組みを持たないのです。
では、こうしたズレに対応するには、どうすればよいのでしょうか。
フィードバック制御:実際の結果を見て修正する
そこで登場するのが、フィードバック制御(FB制御)です。
先ほどと同じく、60km/hで走行する自動車を考えてみましょう。
上り坂に差しかかり、必要な駆動力が不足したことで、車速が55km/hに低下したとします。
目標は60km/hなのに、実際には55km/hしか出ていません。
このとき、
「目標より5km/h遅いから、駆動力を増やそう」
と判断できれば、再び目標速度に近づけることができます。
反対に、下り坂で車速が65km/hになってしまったら、駆動力を減らしたり、必要に応じてブレーキを使ったりすればよいでしょう。
これがFB制御の考え方です。
実際の出力を観測し、目標とのズレをもとに入力を修正します。

この「目標値と実際の値との差」を偏差と呼びます。
FF制御では、あらかじめ分かっている情報から必要な入力を決めていました。
一方、FB制御では実際の結果を確認しているため、予想外の外乱が加わった場合でも、その影響を修正できる可能性があります。
エアコンも身近な例です。
室温を25℃に設定したとき、室温センサが27℃を示していれば、エアコンは冷房を強めるなどして温度を下げようとします。
やがて25℃に近づいてきたら、冷房を弱めるなどして室温を維持します。
外の気温が上がったり、部屋に人が増えたりしても、室温の変化を検出して対応できます。
ただし、FB制御にも課題があります。
実際の値を測定する必要があるため、センサなどの仕組みが必要です。
また、基本的には出力のズレを検出してから修正するため、外乱の影響を完全に未然に防げるとは限りません。
さらに、入力の修正が強すぎたり遅れが大きかったりすると、目標を行き過ぎたり、振動したりすることもあります。
目標に近づけようとして入力を増やしすぎると、今度は行き過ぎてしまう。そして、慌てて入力を減らすと、今度は反対側へ行き過ぎてしまう。
そんな動作を繰り返す可能性があるのです。
FF制御とFB制御は組み合わせられる
ここまで二つの制御方法を紹介しましたが、実際にはどちらか一方だけを使う必要はありません。
例えば、自動車の速度制御であれば、まずFF制御で60km/hを維持するために必要な駆動力を計算します。
そして、実際の速度が目標からズレた場合には、FB制御で不足分や過剰分を修正します。
つまり、FF制御で先回りし、FB制御で予測しきれなかったズレを修正するのです。
それぞれの特徴を整理すると、次のようになります。
| 比較項目 | FF制御 | FB制御 |
|---|---|---|
| 入力の決め方 | 目標や事前に得られる情報から計算 | 目標と実際の出力との差から修正 |
| 強み | ズレが発生する前から対応できる | 予測できなかったズレにも対応できる |
| 弱み | 予測やモデルの誤差に弱い | 観測が必要で、修正に遅れが生じることがある |
思い通りに制御するには、何が必要なのか?
さて、ここまでFF制御とFB制御を紹介してきました。
どちらも考え方自体はそれほど難しくなかったのではないでしょうか。
しかし、実際に制御器を設計するとなると、もう一つ解決しなければならない問題があります。
それは、どのような入力を与えれば、制御対象がどのように動くのかを知ることです。
例えば、扇風機のモータに与える電気的な入力を少し増やしたとき、回転速度はどのくらい変化するのでしょうか。
入力を変えた瞬間に回転速度も変わるのでしょうか。それとも、少しずつ加速するのでしょうか。
また、入力を大きくしすぎると、どのような問題が発生するのでしょうか。
こうした特性が分からなければ、FF制御で必要な入力を正確に計算することはできません。
FB制御でも、入力をどのくらい修正すべきなのか判断することが難しくなります。
つまり、制御器を設計するためには、制御対象の特性を理解する必要があるのです。
ここで、これまで学んできた物理学が再び登場します。
物体の運動であれば、ニュートンの運動方程式。
回転運動であれば、トルクと慣性モーメントの関係。
電気回路であれば、抵抗やインダクタンスなどを使った電圧方程式。
これらを利用すれば、入力と出力の関係を数式で表現することができます。
このように、制御対象の特性を数式などで表現したものを「モデル」と呼びます。
冒頭で、ユーザーにとって制御対象の内部構造はブラックボックスでよいと説明しました。
しかし、そのブラックボックスを思い通りに操る制御器を設計する立場では、内部で起きている物理現象や、入力と出力の関係を理解することが重要になります。
次回は、時間とともに変化する物理現象を、思い通りに制御するための考え方を学んでいきましょう。