#概要
モータ実機を使ってフィードバック制御をしようとしたときにで電流や速度をマイコンに取り込む上でフィルタを使用する必要性がでてきた。そこでデジタルフィルタについて調査してみると以下のフィルタと遭遇した。
FIRフィルタ、IIRフィルタ、双2次フィルタ、
制御工学の中で使用されるのは急峻なフィルタ特性からIIRと双2次フィルタの模様。
今回はIIRフィルタと双2フィルタについての調査結果をまとめた。
また、Matlab上でシミュレーションしそれぞれを比較した。
結論
・デジタルフィルタの設計方法は離散系のフィルタの伝達関数からフィルタ係数を計算。フィルタ係数はカットオフ周波数から決まる
・双2次<IIR1次<IIR2次の順で急峻である
#詳細
IIRフィルタの一般式を示す。もはやこれに関しては一般式としてはこういうもので何を変えたらどうなるのかをわかっていればある程度良いのかなと思う。式としては過去の入力xに係数aをかけたのと、過去の出力yに係数bをかけた総和をフィルタ出力としている。これをz変換して伝達関数の形Y(z)/X(x)として書くと一つのシステムとして見れる。aとbでカットオフ周波数が決まり、M,Nでフィルタ次数が決まる。フィルタ次数は大きいほど、フィルタ特性が急峻になる。例えばLPFであれば減衰率が増える。
具体的にIIR1次を作ってみる。
設計方法としては、色々あるみたいだがここでは以下の手順で作る
1:連続系の1時遅れシステムを考える。
2:カットオフ周波数を決める。
3:双一次変換でZ変換する
※Z変換する際に双一次か交代差分かで式が変わる
以下例ではカットオフ周波数wc = 1rad/sでIIR1次の設計例である。
※αはcotanjent (wc*サンプリング周期/2)で求めている
基本的にはIIRでも双二次でもZ変換されたフィルタの伝達関数があるし、分母分子の係数の計算方法もカットオフ周波数から一意に決まるのでそれに乗っとればフィルタ作成はできる。
ちなみに双二次はこれ
#シミュレーション
設計方法はわかった。次にシミュレーションして比較してみる
とある信号の生データと生データに対してIIR1次、IIR2次、双二次フィルタをかけた波形を示す。
次にボード線図で比較してみた、ちなみにカットオフ周波数は100Hzで設計
IIR2次がこの中では最も特性が良い。
※双二次に急峻性を調整するパラメータQ値があるが、IIR2次よりも急峻になることはなかった
#補足
参考にしたサイトはこちら
#結論
・IIRの1次とRCフィルタはアナログかデジタルかの違い。
・デジタルフィルタの設計方法は離散系のフィルタの伝達関数からフィルタ係数を計算。フィルタ係数はカットオフ周波数から決まる
・双2次<IIR1次<IIR2次の順で急峻である
#使用ソフト
Matlab