Simulinkでスイープジェネレータとフィルタ解析

Simulinkでスイープジェネレータ

周波数解析するのにFFTは広く使われます。
では特性が明確でないフィルターの特性調べるには
どうしたらよいでしょうか?

スイープジェネレータを使えば便利です。
ちなみにスイープとは周波数掃引といういい方でも構いません。
スイープ波形
そもそも周波数掃引がよくわからないですが・・・
周波数を連続的に変えるって解釈で良いと思います。
この図のようなものです。

フィルタ特性の調べ方

AFでもRFでもいいんですが、それ用のフィルターを作ったとします。
作った時、フィルターの狙い値がわかってても実際の特性って
測定しないとわかりません。

で、その方法ですが、正弦波を入力してフィルタの出力電圧を
調べてプロットすることはよくあります。
めんどくさそうですね。

もし、fftがあってもめんどくさそうな感じがしますが、
ここにスイープジェネレータがあれば結構簡単に調べることができます。

G=1/10s^2+s+10000

だとしたら、固有振動数は

sqrt(10000/10)=31.6rad/s=5Hz

これをスイープジェネレータとオシロスコープ使って測定するとこんな感じ。
Simulinkスイープ

上が入力波形で周波数は時間0秒の時に0Hzから
時間100秒の時に100Hzというスイープです。

下が出力波形です。時間4秒くらいから急に波形が大きくなり
それ以降は周波数も振幅もほぼ一定になっていることがわかります。

これは、4秒以降は固有振動数がひたすら残っている不足減衰の
系ということも感覚的にわかります。

では、この系のパラメータから得られたボード線図とfftから得られた
共振曲線を並べてみます。

SimulinkのFFT

分解能が粗いのと、大きさが異なる部分を除けば
ほぼ同じような共振曲線描いているのがわかります。

ということは、こういう手法で解析するのはアリという事です。
幅広い周波数レンジをスイープして、共振周波数が複数ある場合かなんかは
それで目途づけしてあとは細かく測定ってことも可能です。

スイープ波形の周波数特性

そう、その前に大前提としてスイープジェネレータの周波数特性が
フラットというのが条件になりますが、スイープ波形のスペクトルを
FFTで見てみますね。
Simulinkのスイープ

直流部分と100Hzに近い部分のスペクトルはどうも怪しいことがわかりますが
それ以外はほぼフラットです。

でスイープジェネレータの波形は大きさ1を入力しましたが、連続してスイープしますから
100Hzの帯域を100秒なので、成分としては1/100になってしまうんでしょうね。

なるほど、勉強になります。

ちなみに、今回はMATLABとSimulinkで基本的な作業しました。
bode線図書くにはMATLABオプションのControlSystemToolboxが必要になります。

ただ、あくまで解析的に求める場合にMATLABオプションツールが必要になるだけです。
ですから解析的なものと比較しなければ不要かと思います。

あと、スイープ波形ですがおそらくMATLABのファンクションmプログラムで
作ることも可能だと思いますが、MATLABでスイープ波形作るには
signal processing toolbox
が必要になります。

ですから、伝達関数とスイープ波形つくるのにMATLABオプションとして
ContorolSystemToolbox
SignalProcessingToolbox
の両方必要だと面倒ですよね・・・

その点Simulinkがあれば、
ま、SimulinkそのものがMATLABオプションと言えばそれまでですが
伝達関数、スイープ波形は標準で生成できるので便利です。
おまけに解析的に求めることはできませんが
Simulinkはモデル作ったらシミュレーションは簡単なんで
ぜひ使ってくださいね。

Tags: , ,

Leave a Reply