Time-Domain Analysis
Contents
Time-Domain Analysis#
Due: January 22, 2020
Author: Kevin Egedy
Objectives#
I. Measurement of the verification devices:
Match the waveforms to the three loads: short, open and match, and find the reflection coefficient of each.
II. Unmatached TL:
Identify the location of the impedance discontinuity.
Evaluate the values of characteristic impedance of each TL section of the board. Main one is 100 ohm section.
Estimate the dielectric constant of 100 ohm TL.
III. Unknown loads:
Based on the expected responses and the time-domain responses of complex loads, estimate the characteristics (capacitive, resistive, inductive, or combination of these?) and values of these loads(include the analysis process)
IV. Small Inductance
From the measured decay constant, using the relation \(L = R_st\), compute the inductance of the DUT. If the decay time is too short, skip this part.
From the measured total area under a response curve, compute the inductance of the DUT.
# Libraries
#
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as pch
%matplotlib inline
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
files = [
'calib_matched_garman',
'calib_open_garman',
'calib_short_garman',
'Part1-PCBduroid',
'Part1-unknown1',
'Part1-unknown2',
'Part1-unknown3_1ns',
'Part1-unknown3_260ps',
'Part2-board2_280ps',
'Part2-calib_ch2_Thu'
]
%%capture
# Read .xlsx files and convert them into .csv
#
for filename in files:
df = pd.read_excel(f'data/{filename}.xlsx',header=None,nrows=1)
with open(f'data/csv/{filename}.csv','w+') as f0: f0.write(df.T.to_csv(index=False,header=None));
# Read .csv files in lab01/data/csv
#
calib_matched_garman = pd.read_csv('data/csv/calib_matched_garman.csv',header=None).to_numpy()
calib_open_garman = pd.read_csv('data/csv/calib_open_garman.csv',header=None).to_numpy()
calib_short_garman = pd.read_csv('data/csv/calib_short_garman.csv',header=None).to_numpy()
Part1_PCBduroid = pd.read_csv('data/csv/Part1-PCBduroid.csv',header=None).to_numpy()
Part1_unknown1 = pd.read_csv('data/csv/Part1-unknown1.csv',header=None).to_numpy()
Part1_unknown2 = pd.read_csv('data/csv/Part1-unknown2.csv',header=None).to_numpy()
Part1_unknown3_1ns = pd.read_csv('data/csv/Part1-unknown3_1ns.csv',header=None).to_numpy()
Part1_unknown3_260ps = pd.read_csv('data/csv/Part1-unknown3_260ps.csv',header=None).to_numpy()
Part2_board2_280ps = pd.read_csv('data/csv/Part2-board2_280ps.csv',header=None).to_numpy()
Part2_calib_ch2_Thu = pd.read_csv('data/csv/Part2-calib_ch2_Thu.csv',header=None).to_numpy()
# Plot Overview
# Number of points: 4000pts
# Total Time: 200ns
# Resolution: 0.05 ns/pt
#
fig,axs = plt.subplots(5,2,figsize=(15,15))
plt.subplots_adjust(hspace=0.35)
plt.subplots_adjust(wspace=0.20)
axs[0,0].plot(calib_matched_garman)
axs[0,1].plot(calib_open_garman)
axs[1,0].plot(calib_short_garman)
axs[1,1].plot(Part1_PCBduroid)
axs[2,0].plot(Part1_unknown1)
axs[2,1].plot(Part1_unknown2)
axs[3,0].plot(Part1_unknown3_1ns)
axs[3,1].plot(Part1_unknown3_260ps)
axs[4,0].plot(Part2_board2_280ps)
axs[4,1].plot(Part2_calib_ch2_Thu)
axs[0,0].set_title('calib_matched_garman')
axs[0,1].set_title('calib_open_garman')
axs[1,0].set_title('calib_short_garman')
axs[1,1].set_title('Part1_PCBduroid')
axs[2,0].set_title('Part1_unknown1')
axs[2,1].set_title('Part1_unknown2')
axs[3,0].set_title('Part1_unknown3_1ns')
axs[3,1].set_title('Part1_unknown3_260ps')
axs[4,0].set_title('Part2_board2_280ps')
axs[4,1].set_title('Part2_calib_ch2_Thu')
plt.suptitle('Overview Lab Data');
Constants#
Permittivity of free-space \(= \epsilon_0 = 8.854 \cdot 10^{-12} F/m\)
Permeability of free-space \(= \mu_0 = 4\pi \cdot 10^{-7} H/m\)
Impedance of free-space \(= \eta_0 = 120\pi = 376.7\Omega\)
Velocity of light in free-space \(= c = 2.998 \cdot 10^8 m/s\)
Helpful Equations#
\(\begin{align} \Gamma_L &= \frac{V^-}{V^+} = \frac{Z_L-Z_0}{Z_L+Z_0} \end{align}\)
\(\Delta T = \frac{2L}{v} \) where \(L\) = length, \(T\) = time delay and \(v\) = velocity
\(\tau\) is time to reach \(63.2\%\) of its final value in an increasing system and \(36.8\%\) is a decreasing system.
Characteristic Impedance of TL: TEM
\(\begin{eqnarray} z_0 &=& \sqrt{\frac{L}{C}} &=& \sqrt{\frac{\mu}{\epsilon}}\\ v &=& \frac{1}{\sqrt{LC}} &=& \frac{1}{\sqrt{\mu \epsilon}} &=& \frac{c_0}{\sqrt{\epsilon_r}} \end{eqnarray}\)
Microstrip Effective Permitivity \(\epsilon_{eff}\)
\(\begin{eqnarray} \epsilon_{eff} &=& \frac{\epsilon_r+1}{2} + \frac{\epsilon_r-1}{2} (\frac{1}{\sqrt{1+12d/W}}) \end{eqnarray}\)
TDS8200 setup#
Instructions
Read the attached file for instruction
Only Ch 1 must be set to TDR (red LED ON). Under MEASURE
The red LED of Ch 2 must be OFF
Time scale and number of points: These can be found from Setup->Hori
(1) Measurement of the Verification Devices#
Instructions
Attach SHORT to the end of cable and obtain the reflection from it
Save data into PC
Attach the matched load and obtain the reflection from it
Do not attach any devices and measure the reflection (OPEN)
Questions
Find the reflection coefficient from the open, short and matched waveforms
# Measured Values: Part1_unknown1
#
fig,axs = plt.subplots(3,1,figsize=(12,12))
plt.subplots_adjust(hspace=0.35)
x = np.linspace(0,10*10**(-9),len(calib_short_garman))
# Plot
axs[0].plot(x,calib_short_garman,label='Short')
axs[1].plot(x,calib_matched_garman,label='Matched')
axs[2].plot(x,calib_open_garman,label='Open')
# Labels
axs[0].set_title('Short')
axs[1].set_title('Matched')
axs[2].set_title('Open')
axs[0].set_ylabel('V')
axs[1].set_ylabel('V')
axs[2].set_ylabel('V')
axs[0].set_xlabel('t (s)')
axs[1].set_xlabel('t (s)')
axs[2].set_xlabel('t (s)')
axs[0].ticklabel_format(axis='x',style='sci', scilimits=(-9,-9))
axs[1].ticklabel_format(axis='x',style='sci', scilimits=(-9,-9))
axs[2].ticklabel_format(axis='x',style='sci', scilimits=(-9,-9))
axs[0].grid(True)
axs[1].grid(True)
axs[2].grid(True)
plt.suptitle('Calibration Measured Values');
Reflection Coefficients
\(\begin{align} \Gamma_L &= \frac{V^-}{V^+} \end{align}\)
\(\begin{align} &V^+ =& -1.0V && V^- &=& 1.0V && \rightarrow \Gamma_{short} &=-1 \\ &V^+ =& 0.25V && V^- &=& 0V && \rightarrow \Gamma_{match} &= 0 \\ &V^+ =& 0.25V && V^- &=& 0.25V && \rightarrow \Gamma_{open} &= 1 \end{align}\)
(2) Unmatched Transmission Line#
Instructions
Connect a test board with the matched impedance (terminated with \(Z_L=50\)) and measure the reflection from it.
Save data into PC.
Questions
Identify the location of the impedance discontinuity and values of the characteristic impedance
From the measured time delay, estimate the dielectric constant and characteristic impedance of each TL section of the board
# Measured Values: Part1_unknown1
#
fig,ax = plt.subplots(figsize=(12,4))
x = np.linspace(0,5*10**(-9),len(Part1_PCBduroid))
res = 1.25*10**(-12) # 1.25 ps
# Impedance Discontinuity
x1 = 1125
x2 = 1935
# Plot
ax.plot(x,Part1_PCBduroid,label='Measured Values')
ax.scatter(x1*res,Part1_PCBduroid[x1],color='red')
ax.scatter(x2*res,Part1_PCBduroid[x2],color='red',label='Impedance Discontinuity')
# Labels
ax.ticklabel_format(axis='x',style='sci', scilimits=(-9,-9))
ax.set_title('Measured Values Part1_PCBduroid')
ax.set_xlabel('t (s)')
plt.legend()
plt.grid(True);
Find velocity:
\(\begin{eqnarray} \Delta T &=& \frac{2L}{v} \\ v &=& \frac{2L}{\Delta T} \end{eqnarray}\)
Use velocity to find \(\epsilon_{r}\)
\(\begin{eqnarray} v &=& \frac{c_0}{\sqrt{\epsilon_r}} \\ \sqrt{\epsilon_r} &=& \frac{c_0}{v} \\ \epsilon_r &=& (\frac{c_0}{v})^2 \end{eqnarray}\)
# Calculate Dielectric Constant
# speed of light
c0= 2.998*10**(8)
# length
L = 0.10
# time
t = x2*res - x1*res
# velocity
v = 2*L/t
# dielectric constant
eps = (c0/v)**2
print(f'Dielectric constant: measured = {round(eps,4)} F/m, given: 2.33 F/m') # 100 Ohm TL Section
Dielectric constant: measured = 2.3035 F/m, given: 2.33 F/m
Check by solving dielectric effective (microstrip)
\(\begin{eqnarray} \epsilon_{eff} &=& \frac{\epsilon_r+1}{2} + \frac{\epsilon_r-1}{2} (\frac{1}{\sqrt{1+12d/W}}) \end{eqnarray}\)
# Check Measured Values
#
def eps_eff(Er,d,W):
return (Er+1)/2+(Er-1)*(1/np.sqrt(1+12*d/W))/2
Er = 2.3035
d = 0.00157
W = 0.00136
print(f'Dielectric effective: measured = {round(eps_eff(Er,d,W),4)} F/m, \
given: 1.85 F/m')
Dielectric effective: measured = 1.8209 F/m, given: 1.85 F/m
Use reflection coefficient to find characteristic impedance \(Z_0\)
\(\begin{eqnarray} \Gamma_{t_1} &=& \frac{V^-}{V^+} &=& \frac{(0.33-0.25)}{0.25} &=& 0.32 \\ \Gamma_{t_2} &=& \frac{V^-}{V^+} &=& \frac{(0.33-0.25)}{0.25} &=& -0.32 \end{eqnarray}\)
Given test board is terminated with 50 Ohms - work from sink to source.
\(\begin{align} \Gamma_L &= \frac{Z_L-Z_0}{Z_L+Z_0} \\ \Gamma_{t_2} &= -0.32 &=& \frac{50-Z_0}{50+Z_0} && \rightarrow Z_L = 50, Z_0 = 97.06 \\ \Gamma_{t_1} &= 0.32 &=& \frac{97.06-Z_0}{97.06+Z_0} && \rightarrow Z_L = 97.06, Z_0 = 50 \end{align}\)
print(f'TL Section 1 Z0: measured = 50.00 Ohms, given 50 Ohms')
print(f'TL Section 2 Z0: measured = 97.06 Ohms, given 100 Ohms')
print(f'TL Section 3 Z0: measured = 50.00 Ohms, given 50 Ohms')
TL Section 1 Z0: measured = 50.00 Ohms, given 50 Ohms
TL Section 2 Z0: measured = 97.06 Ohms, given 100 Ohms
TL Section 3 Z0: measured = 50.00 Ohms, given 50 Ohms
Unmatched Transmission Line Summary
Section 1 |
Section 2 |
Section 3 |
|
---|---|---|---|
dielectric constant (F/m) |
NA |
2.3035 |
NA |
characteristic impedance (Ohms) |
50.0 |
97.06 |
50.0 |
(3) Unknown Loads#
Instructions
Measure three unknown loads and save results.
Questions
Using the analytical model, estimate the characteristics (capacitive, resistive, inductive, or combination of these?) and values of these loads.
See the expected responses and the time-domain responses of complex loads.
Part1_unknown1#
# Find V0
V0 = max(Part1_unknown1)[0]
res = 0.05 # resolution = 0.05ns
x0 = np.argmax(Part1_unknown1)
# Time Constant
V1 = 0.368 * V0 # 0.1538
x1 = np.where((Part1_unknown1>0.153) & (Part1_unknown1<0.154))[0][0]
# Print
print(f'Initial Voltage = {round(V0,4)}V at t = {round(x0*res,1)}ns')
print(f'System Response 1/e = {round(V1,4)}V at t = {round(x1*res,1)}ns')
print(f'Time Response Tau = {round((x1-x0)*res,4)}ns')
Initial Voltage = 0.4179V at t = 18.4ns
System Response 1/e = 0.1538V at t = 36.9ns
Time Response Tau = 18.5ns
# Measured Values: Part1_unknown1
#
fig,ax = plt.subplots(figsize=(12,4))
x = np.linspace(0,200*10**(-9),len(Part1_unknown1))
Ures = 0.05
res = 0.05*10**(-9)
# Plot
ax.plot(x,Part1_unknown1,label='measured values')
ax.scatter(x0*res,Part1_unknown1[x0],color='red',label=f'{round(V0,2)}V @ {round(x0*Ures,1)}ns')
ax.scatter(x1*res,Part1_unknown1[x1],color='red',label=f'{round(V1,2)}V @ {round(x1*Ures,1)}ns')
# Labels
ax.ticklabel_format(axis='x',style='sci', scilimits=(-9,-9))
ax.set_title('Measured Values Part1_unknown1')
ax.set_xlabel('t (s)')
ax.set_ylabel('V')
plt.grid(True)
plt.legend();
Known:
\(\begin{align} Z_0 &= 50 \\ Ei &= 0.25 \\ V_0 &= 0.4179 \\ \tau &= 18.5 ns \end{align}\)
Solve:
\(\begin{align} 0.4179 &= E_i + E_i\frac{R-Z_0}{R+Z_0} & \rightarrow R &= 254.46 \Omega \\ \tau &= \frac{R+Z_0}{RZ_0}L & \rightarrow L &= 773 nH \end{align}\)
Part1_unknown2
# Calculated Values
#
R = 254.46 # 220 ohms from 'Values of complex loads 2020-v2 better.pdf'
L = 773 *10**(-9) # 786 nH from 'Values of complex loads 2020-v2 better.pdf'
Z0 = 50
Ei = 0.25
# Find V0
x0 = 330
V0 = Part1_unknown2[x0][0]
res = 0.05 # resolution = 0.05ns
# Time Constant
V1 = V0 + 0.632 * (2*Ei-V0) # 0.4349
x1 = np.where((Part1_unknown2>0.43) & (Part1_unknown2<0.44))[0][0]
# Print
print(f'Initial Voltage = {round(V0,4)}V at t = {round(x0*res,1)}ns')
print(f'System Response 1-1/e = {round(V1,4)}V at t = {round(x1*res,1)}ns')
print(f'Time Response Tau = {round((x1-x0)*res,1)}ns')
Initial Voltage = 0.3195V at t = 16.5ns
System Response 1-1/e = 0.4336V at t = 41.0ns
Time Response Tau = 24.5ns
# Measured Values: Part1_unknown2
#
fig,ax = plt.subplots(figsize=(12,4))
x = np.linspace(0,200*10**(-9),len(Part1_unknown1))
Ures = 0.05
res = 0.05*10**(-9)
# Plot
ax.plot(x,Part1_unknown2,label='measured values')
ax.scatter(x0*res,Part1_unknown2[x0],color='red',label=f'{round(V0,2)}V @ {round(x0*Ures,1)}ns')
ax.scatter(x1*res,Part1_unknown2[x1],color='red',label=f'{round(V1,2)}V @ {round(x1*Ures,1)}ns')
# Labels
ax.ticklabel_format(axis='x',style='sci', scilimits=(-9,-9))
ax.set_title('Measured Values Part1_unknown2')
ax.set_xlabel('t (s)')
ax.set_ylabel('V')
plt.grid(True)
plt.legend(loc='lower right');
Known:
\(\begin{align} Z_0 &= 50 \\ Ei &= 0.25 \\ V_0 &= 0.3231 \\ \tau &= 24.5ns \end{align}\)
Solve:
\(\begin{align} 0.3231 &= E_i + E_i\frac{R-Z_0}{R+Z_0} & \rightarrow R &= 91.39 \Omega \\ \tau &= (R+Z_0)C & \rightarrow C &= 0.163 nF \end{align}\)
Part1_unknown3
# Find V0
V0 = max(Part1_unknown3_260ps)[0]
x0 = np.argmax(Part1_unknown3_260ps)
# Time Constant
V1 = V0 - 0.632 * (V0-0.25) # 0.3068
x1 = np.where((Part1_unknown3_260ps>0.30) & (Part1_unknown3_260ps<0.31))[0][-1]
# Resolution
x,res = np.linspace(0,2.6*10**(-9),len(Part1_unknown3_260ps),endpoint=False,retstep=True)
Ures = res*10**12
# Print
print(f'Initial Voltage = {round(V0,4)}V at t = {round(x0*Ures,1)}ps')
print(f'System Response 1/e = {round(V1,4)}V at t = {round(x1*Ures,1)}ps')
print(f'Time Response Tau = {round((x1-x0)*Ures,1)}ps')
Initial Voltage = 0.4042V at t = 1114.8ps
System Response 1/e = 0.3068V at t = 1514.5ps
Time Response Tau = 399.8ps
# Measured Values: Part1_unknown3
#
fig,ax = plt.subplots(figsize=(12,4))
x,res = np.linspace(0,2.6*10**(-9),len(Part1_unknown3_260ps),endpoint=False,retstep=True)
Ures = res*10**12
# Plot
ax.plot(x,Part1_unknown3_260ps,label='measured values')
ax.scatter(x0*res,Part1_unknown3_260ps[x0],color='red',label=f'{round(V0,2)}V @ {round(x0*Ures,1)}ps')
ax.scatter(x1*res,Part1_unknown3_260ps[x1],color='red',label=f'{round(V1,2)}V @ {round(x1*Ures,1)}ps')
# Labels
ax.ticklabel_format(axis='x',style='sci', scilimits=(-9,-9))
ax.set_title('Measured Values Part1_unknown3')
ax.set_xlabel('t (s)')
ax.set_ylabel('V')
plt.grid(True)
plt.legend();
Known:
\(\begin{align} Z_0 &= 50 \\ Ei &= 0.25 \\ V_0 &= 0.4044 \\ \tau &= 399.8 ps \end{align}\)
Solve:
\(\begin{align} E_i &= (1+\frac{R-Z_0}{R+Z_0})E_i & \rightarrow R &= 50 \Omega \\ \tau &= \frac{L}{Z_0+R} & \rightarrow L &= 40 nH \end{align}\)
Uknown Loads Summary
Unknown1: Shunt R-L
R (Ohms) |
L (nH) |
C (nF) |
|
---|---|---|---|
measured |
254.46 |
773 |
- |
provided |
220 |
786 |
- |
Unknown2: Series R-C
R (Ohms) |
L (nH) |
C (nF) |
|
---|---|---|---|
measured |
91.39 |
- |
0.163 |
provided |
100 |
- |
0.184 |
Unknown3: Series R-L
R (Ohms) |
L (nH) |
C (nF) |
|
---|---|---|---|
measured |
50 |
40 |
- |
provided |
50 |
29 |
- |
(4) Small Inductance#
Instructions: characteristics of the input wave form
Connect the cable channel 1 and Channel 2 directly as Fig.II-2
Adjust the voltage scale to see the details
Using the THRU measurement, obtain the peak voltage and rise time of the input signal
Read data into PC and use MATLAB or other software to get the peak voltage and rise-time.
Questions
From the measured decay constant, using the relation \(L = R_s \tau\) , compute the inductance of the DUT. If the decay time is too short, skip this part.
Find equivalent circuit \(R_s\)
\(\begin{eqnarray} R_s &=& (50+39)//10//50 \\ R_s &=& (\frac{89 \cdot 10}{89 + 10})//50 \\ R_s &=& 8.99 // 50 \\ R_s &=& (\frac{8.99 \cdot 50}{8.99 + 50}) \\ R_s &=& 7.6 \end{eqnarray}\)
# Find Rise Time
# Median of final 10% elements = 0.2340
fsv = np.median(Part2_calib_ch2_Thu[-int(0.1*len(Part2_calib_ch2_Thu)):])
# 10% value = 0.0234
V0 = 0.1*fsv
# 90% value = 0.2106
V1 = 0.9*fsv
# start
x0 = np.where((Part2_calib_ch2_Thu>0.023) & (Part2_calib_ch2_Thu<0.024))[0][-1]
#end
x1 = np.where((Part2_calib_ch2_Thu>0.210) & (Part2_calib_ch2_Thu<0.211))[0][-1]
# Measured Values: Part2_calib_ch2_Thu
#
fig,ax = plt.subplots(figsize=(12,4))
x,res = np.linspace(0,0.2*10**(-9),len(Part2_calib_ch2_Thu),endpoint=False,retstep=True)
Ures = res*10**12
# Plot
ax.plot(x,Part2_calib_ch2_Thu,label='Measured Values')
ax.scatter(x0*res,Part2_calib_ch2_Thu[x0],color='red',label=f'10% @ {round(x0*Ures,1)}ps')
ax.scatter(x1*res,Part2_calib_ch2_Thu[x1],color='red',label=f'90% @ {round(x1*Ures,1)}ps')
# Labels
ax.ticklabel_format(axis='x',style='sci', scilimits=(-9,-9))
ax.set_title('Measured Values Part2_board2_280ps')
ax.set_xlabel('t (s)')
ax.set_ylabel('V')
plt.grid(True)
plt.legend();
Instructions: The inductance of the DUT
Connect cable 1 to the Test Board port (IN) and cable 2 to the Test Board port (OUT)
Adjust TDR to see the response
Save the measured data
Questions
From the measured total area under a response curve, compute the inductance of the DUT
V0 = max(Part2_board2_280ps)[0]
x0 = np.argmax(Part2_board2_280ps)
print(f'V_max is {round(V0,4)}')
V_max is 0.1466
# Area Approximation Part2_board2_280ps Calculation
#
def approx(f,a,b,n,res):
'''
Returns the integral approximation of f(x)dx from a to b
f : continuous waveform
a : starting point
b : ending point
'''
apprx = 0
dxs,width = np.linspace(a,b,n,endpoint=False,retstep=True)
for dx in dxs:
dx = int(dx)
midpoint = (f[dx]+f[dx+1])/2 # Use the midpoint approximation
apprx += width*midpoint # width is 1 nanosecond
return apprx[0]*res
# Define range and function
a = 250
b = 2400
n = b-a
f = Part2_board2_280ps
x,res = np.linspace(0,2.8*10**(-9),len(Part2_board2_280ps),endpoint=False,retstep=True)
A = approx(f,a,b,n,res)
print(f'Area approximation is {A}')
Area approximation is 6.797642459999998e-11
# Measured Values: Part2_board2_280ps
#
fig,ax = plt.subplots(figsize=(12,4))
x,res = np.linspace(0,2.8*10**(-9),len(Part2_board2_280ps),endpoint=False,retstep=True)
# Plot
ax.plot(x,Part2_board2_280ps,label='Measured Values')
ax.scatter(x0*res,V0,color='red',label=f'V_max = {round(V0,4)}')
# Labels
ax.ticklabel_format(axis='x',style='sci', scilimits=(-9,-9))
ax.set_title('Measured Values Part2_board2_280ps')
ax.set_xlabel('t (s)')
ax.set_ylabel('V')
plt.grid(True)
plt.legend();
# Area Approximation Part2_board2_280ps Plot
#
dxs,width = np.linspace(a,b,n,endpoint=False,retstep=True)
# plot
fig,ax = plt.subplots(figsize=(12,4))
for dx in dxs:
dx = int(dx)
midpoint = (f[dx]+f[dx+1])/2
rect = pch.Rectangle((dx,0),width,midpoint[0],facecolor='#D3D3D3',edgecolor='grey')
ax.add_artist(rect)
ax.plot(f)
ax.plot(dxs,f[a:b],label=f'area = {round(A,16)}')
# labels
ax.set_xlabel('t')
ax.set_ylabel('V')
ax.set_title('Area Approximation Part2_board2_280ps')
plt.legend();
Solve:
\(\begin{eqnarray} V &=& && L \frac{di}{dt} \\ \int V &=& && L \int \frac{di}{dt} \\ \text{area} &=& && L[I(\infty) - I(0)] \\ L &=& && \frac{(\text{area})}{DI} \\ L &=& && \frac{(\text{area})R_s}{DV} \\ L &=& && \frac{6.80 \cdot 10^{-11} \cdot 7.6}{0.1466} \\ L &=& && 3.52 nH \end{eqnarray}\)
Small Inductance Summary
The inductance of the DUT is 3.52 nH.