【古典制御】ラプラス変換の前にフーリエ級数展開を噛み砕いてみる
本記事の目的
制御工学を学ぶ際,特に理由がなければ古典制御から手を付けると思います.
導入として,制御とは何なのか,実際にどんな役に立っているのか,などを知り,ワクワクして本番へと進みます.
そして,「ラプラス変換」と対峙します.
多くの場合,このラプラス変換は天下り的に変換式を与えられ,それ自体にはあまり触れずに,その使い方や威力を教えられます.
私は,初めて制御工学を学んだ時,この最初のステップで制御工学への興味を失いました.正確に言うと,興味を失った原因の基を辿ると,ここだったと思います.
ラプラス変換を使うと色々ないいことがあるというのは分かるのですが,ラプラス変換の得体が知れないので,結局何をやっているのか,確かな感触を感じて理解できなかったのです.
もしラプラス変換ともう少し仲良くなれていたら,その後の学習内容もよりよく理解できたかも・・・.
そこで,少しでもラプラス変換と仲良くなることを目指し,噛み砕いてみることにしました.
しかし調べてみると,ラプラス変換の説明というのは一筋縄ではいかないもののようです.
一つの記事にまとめると長くなりすぎそうなので,記事を複数に分け,順を追って理解を深めることにしました.
その第1弾として,本記事ではラプラス変換とよく似た変換でありながら,物理的な意味を理解しやすい「フーリエ変換」・・・を理解するために,その前身とも言える「フーリエ級数展開」について整理します.
この記事だけでラプラス変換について何の情報も得られませんが,後の記事での説明をグッと理解しやすくするはずです.
記事を複数に分けたにも関わらず,かなりの長文となってしまいました.
長文になった原因は関連する用語の解説を入れたことですが,私としてはこれらの用語も合わせて整理した方が理解しやすいと思いますので,記事をさらに細分化することはせず,このままにすることにしました.
読んでくださる方にとっては大変かもしれませんが,どうぞお付き合いください.
想定する読者
- 三角関数の存在くらいしか覚えていない将来の自分
目次
1. フーリエ級数展開の概要
フーリエ級数展開とは,『周期的な信号(関数)を三角関数の組み合わせで表現できるとしたら,どのような形になるか?』を考えた末に行きついた展開方法です.
三角関数は周期的な関数の代表と言っていい有名な関数であり,数多くの便利な特性を持つことが分かっています.
もし「正体はよく分からないけどとにかく周期的な関数」を三角関数で表現することができれば,その対象の関数を三角関数の特性を利用して調べることができます.
それでは,フーリエ級数展開の式を見てみましょう.
ここで,は対象とする周期的な関数,は直流成分の係数, は各三角関数の振幅(係数),は自然数(0を除く)です.
三角関数で表現する,と言った割に,早速そうでないがあることに違和感を感じるかもしれませんが,これを周波数0の余弦波()の振幅としてみると,一貫性を感じられると思います.
式\eqref{eq:1}のについておさらいします.
のとき,この三角関数の周波数はとなります.同じ意味ですが,角周波数がであるとも言えます.
このことは,この三角関数が時間で1周するような周期性を持っていることを意味しています.
また,の場合は周波数,角周波数が共に2倍になります.
このことは,時間で2周することを意味します.
今,は自然数,つまりとしているので,式\eqref{eq:1}の右辺第2項は,でちょうど周する三角関数の総和となっていることになります.
三角関数としては,が自然数でなく,任意の実数であっても問題ありません.
しかしここでは自然数の場合のみを扱います.
これは,対象とする関数が周期的であり,その周期があらかじめ分かっていることに起因します.
つまり,『周期を表現するための周期的な関数(=三角関数)も,同じようにで周期的であろう』,ということです.
さて,このように三角関数の角周波数について決めることができましたので,後はそれぞれの振幅である式\eqref{eq:1}内のを決めれば良いことになります.
フーリエ級数展開における各振幅を,「フーリエ係数」といいます.
このフーリエ係数を求めることが,フーリエ級数展開を実行する際の実質的な目標になります.
2. フーリエ係数を求める
2.1. 右辺第1項の係数(直流成分)を求める
最初に直流成分を求めてみましょう.
実はこれは非常に簡単です.
答えを言ってしまうと,対象とする関数を1周期分,例えば0を中心にしてで積分してしまえば,を求めることができます.
実際にやってみましょう.
式\eqref{eq:1}の両辺をこの区間で積分すると,以下の式のように表せます.
ここで,次の関係を利用します.
これにより,結局式\eqref{eq:2}の右辺はの項だけが残るので,
となります.これをについて解くことで,
と求まります.
2.2. 右辺第2項以降の係数を求める
2.2.1. 三角関数の積分に関する面白い性質(直交性)
前節のを求める計算では,三角関数を1周期分積分すると,その周波数に依らず常に0となることを利用しました.
を求める際もこれと同様の発想を用いたいのですが,そのためにはちょっと工夫が要ります.
この工夫の際,次の特性が非常に役立ちます.
本質的には同じですが,今回は式\eqref{eq:1}に合わせて次のように変え,利用します.
ここで,
という記号を用いました.
この記号は「クロネッカーのデルタ」と呼ばれます.
式\eqref{eq:3}のように場合分けの表記を簡略化するのに便利なため,よく用いられます.
式\eqref{eq:3}が実際に成立することを確認してみましょう.
確認では式\eqref{eq:3}の左辺を計算し,右辺に一致するか調べるわけですが,左辺の積分を簡単に行うために三角関数の加法定理を用います.
加法定理のことは忘れないと思いますが,具体的な式はよく忘れてしまうので,以下に最低限のものを記します.
それでは式\eqref{eq:3}の左辺を計算してみます.
3行目から4行目では,を用いています.
式\eqref{eq:4}の最終的な右辺の第2項を見ると,であることからですので,常に0となることが分かります.
一方で第1項は,となる際に分母が0となりますので,場合分けして考える必要があります.
分母が0になる際には,以下の特性を利用します.
したがって, の場合,
であり, の場合,
となることが分かります.
以上をまとめることで,式\eqref{eq:3}を得ることが出来ました.
これと同様にして,以下の関係も導くことができます.
式\eqref{eq:5}は,式\eqref{eq:4}の最終的な右辺第2項の符号が変わるだけであり,これはどちらにせよ0になってしまうので結果に影響しません.
式\eqref{eq:6}では,式\eqref{eq:4}の3行目から4行目にあたる計算の際,であることから全ての項が0となって消えてしまいます.
結果として,式\eqref{eq:3}, \eqref{eq:5}, \eqref{eq:6}を見ると,周波数も含めて全く同じ三角関数同士の積の場合のみ定数が残り,それ以外では全て0になることが分かります.
詳しくは後で補足しますが,このような特性を「三角関数の直交性」と呼ぶこともあります.
2.2.2. 直交性を利用して係数を求める
それでは,以外のフーリエ係数を求める問題に視点を戻します.
前節で確認した特性を利用すると,以下の式を得ることができます.
これは式\eqref{eq:1}に示したの両辺にをかけたものを積分して得られます.
この時,前節で示したように,全く同じ三角関数同士の積以外の項は0となり,消えてしまいます.
なお,の項も係数を求める際にやったように,1周期分の積分で0となります.
ここはビックリポイントだと思います. 無限に項があったのに,欲しいところだけ残して消えちゃいました!
さて,ここまで来てしまえば,あとは式\eqref{eq:7}を整理するだけでを求めることができます.
また,お察しのとおりも同じように,対応する角周波数の関数を掛けてから積分することで導くことができます.
2.3. まとめ(フーリエ係数の計算式)
長くなったので結果だけをまとめると,フーリエ係数を求める式は以下であることが分かりました.
こうして求まる係数を式\eqref{eq:1}に代入することで,対象の関数を三角関数の組み合わせで表現することができます.
3. 計算内容を噛み砕いてみる
丁寧な説明を心掛けたためか,すでに本記事の文章量が多くなっていると思いますが,このままではフーリエ級数展開を導く過程のパズルのような面白さは分かっても,その意味的理解といいますか,イメージのようなものを掴めないと思います.
そこで,上記の計算内容が数学的にどんな意味を持っていたのか,噛み砕いてみます.
3.1. 第2.2.1節の特性をなぜ「直交性」というのか?
フーリエ級数展開では,フーリエ係数を求めることが実質的な計算内容でしたが,この時に活躍したのは第2.2.1節で説明した三角関数の特性でした.
そこでは,全く同じ三角関数同士以外の積を1周期分積分すると0となることを示し,この特性を「直交性」と呼ぶと説明しました.
ここでの「直交」とは何を意味しているのでしょうか?
直交という言葉を聞いて,最初に思い浮かぶのは2次元平面における2つの線分が直角(90°)に交わるイメージだと思います.
また,xyz座標を用いて表現される3次元空間(直交座標系)も,全ての軸が直交している空間として理解しているでしょう.
(その名の通りなので当たり前ですが.)
これらが確かに直交していることは実際に紙に書いたり造形してみたりして,それを定規や分度器で測ることで確認することができます.
それでは,4次元以上の多次元空間など,抽象的な空間についてはどのように「直交しているか?」を調べればよいのでしょうか?
こういった場合にも,数学的に「直交する」条件を考えることができます.
それは,「内積が0となること」です.
先ほどの2つの例も,直交するもの同士の内積を計算すると0になることは知っていますので,少し親近感のある定義だと思います.
そして,第2.2.1節で説明した特性を「三角関数の直交性」と呼ぶ理由は,異なる三角関数同士の内積が0になることに起因しています.
・・・ん?関数の内積?
3.2. 関数の内積
3.2.1. 内積とは?
内積といえば,2つのベクトルに対して行う計算を思い浮かべると思います.
この理解は正しく,そのまま今回の話に適用することができます.
しかし,もう少し理解を深めるために,内積の定義を確認しておきましょう.
この上のベクトル空間における内積とは,の直積空間からへの写像
であり,の任意の元と任意のスカラーに対し,次の4つが成り立つものをいう.
1. ,かつ等号が成り立つのはのときのみ
2.
3.
4.
なお,はの複素共役として用いました.
また,内積を表す記号として,を用いました.
これは「ディラックのブラケット記法」などと呼ばれるもので,「」の部分を「ブラ」,「」の部分を「ケット」とそれぞれ呼びます.
内積を示す際によく用いられる記法は他にも多くあり,などがあります.
今回は,ロボティクスを学ぶ人間にとって最もなじみのなさそうなものを選びました.
これを機に私も慣れていきたいです.
さて,定義を見ると,また難しそうな言葉がたくさん出てきました.
ちなみに,元というのは単に集合を構成する要素のことです.なじみがないかもしれませんが,シンプルなのでこの説明だけで問題ないでしょう.
元を除くと,すぐに理解できない言葉は以下の3つだと思います.
- 上のベクトル空間
- の直積空間
- からへの写像
そこでこれらについて節を分けて説明します.
説明の順序は上とは異なり,簡単に説明しやすいものから書いていくことにします.
3.2.2. 直積空間とは?
これはシンプルで,2つのものの組み合わせでできる集合をイメージしてもらえれば良いと思います.「直積集合」と呼ばれるものと同じです.
例えば,行数がで列数がの行列を考えたとき,その行列の要素数はになりますが,この要素全てから成る集合は直積空間です.
このことを定義として整理しておきましょう.
ここで表れた「順序対」というのは,2つの要素をこの順序で組み合わせたものです.
順序が異なると別の順序対とみなします.つまり,です.
なお,順序対のことを単純に「対」ということもありますが,逆に順序対と対を区別することもあります.この辺りは読んでいる文書などにおける用語の定義をよく確認した方が良いでしょう.個人的には,要素の順番が重要であることを意識して,順序対という言葉を用いる方が良いと思っています.
ここで少し注意があります.
上では順序対の表記をとしました.
しかし実はこの表記は,内積の表記の一例としても挙げたものです.さらに,順序対の表記も]などなど,様々です.これについてもやはり,文書中の用語の定義をよく確認しましょう.
今回はを用いることにします.
なじみのある2次元座標もほとんどの場合と書きますね.
3.2.3. 写像とは?
写像の定義
写像という言葉はよく聞くと思いますが,その定義をちゃんと知らないという方は多いと思います.
実は写像というのは非常に広い意味を持っています.
それではこれも定義を確認してみましょう.
ここでもやはり,写像の表記方法はこれだけではないことに注意してください.
ただ,これまで述べた内積や順序対に比べると,写像をこのように書くことは一般的なように感じます.
写像を少し噛み砕いてみる
写像の定義についてはもう十分なのですが,理解を深めるために少し考えてみましょう.
定義 3では,元に対して定まる別の集合の元はただ1つだと書きました.
わざわざこのように書いたということは,ただ1つではなく,複数定まってしまって,写像とは呼べない場合もあるということです.
そういった場合は,からへの「対応(または関係)」と呼ばれます.
この対応は,直積集合の部分集合(と名づけておきます)として定義できます.以降では部分集合を「対応」と呼んで慣れましょう.
直積集合は集合と集合のあらゆる組み合わせを元とする集合でした.
この部分集合である対応は,この中の一部の組み合わせを元とする集合です.
したがって,集合から何か元を選んできても,それが対応の元では使われていない場合もあります.
ここで,対応の元に使われている集合の元の集合には,「定義域」という名前がつけられています.
数式で整理すると,定義域をとして,以下のように書けます.
定義域の話と同じように,集合の元についても,対応の元に使われているものとそうでないものがあります.使われている元の集合には「像」という名前がついており,次のように書けます.
ここで,「対応」や「定義域」,「像」といったネーミングの理由が気になる方もいると思います.
違和感があるともやもやしますよね.
対応は直積集合の部分集合ですので,その元は順序対です.
したがってが先,が後,のようなイメージがあります.
そのイメージを大事にして,まずを決めます.
すると対応から,と何かの組である元を特定することができます.
この元は複数あっても構いませんので,例えばなどのように,とにかくいくつかの元が対応付けられます.
これは同時に,を選んだことによってを間接的に選んだことになります.
このことが,「対応」という名付けのイメージだと思います.
さて,このように解釈すると,を「定義域」と呼ぶ理由もなんとなく分かると思います.
対応の元が定義されている領域,もしくは対応によって決まるの領域を定義する領域,といったように理解できると思います.
「像」というのは,この定義域を対応によって写した領域といった解釈が良いと思います.
対応の話で長くなってしまったので,写像に視点を戻します.
「対応」との関係を意識しながら「写像」を見てみましょう.
写像は対応の特殊な場合であり,写像と呼べるようになるためには残り2つの条件を満たす必要があります.
1つ目の条件は,一意であることです.
上の話で出たようにを選んだとき,であればである場合,この対応は一意であるといいます.つまり,に対応するものはだけということです.
2つ目の条件は,定義域が集合と一致することです. つまり,集合の任意の元に対応するが存在することです.
これら2つを合わせると,先に述べた定義 3の通りの内容を指していることが分かると思います.
また,定義で書いたように,部分集合ではなく,対応関係自体に注目して,写像と呼ぶこともできます.
このとき,元に対応する集合の元を,と書けます.
以降では,対応させる処理に注目する場合には写像の方を用います.
ここで,集合の元は全て写像に使われることが決まりましたが,集合については何も述べられていません.
したがって,この時点では写像によって対応する元の集合(像ですね)が集合の一部でも良いことになります.
ちなみに,この時の集合を「値域」といいます.
よく「像」と「値域」を混同してしまいますが,分けて用いられることもあるので注意が必要です.
それでは集合についても言及した場合をみてみましょう.
写像の像が集合に一致する場合,その写像を「全射(全写)」といいます.
つまり全射によって,集合の全ての元は集合のいずれかの元に対応付けられます.
なお,この「全射」のことを「の上への写像」ということもあります.
なぜこのように呼ぶのかの理由には自信がありませんが,私は写された像がの上を(ぴったりと)覆っているからだと解釈しています.
もう一度,(全射ではない)写像に視点を戻します.
写像の定義では,元に対応する集合の元が1つであることは決めていますが,
同じ元(仮に元とします)に対応する元がただ1つとは決められていません.
つまり,異なる元が同じ元に対応することがあり得ます.
これに対し,に対応する元が等しい,つまりならば,である場合,この写像を「単射(単写)」といいます.
こちらも別の呼び方があり,「は一対一である」といっても同じ意味です.
ここで全射の条件と,単射の条件が両立できることに注目してください.
どちらも両立する場合,写像は「全単射(全単写)」といいます.
この全単射という写像は非常に重要です.
その理由は,が全単射であるならば,となる写像が存在することが分かるためです.
そしてこの写像は必ず全単射であり,またこのような写像はただ1つしか存在しません.
この写像を,写像に対応して「逆写像(または逆関数)」といい,と表記します.
3.2.4. ベクトル空間とは?
3.2.4.1. ベクトル空間の定義
ベクトルと聞いて,まず思い浮かぶのはなんでしょうか?
空間中にある方向を持った矢印や,数の組がまず浮かぶのではないかと思います.
しかし実は,これらはベクトルと呼ばれるもののうちの,ごく一部です.
これまで説明してきた直積空間や写像と同様に,ベクトルも数学的にきっちり定義されています.
ただし,これまでの2つと大きく違う点が1つあります.
それは,ベクトルは要素単体だけでは定義されず,その要素が従う演算規則が指定されてはじめて定義されるということです.
演算を行うためには少なくとも2つ以上の要素からなる何かしらの集合が必要になります.
したがって,ベクトルを定義するためには,まずそのベクトルが属する集合を定義しなければなりません.
そしてこの集合こそが,「ベクトル空間」です.
ベクトルは「ベクトル空間の元」として定義されるということです.
それでは,ベクトル空間の定義をみていきましょう.
先に述べたように,ベクトル空間を定義するには演算規則を指定する必要があります.
そのため,これまでの定義よりも長い記述になります.
- 集合の任意の元に対して,和と呼ばれる集合の新しい元が常に定まり,次の条件を満たす.なお,和をと書く.つまり,である.
- に対し,が成り立つ.
- に対し,が成り立つ.
- 零ベクトルと呼ばれる元がただ1つ存在し,に対してが成り立つ.
- に対してが存在してが成り立つ.このを逆元と呼び,と書く.なお,はと書ける.
- 集合の任意の元と実数の任意の元に対し,との積(もしくはの倍)と呼ばれる集合の新しい元が常に定まり,次の条件を満たす.
- とに対し,が成り立つ.
- とに対し,が成り立つ.
- とに対し,が成り立つ.
- に対し,が成り立つ.
なお,上の定義中ではという記号を用いました.これは「任意」という意味の記号で,は「集合の任意の元」と同じことを意味します.
「任意の元」という表現も聞き馴染がない場合,ピンとこないかもしれません.
これは集合のどんな元でもいいですよ,何の制限もないですよ,というニュアンスです.
結局,集合の全ての元に共通する性質を述べていることになります.
上の定義で,積の演算には実数の元を用いました.実は実数以外に複素数などの元でも同じように定義することができます.
実数の元や複素数の元などを総称してスカラーと呼ばれるため,定義でと書いた演算には「スカラー倍」という名前がついています.
なお,スカラーが実数である場合のベクトル空間を「実数上のベクトル空間」といい,「実ベクトル空間(実線形空間)」と呼称されます.
同様にスカラーが複素数である場合には「複素ベクトル空間(複素線形空間)」という名前がつけられています.
この呼称を見ると,「ベクトル」は「線形であるもの」ということが分かります.
線形性は非常に重要な性質で,制御工学において対象が線形であるか否かによって適切な制御則が大きく異なってきます.
したがって,考える対象がベクトルであるか否かを調べることは非常に重要です.
ここで,定義 4には本節の最初に述べた矢印や数の組のような話は一切でてきていないことに注意してください.
定義 4を満たすものは全て「ベクトル」であり,その中の一例として上の2つがあったのです.
ベクトルのイメージを掴むために,いくつかの例を見てみましょう
3.2.4.2. ベクトル空間の例
3.2.4.2.1. 次元数ベクトル空間
これは既に例示したように,代表的なベクトル空間です.
この空間は以下のように定義されます.
この空間に対し,和とスカラー倍を次のように定義します.
このようにすると,この空間は定義 4の条件を全て満たしますので,ベクトル空間となります.
3.2.4.2.2. 実数値(複素数値)関数空間
ある区間,例えば上に定義された実数値(複素数値でもいい)関数の全体である空間も,ベクトル空間として定義することができます.
ここで,関数の空間という概念に違和感を感じるかもしれません.
上で述べた条件に当てはまる関数は数多くありますが,ここで指している空間はそのようなたくさんある関数を集めた集合です.
したがって,元は関数となります.
実数値関数空間を例として数学的に表現すると,次のように書けます.
この空間に対して,次のように和とスカラー倍を定義します.
なお,をの任意の元とします.また,ここでは便宜上,をの関数としています.
このようにすると,やはり定義 4の条件を全て満たしますので,もベクトル空間となります.
3.2.5. 内積の再考
さて,第3.2.1節で内積の定義を見てから,その中で使われていた用語の意味を知るために長い道のりを経てきました.
ここまでの説明を踏まえて内積の定義を読み解くと,以下のように整理できます.
- 定義 4で定まるベクトル空間の任意の元を2つ取ってくる
- その2つの元を順序を考慮して並べた組を作る
- ベクトル空間を定義する際のスカラー倍で用いた空間から,作った組に対応する元をただ一つ定める対応関係を考える
- その対応関係が定義 1に記した4つの規則を満たすとき,この対応関係を「内積」と呼ぶ
ベクトルがこれまで知っていたものよりも遥かに多くのバリエーションを持っていたように,様々な演算を内積として考えることができます.
定義 1を満たしている演算は全て内積なのです
(それが定義なので当然なのですが・・・)
3.3. 関数の内積を考える
さて,記事が長すぎて目的を見失っているかもしれませんが,そもそも内積を理解しようと思った動機は,第3.1節で関数の内積を考えたかったためです.
三角関数が直交するか否かを判断するために,2つの三角関数の内積が0になるかどうかを調べたかったのです.
第3.2.4.2.2節で例示したように,関数もベクトルとして考えることができます.
実数値関数空間での内積は,例えば次のように定義することができます.
これは定義 1の条件を全て満たします.
なお,ここでの積分区間]には特に制限はありません.
また,右辺に定数を掛けたとしても,定義 1の条件を満たすことに変わりありません.
したがって,関数の内積は無数に定義できることが分かります.
もうあの式にそっくりですね.
さて,ここまでくると式\eqref{eq:3}, \eqref{eq:5}, \eqref{eq:6}がなぜ三角関数の直交性を示すのか分かってきたのではないでしょうか?
これら3つの式の左辺は全て,三角関数同士の内積を意味しているのです.
そして既に述べたように,内積が0であることを「直交する」といいますので,異なる三角関数同士は全て直交していることが示されている,と分かります.
3.4. フーリエ係数の再考
内積に意識して,フーリエ係数の計算式である式\eqref{eq:8}, \eqref{eq:9}, \eqref{eq:10}をもう一度みてみましょう.
これらの計算内容は,対象とする関数と,振幅を調べたい三角関数の内積に他なりません.
ここで,空間中の矢印でベクトルを学んだときのことを思い出してみます.
あるベクトルと他のあるベクトルの内積を計算すると,ベクトルをベクトルを含むいくつかのベクトルで表現した際の,ベクトルに関する成分を計算できたと思います.
この成分を仮にとすれば,ということです.
ベクトルを完全に表現するためには,他にも適切なベクトルが必要になります.
このようにして任意のベクトルを表現可能な過不足ないベクトルのまとまりを,「基底」といいます.
以上のことと同様に,フーリエ級数展開では,周期的な関数の空間の基底として無数の三角関数を考え,対象とする関数ベクトルの各基底の成分を内積で求めている,ということになります.
4. まとめ
本記事ではラプラス変換と仲良くなることを目指し,その前段階のフーリエ変換のさらにその前のフーリエ級数展開について調べ,まとめてみました.
フーリエ級数展開はある周期的な関数を三角関数の組み合わせで表現する方法でした.
ここで使用する三角関数は,対象の関数の周波数の自然数倍の周波数を持つものであり,それらの振幅は三角関数の直交性を利用した関数の内積によって求められました.
また,フーリエ級数展開において重要な関数の内積を理解するために,内積,ベクトル空間,直積空間,写像などの用語とその定義を学びました.
このせいで文章量が凄いことになってしまいましたが,フーリエ係数の計算式をその形だけで見るよりも,多少は仲良くなれたのではないかと思います.
今のところはまだまだラプラス変換との繋がりがさっぱり見えてこないと思いますが,本記事で整理したイメージを大事にしておくことで,フーリエ変換,ラプラス変換の意味を理解しやすくなると思います.