記事内に広告が含まれています

ツールとしてのラプラス変換について ~使い勝手の良さを考えてみました~

物理・数学・技術
スポンサーリンク
  • 広告を含む場合があります

こんな人に読んでもらいたい記事です.

・時間によって時々刻々と変わる物理データを扱っている

・周波数の違いによる分析をしたいけど,どんなツールが良いのだろう?

・「分析に使う」ことを考えたときに,フーリエ変換(FFT)とラプラス変換の違いってざっくりなんだ?

という人

結論

・ラプラス変換って物理の挙動を扱う(考える)のに都合の良いツール.

・細かい定義や,理屈をきちんと理解できるに越したことはないけど,
まずは「使う」ってことにフォーカスしてもよいと思う.

・周波数領域で理屈(モデル)を考えるときのツールとしてラプラス変換の使い勝手が良さそう

ラプラス変換は時間領域と周波数領域をつなぐツールの一つ

こんにちはりゅういえんじにあです.

業務で時々刻々と値が変わるデータ(時間波形)を扱うことがあります.

(時間領域のデータ,などと言ったりします)

こうした時間波形データを分析するときには,
データに含まれる波形を周波数で分類する,という手法が良く使われています.

(周波数領域で分析する,などと言ったりします)

一般的にはフーリエ変換(FFT)という手法で,
データを周波数領域に分解しますが,
別の考え方としてラプラス変換というものがあります.

細かい理論的な話を理解するのが不要,とはいいませんが
「ツール」としてのラプラス変換を知っておくのも
悪くはないなと思っているので紹介します.

なお,理論的な話を最初からきちんとやろうとすると,
難しいので簡単な本などでイメージを掴むのをおすすめします.

「ツール」としてのラプラス変換使い勝手が良いのはこんなとこ

理論的なラプラス変換の紹介は,専門書を当たっていただければ出てくるので
詳しくは紹介しません.

ラプラス変換はざっくりいうと
「時間領域の波形を周波数ごとの振幅に分解するもの」です.

もっと書き下すと
「この波形を構成しているのは,〇Hzで振幅▲の波と,□Hzで振幅☆の波と…です」
と目で見える図(周波数スペクトル,と言ったりします)に示すことです.

その辺はフーリエ変換と一緒ですね.

そもそもですが,物体の位置や速度(+加速度)は時間の関数(=運動方程式)で表現することが多いです.

一方関係する振動や電気信号は周波数でその特徴を表すことが多いです.

それは振動や電気信号も時間の関数で表現できるわけですが,
時間の関数に微分や積分が含まれるためです.

「微分や積分が絡む時間関数を扱う以上,分析に周波数が絡むのは宿命」
ということが出来ます.

「周波数の分析に使う」ということを考えたときに
ラプラス変換には使い勝手の良いポイントがあるので紹介します.

(1)フーリエ変換(FFT)は具体的な数値を含む図を示し,ラプラス変換は文字式のまま表現するイメージ

前述の通り時間領域から周波数領域を考えるときには
フーリエ変換(FFT)とラプラス変換という手法があります.

詳しくは書きませんが,ラプラス変換にはフーリエ変換(FFT)も含まれています.

(ラプラス変換の式に含まれるパラメータを特定の値にすると,
式がフーリエ変換(FFT)の式になる.)

いわばお仲間と言って差し支えないですが,「実験で結果の分析・考察に使う」という観点において
りゅういえんじにあは以下のようにイメージを分けて認識しています.

・フーリエ変換(FFT):周波数ごとの特徴を具体的な数値を含む図で表現する
・ラプラス変換:周波数ごとの特徴を文字式のまま表現する

具体的な時間波形データがあるときにはフーリエ変換を使ったほうが分析しやすいということです.
pythonやmatlabでツールはありますし,周波数分析をする専用計測機もFFTを使っています.

(FFTアナライザーといいます.)

一方一般的な波形(sinなど文字式で表されている)の挙動を考えるときには
ラプラス変換のほうが扱いやすい,という感じです.

(2)周波数の関数を代数計算できる

ラプラス変換は時間波形を「周波数ごとの特徴を文字式のまま表現する」と書きました.

この文字式を扱う上で都合の良い特徴が「周波数の関数を代数計算できる」ということです.

運動方程式では物体にかかる力とその位置(速度・加速度)を時間の関数で表現していますが,
これはつまり,力と位置の関係を代数計算でつなげていることになります.

しかし普通周波数の関数で表された関数をそのままでは四則演算することはできません.
(そもそも足したり引いたりする,ってどういうこと?という話ですが)

複素数の計算が絡むためです.

しかしラプラス変換という一手間を加えることで普通の代数計算
(ざっくり言えば四則演算)で処理できる,というわけですね.

詳しいことは説明しませんが,以下のような古典制御の本を当たると詳しく説明してあります.

(3)実際の数値を計算するツール便利ツールがある(初期値が0のとき)

とはいえ物体の実際の挙動を確認するには,時間変化を表すグラフ(=時間波形)が
あったほうがほうがわかりやすいです.

しかしこの時間波形を求めるのが曲者です.

先程も述べたように時間の関数で表現した物理現象(=運動方程式)に
微分積分が含まれていると時間波形を求めるには,
微分方程式を解くしかありません.

しかし微分方程式の計算においては,
手計算でできるもの(パターン)のほうが少ないので
時間変動を求めるためには数値的に解くしかありません.

個々の微分方程式を解く方法はいろいろありますが,
微分方程式を数値的に解くプログラムを自分で書くのは骨が折れます.

方程式の形が同じであれば,係数を変化させることで片がつきますが,
方程式の形が異なればいちいちプログラムを作り直さなくてはいけません.

(何度か自分でやった経験があるのですが,辛いの一言に尽きます)

ところが,ラプラス変換をつかった式を
時間領域の波形に変換する(≒微分方程式を解く)ツールは
存在し簡単に利用することが出来ます.

例えば有名どころではmatlab,無料のものではscilabやpythonもあります.

pythonでは「control」モジュールというものがあって,
ラプラス変換によって定めた伝達関数から時間波形のシミュレーションができます.

代数計算で求めた周波数の関数をこうしたツールを用いて
実際の時間波形に変換することで,簡易的に微分方程式を解くことと
同じ効果を得られることになります.

分析の時間節約に繋がります.

ただしラプラス変換は初期条件がすべて0だという前提になりますので,
初期値があるかどうかの注意が必要ですね.

おわりに

今回周波数領域を考えるときにラプラス変換って使い勝手が良さそうなツールだ,という視点で紹介しました.

お役に立てれば幸いです.

ありがとうございました.

 

タイトルとURLをコピーしました