2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PythonでLTSpiceのAC解析結果をグラフ化する

Last updated at Posted at 2021-10-09

LTSPpiceでSIMした結果をPythonで扱うltspiceモジュールを使ってAC解析結果をグラフ化する備忘録

解析したのは、この回路をSIMした出力ファイルDraft1.raw
image.png

ltspiceモジュール公式ページのサンプルが過渡解析用だったのでAC解析結果の複素数を処理するコードを足している。
LTSpice上でカーソル当てるようにして結果を閲覧したいのでplotly expressでグラフ化した。
plotly expressでグラフ化する都合上pandasも使っている。

import ltspice
import pandas as pd
import plotly.express as px
import numpy as np

filepath = 'Draft1.raw'
l = ltspice.Ltspice(filepath)
l.parse()


V1 = l.get_data('V(out)')

df = pd.DataFrame(
  data={
    'freq':l.getFrequency(),
    'Gain':20*np.log10(abs(V1)),
    'Phase':180/np.pi*np.angle(V1)
  }
)


fig_g = px.line(data_frame=df,x='freq',y='Gain',
              title = 'AC analysis bode plot',
              log_x=True, log_y=False)
fig_g.show()
fig_p = px.line(data_frame=df,x='freq',y='Phase',
              title = 'AC analysis bode plot',
              log_x=True, log_y=False)
fig_p.show()

実行結果はこれ。Jupyterlab上で表示した結果のスクショ。カーソルを当てたところの値を表示してくれるplotlyは神だと思う。
ただ、matplotlibと比べるとグラフを書くのに最低限必要なコードが増えるので、コード量少なくてもグラフを書けるplotly expressは大変有り難い。
image.png

グラフのカスタマイズに関する情報はこの2つぐらいを参照
温度や電圧を振ったときのグラフをプロットするfacetの扱いに関するサンプル
https://plotly.com/python/facet-plots/

plotly expressの描画オプションに関する日本語情報
http://oyoyonochichi.coolblog.jp/Python/plotly/express_line2.html

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?