LTspiceのフーリエ解析(高調波解析)


 過渡解析で得られた結果の波形から、その波形の高調波成分解析、歪解析を行います。 (1)波形ビュアーのFFT(高速フーリエ変換)機能を使って、周波数スペクトルを視覚的に表示する方法と、 (2)SPICEエンジンに開発時(バークレーSPICE)から組み込まれている.fourコマンドにより、高調波成分と全高調波歪み率を「数値」で得られる方法 の2種類があり、両方を同時に実行することもできます。

  1. 波形ビュアーのFFT(高速フーリエ変換)機能
    ① 過渡解析を行う。確認したい場合は希望の過渡出力波形を表示させる。基本周波数1周期以上の時間が必要。解析対象は、基本的に表示波形全体(変更可:4項参照)。
    ② 波形ビュアーのメニューより、View--->FFTをクリック。
    ③ FFTの詳細設定ダイアログが表示されるので、必要な箇所を変更し(4項参照)(通常はデフォルト設定でOK)、希望する出力を選択し、OKをクリックする。
    ④ 再度出力選択用のダイアログが現れるので、スペクトルを表示したい出力を選び、OKをクリックする。
    ⑤ デフォルトでグラフは、Log-Logの目盛りで表示される。縦軸を線形に変えると、感覚的に理解しやすい。縦軸付近で右クリックし、現れたダイアログでDecibel=>Linearを選択する。


  2. SPICEエンジンに組み込まれている.fourコマンドによるフーリエ解析
    ① 下記SPICEコマンドを.tran解析の回路図に追加する。解析対象は、デフォルトでは過渡解析波形の最後の1周期。
    ② 計算結果は、回路図キャプチャまたは波形ビュアーのメニューよりView-->Spice Error Logで表示されるLogファイル内に数値でリスト表示。
    ③ 表示項目は、他SPICEと同じで、DC成分、高調波次数と周波数・大きさ(電圧または電流値)・大きさの正規化値・位相値・位相の正規化値、全高調波歪み率(THD)
    構文:
    .four <frequency> [Nharmonics] [Nperiods] <data trace1> [<data trace2> ...]
    frequency:検査対象波形の基本周波数を入力
    Nharmonics:高調波数、指定しない場合のデフォルト数は9
    Nperiods:指定しない場合は、.tran解析の最終時間までの最後の1周期(1/基本周波数)がフーリエ解析の計算対象で、-1を指定すると全てのシミュレーションデータ範囲について計算される(波形ビュアーと同じ仕様にできる)。この機能は、LTspice独自のもの。


  3. フーリエ解析の精度を上げるためには
    ・過渡解析時に回路図に次のコマンドを追加する。
    .options plotwinsize=0 numdgt=15
    波形データの圧縮をしない(圧縮による不要な見かけ上の周波数成分をなくす)。 変数に倍精度が使われる。
    ・過渡解析の設定コマンド.tranのdTmax(最大時間ステップ)を、目安として1周期の1/20,000以下に設定する(解析時間が長くなるので注意)。この値程度以下にしない場合は、dTmax値自体を指定しない方が精度が高い(実験結果から)。
    ・波形が定常状態となる前の過渡応答がある場合はフーリエ変換の計算対象から外す。
    その具体的な方法としては、
    次項のSelect Waveforms to include in FFTダイアログのTime range to includeにより、表示範囲内のデータのみ使う、または時間レンジを設定する。
    または.tranコマンドで、波形がスタートから定常状態になるまでの部分を削除する。
    ・前項で余分な過渡応答を削除した残りの過渡解析時間を、基本波の周期の整数倍にする。(フーリエ変換が、繰り返し周期が無限に続く波形を仮定しているため)


  4. Select Waveforms to include in FFTダイアログにおける詳細設定
    (このような詳細設定機能は、他のSPICEには見られなく、かつ正式なマニュアルでの説明がまったく無いので、正確な仕様が分からない部分も多々あり。)
    ・FFTにより表示される高調波成分は、複素数の振幅のRMS値である。
    ・複数の出力を選択する場合は、ctrlキーを押しながらクリックする。
    ・計算対象のデータポイント数は、デフォルトで2^18=262,144。データポイント数によりFFTが行われる最高周波数fmaxが決定される。fmax=ポイント数/解析対象時間×0.5 例.10ms区間では約13MHz。ポイント数を2^19に上げると同じ条件では約26MHzになる。
    ・Quadratic interpolate uncompressed dataにチェックを入れると、二次のデータ補間に非圧縮データを使用する。回路図で.options plotwinsize=0を指定していないと、チェックできない。
    ・Time range to include
    FFT解析対象を、(1)過渡解析した全時間、(2)表示している時間のみ、(3)数値で指定した時間のデータのうちから選択できる。
    ・Binomial Smoothing done before FFT and windowing
    FFTと窓関数指定の前に行われる、二項分布型フィルタ(Binomial Filter)によるスムージングの回数を指定する。
    ・Windowing(Periodic and normalized to unit area)
    必要な場合、適当な窓関数を選択し、変換対象波形に掛け合わせる。
    (4項参考サイト:WEBサイト「Electrical Information」の記事を一部参考/引用させて頂きました。https://detail-infomation.com/sitemap-ltspice/