diff options
Diffstat (limited to 'sample_notebooks/Nitin Kumar/chapter2.ipynb')
-rw-r--r-- | sample_notebooks/Nitin Kumar/chapter2.ipynb | 680 |
1 files changed, 680 insertions, 0 deletions
diff --git a/sample_notebooks/Nitin Kumar/chapter2.ipynb b/sample_notebooks/Nitin Kumar/chapter2.ipynb new file mode 100644 index 00000000..ddf5a2a5 --- /dev/null +++ b/sample_notebooks/Nitin Kumar/chapter2.ipynb @@ -0,0 +1,680 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2 - Power Switching Devices & Their Characteristics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.1 page 67" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VA = 1.10 V\n" + ] + } + ], + "source": [ + "V1=1 # V across SCR\n", + "IG=0 # A\n", + "Ih=2 # mA holding current\n", + "R=50 # ohm\n", + "\n", + "# Applying kirchoff law\n", + "#VA-(IAK*R)-V1=0\n", + "VA=(Ih*10**-3*R)+V1 # V (let IAK=Ih)\n", + "print 'VA = %.2f V'%(VA)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.2 page 67" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Minimum duration of gating pulse = 10 us\n" + ] + } + ], + "source": [ + "diBYdt=1000 # A/s (rate of rise of current)\n", + "il=10 # mA (latching current = diBYdt * tp)\n", + "tp=il*10**-3/diBYdt # s\n", + "print 'Minimum duration of gating pulse = %.f us'%(tp*10**6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.3 page 68" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Gate power dissipation = 4 W\n", + "\n", + " Resistance to be connected = 14 ohm\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "m=16 # V/A (gradient)\n", + "t_on=4 # us\n", + "IG=500 # mA\n", + "VS=15 # V\n", + "\n", + "VG=m*IG/1000 # V\n", + "#Load line equation\n", + "#VG=VS-IG*RS\n", + "RS=(VS-VG)/(IG/1000) # ohm\n", + "Pg=VS*(IG/1000)**2 # # W\n", + "print 'Gate power dissipation = %.f W'%(Pg)\n", + "print '\\n Resistance to be connected = %.f ohm'%(RS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.4 page 68" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Value of resistance to be added in series = 44.11 ohm\n" + ] + } + ], + "source": [ + "from numpy import roots\n", + "# VG=0.5+8*IG -- eqn(1)\n", + "f=400# # Hz\n", + "delta=0.1 # # (Duty Cycle)\n", + "P=0.5 # W\n", + "VS=12 # V\n", + "\n", + "Tp=1/f*10**6 # us\n", + "# P= VG*IG -- eqn(2)\n", + "# solving eqn 1 and 2\n", + "#8*IG*IG**2+0.5*IG-P=0\n", + "p=[8, 0.5, -P] # polynomial for IG\n", + "IG=roots(p) # A \n", + "IG=IG[1] # A (discarding -ve value)\n", + "VG=0.5+8*IG # V\n", + "# VS=VG+IG*RS\n", + "RS=(VS-VG)/IG\n", + "print 'Value of resistance to be added in series = %.2f ohm'%(RS)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.5 page 69" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Value of resistance to be connected in series = 6.97 ohm\n", + "\n", + " Triggering frequency = 5.00 kHz\n", + "\n", + " Duty Cycle = 0.1 \n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt\n", + "# VG=10*IG -- eqn(1)\n", + "PGM=5 # W\n", + "PGav=.5 # W\n", + "VS=12 # V\n", + "Tp=20 # us\n", + "\n", + "# PGM = VG*IG where VG=10*IG\n", + "\n", + "IG=sqrt(PGM/10) # A\n", + "VG=10*IG # V\n", + "# During the application of pulse VS = VG+(IG*RS)\n", + "RS=(VS-VG)/IG # ohm\n", + "f=PGav/(PGM*Tp*10**-6)/1000 # kHz\n", + "delta=f*1000*Tp*10**-6 # Duty Cycle\n", + "print 'Value of resistance to be connected in series = %.2f ohm'%(RS)\n", + "print '\\n Triggering frequency = %.2f kHz'%(f)\n", + "print '\\n Duty Cycle = %.1f '%(delta)\n", + "# Note : ans in the textbook is not accurate." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.6 page 70" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Value of R = 31.25 kohm\n", + "\n", + " Value of C = 1.20e-07 F\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "VS=3 # kV\n", + "IS=750 # A\n", + "\n", + "VD=800 # V\n", + "ID=175 # A\n", + "dr=30/100 # de-rating factor\n", + "IB=8 # mA\n", + "delQ=30 # u Coulomb\n", + "# dr = 1-IS/np*ID\n", + "np = round(IS/(1-dr)/(ID)) # # no. of parallel string\n", + "ns = round(VS*1000/(1-dr)/(VD)) # # no. of series string\n", + "R=(ns*VD-VS*1000)/(ns-1)/(IB/1000)/1000 # kohm\n", + "C=(ns-1)*delQ*10**-6/(ns*VD-VS*1000)\n", + "print 'Value of R = %.2f kohm'%(R)\n", + "print '\\n Value of C = %.2e F'%(C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.7 page 71" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " no. of series connection = 7\n", + "\n", + " no. of parallel connection = 5\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import ceil\n", + "VS=4 # kV\n", + "IS=800 # A\n", + "\n", + "VD=800 # V\n", + "ID=200 # A\n", + "dr=20/100 # de-rating factor\n", + "# for series connection\n", + "ns = ceil(VS*1000/(1-dr)/(VD)) # # no. of series string\n", + "# for parallel connection\n", + "np = round(IS/(1-dr)/(ID)) # # no. of parallel string\n", + "print '\\n no. of series connection = %d'%(ns)\n", + "print '\\n no. of parallel connection = %d'%(np)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.8 page 72" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Series resistance = 0.007 ohm\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "IS1=100 # A\n", + "IS2=150 # A\n", + "vd1=2.1 # V\n", + "vd2=1.75 # V\n", + "I=250 # A\n", + "\n", + "rf1=vd1/IS1 # ohm\n", + "rf2=vd2/IS2 # ohm\n", + "# Equating voltage drops\n", + "# vd1+IS1*re = vd2+IS2*re\n", + "re=(vd1-vd2)/(IS2-IS1)\n", + "print ' Series resistance = %.3f ohm'%(re)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.9 page 72" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Average power loss = 34.8 W\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import pi\n", + "Vf1=1 # V\n", + "If1=0 # A\n", + "Vf2=1.9 # V\n", + "If2=60 # A\n", + "IT=20*pi # A\n", + "# PAV = 1/T*integrate(VT*IT,0,T)*dt = ITAV+0.015*IRMS**2\n", + "ITAV=IT/pi # A\n", + "ITRMS=IT/2 # A\n", + "dt=ITAV+0.015*ITRMS**2 # W\n", + "print 'Average power loss = %.1f W'%(dt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.10 page 73" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Minimum gate pulse width = 8.7 us\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "R=10 # ohm\n", + "L=0.1 # H\n", + "delta_i=20/1000 # A\n", + "Vs=230 # V4\n", + "f=50 # Hz\n", + "theta=45 # degree\n", + "\n", + "delta_t = L*delta_i/Vs# # s\n", + "delta_t = delta_t*10**6 # us\n", + "print 'Minimum gate pulse width = %.1f us'%(delta_t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.11 page 73" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gate source resistance = 2.0 kohm\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt\n", + "m=3*10**3 # gradient (VG/IG)\n", + "VS=10 # V\n", + "PG=0.012 # W\n", + "# IG = VG/m & PG=VG*IG\n", + "VG=sqrt(PG*m)\n", + "IG=VG/m # # A\n", + "RS=(VS-VG)/IG/1000 # kohm\n", + "print 'gate source resistance = %.1f kohm'%(RS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.12 page 74" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Value of resistance = 6.82 kohm\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "VS=300 # V\n", + "delta_i = 50/1000 # A\n", + "R=60 # ohm\n", + "L=2 # H\n", + "TP=40*10**-6 # s\n", + "\n", + "I1=VS/L*TP # A (at the end of pulse)\n", + "# as I1 << delta_i\n", + "I2=delta_i # A (anode current with RL load)\n", + "\n", + "Rdash = VS/(I2-I1)/1000 # kohm\n", + "print 'Value of resistance = %.2f kohm'%(Rdash)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.13 page 74" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "For half sine wave current : \n", + "\n", + "(i) Average ON State current = 31.83 A\n", + "\n", + "(ii) Average ON State current = 22.51 A\n", + "\n", + "(iii) Average ON State current = 12.54 A\n", + "\n", + "\n", + " For rectangular wave current : \n", + "\n", + "(i) Average ON State current = 35.36 A\n", + "\n", + "(ii) Average ON State current = 25.00 A\n", + "\n", + "(i) Average ON State current = 14.43 A\n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import pi,sqrt\n", + "Im=50 # A\n", + "\n", + "print 'For half sine wave current : \\n'\n", + "# theta=180 # degree\n", + "theta=180 # degree\n", + "Iav=Im/pi # A\n", + "Irms=Im/2 # A\n", + "FF=Irms/Iav # form factor\n", + "ITav=Im/FF # # A\n", + "print '(i) Average ON State current = %.2f A\\n'%(ITav) \n", + "\n", + "# theta=90 # degree\n", + "theta=90 # degree\n", + "Iav=Im/2/pi # A\n", + "Irms=Im/2/sqrt(2) # A\n", + "FF=Irms/Iav # form factor\n", + "ITav=Im/FF # # A\n", + "print '(ii) Average ON State current = %.2f A\\n'%(ITav) \n", + "\n", + "# theta=180 # degree\n", + "theta=180 # degree\n", + "Iav=Im*0.0213 # A\n", + "Irms=Im*0.0849 # A\n", + "FF=Irms/Iav # form factor\n", + "ITav=Im/FF # # A\n", + "print '(iii) Average ON State current = %.2f A\\n'%(ITav) \n", + "\n", + "print '\\n For rectangular wave current : \\n'\n", + "# theta=180 # degree\n", + "theta=180 # degree\n", + "Iav=Im/2 # A\n", + "Irms=Im/sqrt(2) # A\n", + "FF=Irms/Iav # form factor\n", + "ITav=Im/FF # # A\n", + "print '(i) Average ON State current = %.2f A\\n'%(ITav) \n", + "\n", + "# theta=90 # degree\n", + "theta=90 # degree\n", + "Iav=Im/4 # A\n", + "Irms=Im/2 # A\n", + "FF=Irms/Iav # form factor\n", + "ITav=Im/FF # # A\n", + "print '(ii) Average ON State current = %.2f A\\n'%(ITav) \n", + "\n", + "# theta=180 # degree\n", + "theta=180 # degree\n", + "Iav=Im/12 # A\n", + "Irms=Im/2/sqrt(3) # A\n", + "FF=Irms/Iav # form factor\n", + "ITav=Im/FF # # A\n", + "print '(i) Average ON State current = %.2f A\\n'%(ITav) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.14 page 76" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Value of L = 16.67 uH\n", + "\n", + " Value of R = 3.3 ohm\n", + "\n", + " Value of Ip = 175.0 A is greater than permissible peak current = 125.0 A\n", + " change the value of Rs\n", + "\n", + " Value of C = 0.78 uF\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "VS=500 # V\n", + "IP=250 # A\n", + "diBYdt=60 # A/us\n", + "dvaBYdt=200 # V/us\n", + "RL=20 # ohm\n", + "r=0.65 # ohm\n", + "eps=0.65 # damping ratios\n", + "\n", + "F=2 # saftety factor\n", + "IP=IP/2 # A\n", + "diBYdt=60/2 # A/us\n", + "dvaBYdt=200/2 # V/us\n", + "L=VS/diBYdt # uH\n", + "R=L*10**6/VS*dvaBYdt/10**6 # ohm\n", + "print 'Value of L = %.2f uH'%(L)\n", + "print '\\n Value of R = %.1f ohm'%(R)\n", + "\n", + "Ip=VS/RL+VS/R # A\n", + "if Ip > IP :\n", + " print '\\n Value of Ip = %.1f A is greater than permissible peak current = %.1f A\\n change the value of Rs'%(Ip,IP)\n", + " Rs=6 # ohm\n", + "\n", + "Ip=VS/RL+VS/Rs # A\n", + "Cs=(2*eps/Rs)**2*L # uF\n", + "print '\\n Value of C = %.2f uF'%(Cs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.15 page 77" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "I2t rating = 45000 A**2/s\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import ceil,sqrt\n", + "Isb=3000 # A\n", + "f=50 # Hz\n", + "I=sqrt((Isb**2*1/2/f)*f) # A\n", + "I2t=I**2/2/f # A**2/s\n", + "print 'I2t rating = %d A**2/s'%(ceil(I2t))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} |