エレクトロニクス・フィーバー

プログラミングと電子工作で共有しようと思ったことを載せていきます

LTspice で精密な歪率解析(過渡解析)をする設定

結論

  • maximum timestep を1波長の 1/1000 以下にする
  • .options plotwinsize=0 を付ける
  • .options numdgt=7 を付ける

まとめると、こうなります。 ちなみにさらっと使っていますが、信号周波数を .param コマンドで定義すると便利なのでおすすめです。 f:id:mtyk1:20170820105915p:plain

効果

これを FFT すると、こうなります。 f:id:mtyk1:20170820110113p:plain THD の結果は以下の通りです。

Harmonic Frequency    Fourier    Normalized   Phase      Normalized
 Number       [Hz]      Component    Component  [degree]    Phase [deg]
    1       1.000e+03   2.000e-01   1.000e+00      -0.00°      0.00°
    2       2.000e+03   6.775e-11   3.388e-10      -2.79°     -2.79°
    3       3.000e+03   1.016e-10   5.078e-10      -1.74°     -1.74°
    4       4.000e+03   1.354e-10   6.768e-10      -1.19°     -1.19°
    5       5.000e+03   1.692e-10   8.459e-10      -0.83°     -0.83°
    6       6.000e+03   2.030e-10   1.015e-09      -0.57°     -0.57°
    7       7.000e+03   2.368e-10   1.184e-09      -0.36°     -0.36°
    8       8.000e+03   2.706e-10   1.353e-09      -0.19°     -0.19°
    9       9.000e+03   3.044e-10   1.522e-09      -0.04°     -0.04°
Total Harmonic Distortion: 0.000000%(0.000000%)

何も指定しないときはこうなります。すごい差です。 f:id:mtyk1:20170820110235p:plain

Harmonic Frequency    Fourier    Normalized   Phase      Normalized
 Number       [Hz]      Component    Component  [degree]    Phase [deg]
    1       1.000e+03   1.996e-01   1.000e+00      -0.00°      0.00°
    2       2.000e+03   3.465e-07   1.736e-06     -86.63°    -86.63°
    3       3.000e+03   3.736e-07   1.872e-06     -78.71°    -78.71°
    4       4.000e+03   3.402e-07   1.705e-06     -84.19°    -84.19°
    5       5.000e+03   3.758e-07   1.883e-06     -71.66°    -71.66°
    6       6.000e+03   3.316e-07   1.662e-06     -80.87°    -80.87°
    7       7.000e+03   3.827e-07   1.917e-06     -64.47°    -64.47°
    8       8.000e+03   3.216e-07   1.611e-06     -77.70°    -77.70°
    9       9.000e+03   3.905e-07   1.957e-06     -57.41°    -57.41°
Total Harmonic Distortion: 0.000508%(0.056047%)

各コマンドの説明

.options plotwinsize=0 *1 は出力波形の圧縮を無効にするコマンドです。 これを付けていないと、出力波形のポイントが勝手に減らされてしまいますので、大抵の過渡解析では必須のオプションです。波形ウィンドウの Mark Data Points を有効にするとわかります。 f:id:mtyk1:20170820111215p:plain .options plotwinsize=0 だけを付けるとこのようになります。付けない時の2倍位になりましたが、まだスカスカです。 f:id:mtyk1:20170820111954p:plain

maximum timestep はその名の通り、過渡解析の時間幅を指定します。何も指定しないときは相当荒く、10波長分も解析すると上記のようにスカスカになってしまいます。

.options plotwinsize=0 を付けた上で maximum timestep を 1/1000 波長にするとこうなります。あまり細かくしても解析時間がかかる割には効果が薄くなります。 f:id:mtyk1:20170820112302p:plain

.options numdgt=7 は内部演算を倍精度にするオプションです。デフォルトは 6 で、6 より大きくすると倍精度になります。

*1:日本のブログ等では “.option …” と誤って紹介されているところが多いですが、正しくは “.options …” です。LTspice はどちらでも許容するようですが