Switching
A composite switch consisting of an IGBT in parallel with a diode is given below. The $I$-$V$ characteristics of the IGBT and the diode are also shown. The current $i(t)$ through the switch is a periodic sinusoidal current with peak value of $40\,$A. The deivce parameters are $v_{on}^T = 0.9\,$V, $R_T = 30\,$m$\Omega$, $v_{on}^D = 0.7\,$V, $R_D = 10\,$m$\Omega$. What is the average conduction loss in the composite switch?In [1]:
from IPython.display import Image
Image(filename =r'switching_8_fig_1.png', width=600)
Out[1]:
In [2]:
import numpy as np
import matplotlib.pyplot as plt
import gseim_calc as calc
from setsize import set_size
Im = 40.0
T = 20e-3
Rt = 30.0e-3
Rd = 10.0e-3
Vt = 0.9
Vd = 0.7
n_div = 2000
t = np.linspace(0.0, T, (n_div+1))
omg = 2.0*np.pi/T
Tb2 = T/2
I = Im*np.sin(omg*t)
P_Rd = np.where(t > Tb2, I*I*Rd, 0.0)
P_Vd = np.where(t > Tb2, -I*Vd , 0.0)
P_Rt = np.where(t < Tb2, I*I*Rt, 0.0)
P_Vt = np.where(t < Tb2, I*Vt , 0.0)
P_d = P_Rd + P_Vd
P_t = P_Rt + P_Vt
P = P_d + P_t
P_avg = np.trapz(P, t)/T
print('P_avg:', "%10.3E"%P_avg, 'W')
plot_min_P, plot_max_P = calc.delta_plot_1(P, 0.2)
plot_min_I, plot_max_I = calc.delta_plot_1(I, 0.2)
color1='red'
color2='green'
color3='dodgerblue'
color4='tomato'
color5='olive'
color6='mediumorchid'
fig, ax = plt.subplots(2, sharex=False, gridspec_kw={'height_ratios': [1, 3]})
plt.subplots_adjust(wspace=0, hspace=0.0)
set_size(6.5, 6, ax[0])
for i in range(2):
ax[i].set_xlim(left=0.0, right=T*1e3)
ax[i].grid(color='#CCCCCC', linestyle='solid', linewidth=0.5)
ax[0].set_ylim(bottom=-Im*1.1, top=Im*1.1)
ax[1].set_ylim(bottom=plot_min_P, top=plot_max_P)
ax[0].set_ylabel(r'$i$', fontsize=12)
ax[1].set_ylabel(r'$P$', fontsize=12)
ax[0].tick_params(labelbottom=False)
ax[0].plot(t*1e3, I , color=color1, linewidth=1.0, label="$i$")
ax[1].plot(t*1e3, P , color=color2, linewidth=1.0, label="$P$")
ax[1].plot(t*1e3, P_Rd, color=color3, linewidth=1.0, label="$P_{Rd}$")
ax[1].plot(t*1e3, P_Vd, color=color4, linewidth=1.0, label="$P_{Vd}$")
ax[1].plot(t*1e3, P_Rt, color=color5, linewidth=1.0, label="$P_{Rt}$")
ax[1].plot(t*1e3, P_Vt, color=color6, linewidth=1.0, label="$P_{Vt}$")
ax[1].set_xlabel(r'time (msec)', fontsize=12)
ax[1].legend(loc = 'upper right',frameon = True, fontsize = 10, title = None,
markerfirst = True, markerscale = 1.0, labelspacing = 0.5, columnspacing = 2.0,
prop = {'size' : 12},)
#plt.tight_layout()
plt.show()
P_avg: 3.637E+01 W
This notebook was contributed by Prof. Nakul Narayanan K, Govt. Engineering College, Thrissur. He may be contacted at nakul@gectcr.ac.in.
In [ ]: