파이썬에서 LTSpice의 파라 메트릭 분석 (.step) 결과 그래프

8306 단어 LTSpice파이썬
이 기사의 응용편. .step param list 에서 파라메트릭 해석 결과가 보기 어렵다고 한탄하는 당신을 위한 기사. 파라 메트릭 분석 결과를 그래픽으로 직관적으로 보는 방법.

샘플은 이것. .step param을 사용하여 저항값을 6종류 바꾸었을 때의 CR LPF AC 해석.



LTSpice상에서 그래프화하면 이렇게 된다. 그래프 개략을 보는 것만이라면 좋지만 그래프상에서 4번째의 파라미터시의 그래프에 커서 맞추고 싶다고 말하면 직감적으로 조작할 수 없어 대단히 번거롭다.



그리고 요전날의 기사의 발전형. 파라메트릭 해석 결과를 그래픽으로 표시시키기 위한 코드가 이것. 요전날의 코드로부터 미묘하게 사용하고 있는 메소드가 바뀌고 있는 것은, DeprecationWarning의 워닝이 몹시 맛있게 되었기 때문에. 이어서 과도해석에의 사용회전이 효과가 있을 것 같은 get_x()로 주파수의 정보를 취하도록 했다.

parametric-graph.py
import ltspice
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
import numpy as np
from plotly.subplots import make_subplots

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

# DataFrame変換元ひな形の辞書初期化
data={
      'case':[],
      'freq':[],
      'Gain':[],
      'Phase':[]
      }

# ループでパラメトリック解析結果を仕分けできるように読み込み
for i in range(l.case_count):
  curx = l.get_x(i)
  curi = [i] * len(curx)

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

  curGain = 20*np.log10(abs(V1))
  curPhase = 180/np.pi*np.angle(V1)

  data['case'].extend(curi)
  data['freq'].extend(curx)
  data['Gain'].extend(curGain)
  data['Phase'].extend(curPhase)

# DataFrameに変換
df = pd.DataFrame(data)
print(df)

# グラフ表示部 colorオプションでパラメトリック解析結果を色分け
fig_g = px.line(data_frame=df,x='freq',y='Gain',
              title = 'AC analysis bode plot Gain',
              color='case',
              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 Phase',
              color='case',
              log_x=True, log_y=False)
fig_p.show()


그래프화 된 Jupyter Lab의 실행 결과를 여기. 파라메트릭 해석 결과는 get_x(case), get_data(case)로 개별적으로 취득할 수 있으므로 DataFrame화하기 쉽도록 case열을 부여하는 가공을 하고,plotly express에서 color='case'로 색변화 표시시키고 있다.



LTSpice상에서 직관적으로 할 수 없었던 Phase의 4번째 파라미터시의 sim 결과에 커서가 맞고 있는 것을 알 수 있을까?

한층 더 말하면 이런 일도 할 수 있다.


우측의 범례 표시부를 클릭하는 것으로, 표시시키고 싶지 않은 녀석만을 선택해 비표시로 할 수 있다.

오늘은 여기까지.

좋은 웹페이지 즐겨찾기