最近では,制御に関する話題は数学的で初心者には困難を極めています。私は今現在,最近の制御に関する本1)をある先生から紹介していただき,読んでいるのですが,かなり苦しんでいまして,本を「読んでいる」というよりは「見ている」といったほうがはまっている感じです。
今回,紹介させていただく内容は残念ながらその本とは関係ありません。多少の数式が出てきますが,初期の大学程度の数学および物理の教養があれば十分,事足りると考えています。内容に関してですが,これは,大学院の講義で紹介および,課題として与えられた内容に手を加えたものになっています。トピック的でおもしろいと思いましたのでここで紹介させていただきます。
制御にはアナログ制御とディジタル制御という分け方があります。アナログ制御は連続系であり,ディジタル制御は離散系と対応しています。最近のコンピュータを使ったコンピュータ制御システムでは,ディジタル制御でA/D変換とD/A変換を使ったものになっています。例えば,図1に示すようなコンピュータ制御システムが考えられるでしょう2)。
この図にみられるようにこのコンピュータ制御システムではプラントは連続系であり,コンピュータは離散系で扱われます。つまり,連続系と離散系とで制御システム全体を構成しているわけです。すると,連続系のものを制御するために一時的に離散系に近似して何らかのアルゴリズムをもって処理を行い,連続系に変換してプラントに入力するという過程が必要となっています。ここで,技術的に大きく関わっている1つがA/D変換,D/A変換です。
これらの技術で一般によく知られているのがサンプリングの定理です。サンプリングの定理の特徴は次のようなものです。
ωs≧2ωn
ωs:サンプリング角周波数
ωn:プラント最大角周波数
………(1)
①においてサンプリング周期がプラント最小周期の1/2より長いとエイリアシングという現象が起きます。ですから,あらかじめローパスフィルタなどを通した信号なりをサンプリングするなど対処方法があります2)。
一方,サンプリングした信号なりを処理するときにも問題があります。本内容で紹介するのはこちらの問題です。それは何かというと処理のアルゴリズムとして連続系のままで計算すると系は収束するのですが,連続系を離散系に近似すると系が発散してしまうということです。次に簡単なモデルを紹介し,それに対してこの問題を考えてみます。
図2に示す一般的なばね,質量,ダンパからなる力学系モデルを考えます3)。
ここで,mは質量,kはばね定数,dは減衰係数,ysは平衡の位置,yは質量の平衡の位置からの距離を示しています。それで,これらの値を簡易的に下記のように設定します。
これらを用いて状態空間表現で式を表すと次のようになります。
………(2)
この系において,x(0)=0としてステップ応答をEuler法で求めるとします。
この問題にあたって基本的に2つの内容ある事柄を考えています。
1つ目は連続系を離散系に近似することです。本内容ではEuler法といわれる方法で行うことにします。
2つ目はこの制御系の固有値に関することです。後で固有値を算出しますが,結果として,固有値は-1と-100になり,2つの固有値に大きな開きがあります。このような制御系をスティッフな系といいますが,これはコンピュータで計算を行うにはやっかいな問題になります4)。
式(2)を次式のように記号的に表します。
………(3)
ここで,連続系を離散系に近似するためにEuler法(または,1/0パデーともいわれる)5)を使って式(3)を離散系に近似すると次式が得られます。
………(4)
ただし,hは時間刻み幅。式(3),(4)より,
x(t+h)=(I+Ah)x(t)+hBu(t)…………(5)
ここで,t=khとおくと式(5)は,
x{h(k+1)}=(I+Ah)x(kh)+hBu(kh) …………(6)
ここで,hは各項に共通するため,簡易のため省略すると式(6)は次式になります。
x(k+1)=(I+Ah)x(k)+hBu(k)………(7)
続いて,次に示すような変換をします。
………(8)
ただし,λ1λ2は行列Aの固有値でPはAの対角化行列です。以下にこれらを示します。
………(9)
これらを用いて式(7)を書き直すと,
x(k+1)=PΛP-1x(k)+hBu(k)…………(10)
続いて,上記式の左辺がx(k)のとき,つまり1つ刻み前のときは次式で与えられます。
x(k)=PΛP-1x(k-1)+hBu(k-1) …………(11)
式(11)を式(10)に代入すると,
x(k+1)=PΛ2P-1x(k-1)+hPΛP-1Bu(k-1)+hBu(k)…………(12)
同様な作業を行うと次式が得られます。
………(13)
ただし,Λ0=Iとします。
ここで,条件から,x(0)=[0,0]T,u(t)=u(uは定数)なので式(13)は次のようになります。
………(14)
ここで,
………(15)
とおき,式(14)を計算すると,
………(16)
次に,連続系のままで式(1)の解を求めてみます。まず,式(1)を題意の条件のもとでラプラス変換をし,求めたものから逆ラプラス変換でX(t)を求める。すると,次式のように与えられます。
………(17)
式(17)よりx(t)は次式のように収束します。
………(18)
入力をu=1として単位ステップ応答を計算します。刻み幅h=0.001,時間t=5(s)として計算した結果を図3に示します。図からx1は0.01に,x2は0に収束しており,Euler法による方法での連続系から離散系への近似がうまくいっていることがわかります。
続いて,刻み幅h=0.01,時間t=5(s)として計算した結果を図4に示します。刻み幅hとこのシステムの固有値の1つのλ2とが逆数関係になっておりe22が1となります。ですが,e22は増加関数でなく定数1なのでこの刻み幅でも単位ステップ応答が収束していることが図からわかります。
続いて,刻み幅h=0.02,時間t=5(s)として計算した結果を図5に示します。図よりx2が正と負の方向に振れ始めています。
続いて,刻み幅h=0.03,時間t=0.5(s)として計算した結果を図6と図7に示します。
2つの図よりx1とx2ともついに発散を起こしています。連続系で計算をした結果と連続系を近似した離散系で計算した結果が決定的に異なってしまい,しかも,連続系では収束する系が,離散系では最悪の発散をしてしまっています。
本内容では,はじめに対象としているコンピュータ制御システムについて説明を行い,その中で連続系を離散系に近似した場合に問題となる現象を紹介してきました。連続系を近似した離散系の時間刻み幅と系の固有値との関係についてこれらの関係によっては連続系では収束するが,離散系で発散をしてしまうということを紹介してきました。コンピュータ制御システムの開発を考える場合,設計の段階での1つの助けとなればと考えています。
最後に宮城職業能力開発短期大学校機械システム系講師遠藤和芳氏には本内容をまとめるにあたって有益なご助言をいただきありがとうございました。