Spectrum(SRS)。スペクトルと言えば一般にはフーリエ変換。理系の大学生ならば、数学や物理の講義で必ず習う項目ですね。SRSを学校で習ったと言う人は少ないのではないでしょうか。私も学生時代には習っていません。実際、メカニカルエンジニアとして働いて18年になりますが、数年前までその存在さえ知りませんでした。SRSって何かと言えば、衝撃による加速度を評価する数学的(物理的)手法です。その導出手法はフーリエ変換とは全く違います。フーリエ変換は時系列波形を周波数軸上への変換する手法であり、逆フーリエ変換をすれば元の時系列波形に戻るわけで、フーリエ変換の前後では元波形の情報を基本的には失わいません。SRSですが、知らない人に説明しにくいのですが、簡単に言えば、解析しようとする衝撃加速度をそのままの解析するのではなくて、解析しようとする衝撃加速度波形がある機械的システムに印加されたら、そのシステムの挙動はどうなるかを知ろうというものです。よって、インプットの衝撃加速度に対しては、そのSRSは一義的に求まりますが、SRSから元の衝撃加速度波形をもとめることはできません。これは、フーリエ変換とは根本的に違った解析手法と言うことです。SRSの数学的定義は、解析しようとする衝撃加速度が単振動列(固有振動数が異なる単振動バネ−マス系が並んだ仮想的システム、例えば板の上に、固有振動数が10Hzから5kHzまでのバネ−マス系が並んだイメージです)に印加された場合、個々の単振動系のマスに発生する最大加速度の大きさを求めることです。大学までの力学で考えれば、単振動系に任意の有限時間の加速度を印加し、そのときマスに発生する加速度応答を計算して、その最大値を求めるというこで、単振動系が1つなら、ラプラス変換を使えば求まる訳です。その延長で考えれば、単振動列になったとして、一つ一つの系の加速度応答を求めていけば、数学的には答えは得られます。ラプラス変換だけを数学ツールとして使用すると、計算量が膨大且つ煩雑で実用には耐えません。そんな訳で、私もSRSの物理的に意味する所は定性的に理解できても、数学的に効率よく、つまりは、コンピューターで計算しやすくする方法が分からなくて、仕事でSRS解析をするときは、既存のプログラムをブラックボックスとして使ってました。実際、日本語で書かれたSRSに関する本は少ないし、あっても、その定義のみの記載で、実際に計算の要領まで書いてはくれてないの実情です。そんな訳で、私も最近まで、学校で習った数学の知識のみで考えてたわけです。仕事でSRS解析のプログラムを書く必要に迫られて、色々と勉強してみると、ちょっと数学的扱いを追加すれば、簡単に単振動列の加速度応答が求まることが分かりました。途中の説明を大幅に省くと、単振動系のインパルス応答の解を求めて、その結果にZ変換(フーリエ変換だとか、ラプラス変換だとか似たような言葉が出てきてごめんなさい)を適用し、印加衝撃加速度をインパルス応答列として取扱うということです。この方法は、単振動系を力学的(つまり微分方程式のままと言う意味)に取扱うのでなく、電気屋的な数学手法で取扱うことを意味します。Z変換によるインパルス応答列の解析は、結局の所、単振動系を数学的にはデジタルフィルタとして扱うことになります。決めると言うことです。フィルタの理論では、フィルタ特性を表現するフィルタ係数を求めれば、フィルタの伝達関数が決まって、容易にインプットの波形をアウトプットの波形に変換できます。この方法を使えば、インプット(衝撃加速度波形)にデジタルフィルタ演算を適用するだけで、アウトプット(マスの応答加速度)が求まるので、力学的にラプラス変換で微分方程式を解く場合の逆ラプラス変換で必要な複素積分操作をする苦労が不要になって、効率の良い計算が可能になります。単振動系を数学的にフィルタとして扱うことで、系固有のパラメータを固定したまま、任意の加速度波形に対して適用することができますので、実験で測った衝撃加速度波形を解析するのが楽チンです。これは、普通の信号処理で、入力信号にデジタルローパスフィルタをかけて高周波ノイズを除去するの全く同じ手法です。知ってしまえば、『あ、なるほど、それで言い訳ね』となりますが、機械屋は(私だけかもしれないけど)、電気屋さん達には常識のZ変換だとかフィルタの理論とかに疎いので、単振動系というとなじみのラプラス変換とかで微分方程式をダイレクトに解きたくなるのですね。運動方程式を解くことが中心だから、どうしても、単振動とか言うと、微分方程式を解くと言うイメージが沸いてしまうんですね。SRSを計算するのにZ変換やフィルタ理論を使うと、2次の再帰型のフィルタ(厳密な言い方ではないけど、2次のIIRデジタルフィルタ)になって、固有振動が異なる単振動系ごとにフィルタ係数が決まっていきます。ここまでくれば、後はコンピュータに力ずくでどうにでもなります。私はMATLABユーザーですが、MATLABだとフィルタ係数さえ決まっていればMATLABの関数を使って、魔法のように簡単にフィルタ演算ができますから、赤子の手をひねるようなもので、あんなに、悩んでいたSRSのアルゴリズムがあっけないほど簡単に書けてしまいます。私はこれを、アメリカのあるホームページにあった資料で知りました。残念ながら、日本語のサイトでは、こんな解説をしているところは見つけられていません。まー、SRSがポピュラーに使用されるのは宇宙産業や防衛産業なので、民生品産業が強い日本では利用するエンジニアが限られていると言うのが実情で、国内産業での実用性を考慮してカリキュラムを作っている大学で習わないと言うのも致し方ないのでしょうか。アメリカのエンジニアリングの基盤ってやっぱり凄いなと思ったりもします。年齢がいくつになっても、エレガントな解説で新しい知識を得るって言うのは感動するものですね。仕事とは言いながら、久しぶりに感動を味わいました。<2008/5/9追記>SRS解析を詳しく書いてくれているURLをリンクしました。リンク先の許可はもらってませんが。vibraion.com<2008/6/25追記>この記事をお読みいただいた方へ。よろしければ、コメントなど残していただけますと、今後の励みになります。どんな理由でSRSと関わっているかなども簡単に書いていただけると参考になります。アクセス頻度が高いので、更新日をアップデートしました。<2012/8/2追記>最初の投稿から7年を経た今での、ほぼ毎日のようにアクセスのある記事なので、投稿時刻をアップデートしました。本文で、エンジニアになって18年となっていますが、その後の7年で25年となりました。リンク先のSRSの記事は今でも残っています。SRS解析を必要とする方には、とても価値のあるリンク先だろうと思います。追記>オリジナルの投稿から10年以上経ちましたが、未だアクセスが少なくないので、投稿日を設定しなおしました。記事は変更ありません。技術工学ランキングに参加しています。