2016年5月1日日曜日

多入力多出力系とは

自分も初めて聞いた時に,

多入力多出力系ってなんぞや?入出力ごとに制御系組めばいいんじゃないの?

とおもったので,覚え書き程度にまとめておきます.

多入力多出力系(システム)とは,制御工学において,入力および出力が1つだけではないことを指します.

一体何言ってるかわかんないよね.

ということで制御工学でときおり出てくる,多入力多出系について.

多入力多出力系(Multi Input Multi Output; MIMO; マイモ)系とは,上で述べているように入出力が1つではない制御対象の事を言います.

多入力多出力系は,よく制御が困難であると言われます.

この記事では,多入力多出力系の制御のどこがどう困難であるのかについて,簡単に述べたいと思います.


DCモータの速度制御では,モータに電圧を与えて速度を一定に保ちます.
このとき,フィードバックを掛けるか否かにかかわらず,入力は電圧の1つで,出力は回転速度の1つだけです.
同様に,位置制御では入力は電圧で,出力は回転角度であり,これも1つの入力で1つの出力です.

これを多入力多出力系とは対照的に,単入力単出力系(Single Input Single Output; SISO)と呼びます.
制御工学(古典制御論)の本でよく扱われる制御対象は,この単入力単出力系が多いです.

単入力単出力系の多くは,次のような伝達関数で表されます.

これは,時定数がで,ゲインがである,入力から出力までの,1次の伝達関数です.
このような伝達関数が,電圧を与えた時のモータ速度などの制御対象の応答を表します.

このとき,この伝達関数の入力はの1つ,出力はの1つであり,単入力で単出力となっています.

基本的に,伝達関数で表現される制御対象は,単入力単出力系です.
制御工学と聞いてぱっと思い浮かぶのは伝達関数とかラプラス変換ではないでしょうか.

冒頭で制御工学の本でよく扱われる制御対象は単入力単出力系と書いたのはこのためです.
古典制御の本では,このような単入力単出力の系に対して,PIDなどのコントローラを設計することについて述べられていることが多いかと思います.

ここで,

モータが2つの場合は2入力2出力になるから,多入力多出力系なんじゃないの?

と思いますが,残念ながらここでは単入力単出力系として扱います.
なぜなら,それぞれのモータに干渉がないためです.

例えば,2個のモータを個別に速度/位置制御する場合や,以下のXYテーブルのように直交配置している場合を考えます.

XYテーブル
XYステージ ALD-220-C2P; 中央精機株式会社

この場合,モータ1を動かしてもモータ2は動きませんし,反対も同様です.
するとモータ1,モータ2に対して個別に制御を行えばよいので,古典制御の議論と同様にして制御系が設計できることと思います.

じゃあ,多入力多出力系ってなんなの?

という話になると思います.

簡単に言うと,それぞれの入力から出力に干渉が存在する系です.
(厳密な定義は別にあると思いますが,ここではこの場合についてのみ述べます.)

多入力多出力系の例としては,以下のようなものがあります.

スカラロボット YK500TW; ヤマハ発動機

2輪型倒立振子ロボット Beauto Balancer Duo; ヴィストン

上のスカラロボットの場合だと,モータ1とモータ2がリンクアームによって直列につながっているので,モータ1を高速で動かすと,それによってモータ2が回転します.
反対側も同様に,モータ2を回すとモータ1が回転します.

このように,それぞれの入出力において,干渉が発生しています.

製品のスカラロボットだと,減速比を高めに設定して,干渉が少なくなるように設計されています.
(たぶん)

一方で,より高速な駆動をするため,ダイレクトドライブモータを使ったスカラロボットも研究されていて,この場合だと減速比が小さい(減速していない)ので,モータ1が回転した時のモータ2への影響は大きくなります.

製品においても,干渉は少なからず存在するのではないかと思います.

下の倒立ロボットの場合だと,モータは1つなのに対して,倒れないように姿勢と,本体の位置を調整しています.
このため,入力はモータへの電圧1つ,出力は本体の角度と位置の2つとなります.

このような1入力で2出力の系も,多入力多出力系に分類されることが多いようです.

多入力多出力系は,このような干渉の影響によって,古典理論による制御が困難になっています.

このような多入力多出力系は,以下の様な伝達関数で表わされることもあります.

これは,入力がの2つ,出力がの2つである,2入力2出力系です.
は,入力から出力までの伝達関数です.

MIMO process

図にするとこんな感じ.
ただし,は入力は出力に対応しています.

このとき,伝達関数干渉項にあたります.
これらがゼロの場合は,モータの直交配置の場合と同様になるため,単入力単出力として扱うことができます.

問題は,これらの干渉項が存在する場合です.

スカラロボットを例に取ると,モータ1に電圧をかけて回転させ,リンク1の応答を取り,そこから伝達関数を同定することは制御を行う際によくあることと思います.

古典制御だと,リンク1のモータに対してPID制御系を設計し,次にリンク2のも同様にして…という流れになると思いますが,干渉項の影響が大きい場合には,およびの出力が,出力側に外乱として現れます.

応答を速くしようとすればするほど,入力も大きくなるので,干渉項の影響は大きくなります.
これによって外乱も大きくなり,制御が困難になります.

倒立二輪ロボットの方はさらに特殊で,この干渉項によって無理矢理に立たせているような感じです.

出力の数(自由度)に対して,入力の数が少ない系を劣駆動システムと言ったりもします.
(そもそもどちらが干渉項にあたるのかわからない)

このように,

  • 入力または出力が1つ以上である
  • 入力から出力までの間に干渉項が存在する

ような系が,制御が困難と言われる多入力多出力系ではないかと思っています.

古典制御の伝達関数表現では,1つの入力に対する1つの出力の応答のみを取り出していたため,
前述のような干渉要素により,このような系の制御が非常に困難でした.

これらの制御を行うため,現代制御理論や非干渉化(デカップリング),逆動力学(スカラロボットの場合)が用いられてきました.
こちらに関しては別の記事で述べられればいいかなと思っています.

0 件のコメント:

コメントを投稿