2021年4月28日 星期三

如何計算波形曲線通過特定電壓的時間點

在AEDT報告當中,如果要顯示波形通過特定電壓的所有時間點可以採用Y marker。但Y marker無法匯出時間點數值到CSV當中。一個解決方法是先按右鍵輸出.csv,再執行下面的script將所有時間點數值輸出到crossTime.csv。

# User Input
threshold = 0.5
wavform_path = 'D:/demo/Transient Voltage Plot 1.csv'

# Don't Change Code Below
import os
os.chdir(os.path.dirname(__file__))

with open(wavform_path) as f:
data = f.readlines()

time, voltage = data[0].split(',')

waveform = []
for i in data[1:]:
try:
t, v = i.strip().split(',')
waveform.append((float(t), float(v)))
except:
pass

crossT = []
for n, (t, v) in enumerate(waveform[:-1]):
if v == threshold:
crossT.append(t)
else:
t_1, v_1 = waveform[n+1]
if v < threshold < v_1 or v > threshold > v_1:
x = t + ((t_1-t)*abs((v-threshold)/(v_1-v)))
crossT.append(x)

with open('crossTime.csv', 'w') as f:
f.writelines(time + '\n')
f.writelines('\n'.join(map(str, crossT)))
(圖一)計算通過特定電壓的時間

沒有留言:

張貼留言