{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 7: Switiching Power Supplies" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 7.1,Page 326" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "duty cycle is 0.25\n", "average voltage is 3.0 V\n" ] } ], "source": [ "#finding duty cycle and average voltage\n", "\n", "#initialisation of variable\n", "from math import pi,tan,sqrt,sin,cos,acos,atan\n", "T=20.0;#time\n", "Vp=12.0;#voltage\n", "t=5.0;\n", "\n", "#calculation\n", "D=t/T;\n", "Vd=(D*Vp);\n", "\n", "#result\n", "print \"duty cycle is\",round(D,3)\n", "print \"average voltage is\",round(Vd,3), \"V\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 7.2,Page 238" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "duty cycle is 42.0 %\n", "time is 10.0 microsec\n", "on time is 4.167 microsec\n", "ripple current is 133.636 mA\n", "load current is 500.0 mA\n", "peak inductor current is 566.818 mA\n" ] } ], "source": [ "#finding on time ripple,load,peak inductor current\n", "\n", "#initialisation of variable\n", "from math import pi,tan,sqrt,sin,cos,acos,atan\n", "Vd=12.0;#voltage\n", "Vl=5.0;#load voltage\n", "Rl=10.0;#load resistance\n", "f=100.0;#frequency\n", "L=220.0;#inductor\n", "\n", "#calculation\n", "D=Vl/Vd;\n", "T=1/f;\n", "t=D*T;\n", "Vr=Vd-Vl;\n", "I=Vr*round(t*10000)/10/L;\n", "Il=Vl/Rl;\n", "Ip=Il+I/2;\n", "\n", "#result\n", "print \"duty cycle is\",round(D*100), \"%\"\n", "print \"time is\",round(T*1000,3), \"microsec\"\n", "print \"on time is\",round(t*10000,2)/10, \"microsec\"\n", "print \"ripple current is\",round(I*1000,3),\"mA\"\n", "print \"load current is\",round(Il*1000,3), \"mA\"\n", "print \"peak inductor current is\",round(Ip*1000,3), \"mA\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 7.3,Page 335" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "rms current is 325.01 mA\n", "by trapezium method\n", "rms current is 324.04 mA\n", "by rectangle method\n", "\n", " rectangle method gives good result than trapezium method\n" ] } ], "source": [ "#finding rms current\n", "\n", "#initialisation of variable\n", "from math import pi,tan,sqrt,sin,cos,acos,atan\n", "Id=500.0;#load current\n", "i=134;#mA\n", "D=.42;#duty cycle\n", "\n", "#calculation\n", "Ip=Id+i/2;\n", "Im=Id-i/2;\n", "I1=((D/3)*(Ip**2+Im*Ip+Im**2))**.5;\n", "I2=D**.5*Id;\n", "\n", "#result\n", "print \"rms current is\",round(I1,2), \"mA\"\n", "print('by trapezium method')\n", "print \"rms current is\",round(I2,2), \"mA\"\n", "print('by rectangle method')\n", "print '\\n rectangle method gives good result than trapezium method'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 7.4,Page 336" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "voltage is 0.3 V\n", "dissipated power is 63.0 mW\n" ] } ], "source": [ "#finding voltage and power\n", "\n", "#initialisation of variable\n", "from math import pi,tan,sqrt,sin,cos,acos,atan\n", "Vp=.3;#voltage\n", "I=500.0;#current\n", "D=.42;#duty cycle\n", "T=150.0;#temperature\n", "R=.6;#ohm\n", "\n", "#calculation\n", "Vq=I*R;\n", "Pq=D*Vq*I;\n", "\n", "#result\n", "print \"voltage is\",round(Vq/1000,2), \"V\"\n", "print \"dissipated power is\",round(Pq/1000,2), \"mW\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 7.5,Page 341" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "duty cycle is 42.0 %\n", "time period is 6.667 microsec\n", "on time is 2.778 microsec\n", "load current is 500.0 mA\n", "ripple current is 125.0 mA\n", "inductor voltage is 7.0 V\n", "inductor is 155.556 microH\n", "inductor current is 562.5 mA\n", "minimum capacitor current is 250.0 mA\n", "minimum capacitor voltage is 18.0 V\n", "Rf/Ri is 3.07\n", "power of LM2595 is 0.33 W\n", "thermal resistance is 210.998 degreeC/W\n" ] } ], "source": [ "#finding all componenets\n", "\n", "#initialisation of variable\n", "from math import pi,tan,sqrt,sin,cos,acos,atan\n", "R=10.0;#resistance\n", "V1=5.0;#V\n", "V2=12.0;#V\n", "Ta=80.0;#degreeC\n", "Tb=150.0;\n", "f=150.0;#frequency\n", "\n", "#calculation\n", "D=V1/V2;\n", "T=1/f;\n", "t=D*T;\n", "Id=V1/R;\n", "i=.25*Id;\n", "Vl=V2-V1;\n", "L=Vl*t/i;\n", "Ip=Id+i/2;\n", "Ic=Id/2;\n", "Vc=1.5*V2;\n", "K=V1/1.23-1;\n", "P=.01*V2+D*Id*1;\n", "Q=(Tb-Ta)/P-2.2;\n", "\n", "#result\n", "print \"duty cycle is\",round(D*100), \"%\"\n", "print \"time period is\",round(T*1000,3), \"microsec\"\n", "print \"on time is\",round(t*1000,3), \"microsec\"\n", "print \"load current is\",round(Id*1000,3), \"mA\"\n", "print \"ripple current is\",round(i*1000,3), \"mA\"\n", "print \"inductor voltage is\",round(Vl,2), \"V\"\n", "print \"inductor is\",round(L*1000,3), \"microH\"\n", "print \"inductor current is\",round(Ip*1000,2), \"mA\"\n", "print \"minimum capacitor current is\",round(Ic*1000,2), \"mA\"\n", "print \"minimum capacitor voltage is\",round(Vc,3), \"V\"\n", "print \"Rf/Ri is\",round(K,2)\n", "print \"power of LM2595 is\",round(P,2), \"W\"\n", "print \"thermal resistance is\",round(Q,3), \"degreeC/W\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 7.6,Page 349" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "load power is 15.4 W\n", "supply power is 17.11 W\n", "dc current is 1.4 A\n", "inductor current is 1.57 A\n", "duty cycle is 0.45\n", "inductor is 154.29 microH\n", "transistor power is 352.8 mW\n", "diode power is 385.0 mW\n", "capacitor is 157.5 microF\n" ] } ], "source": [ "#finding different power,inductor current,inductor value\n", "\n", "#initialisation of variable\n", "from math import pi,tan,sqrt,sin,cos,acos,atan\n", "V1=12.0#V\n", "V2=22.0;#V\n", "I=.7;#A\n", "f=100.0;#kHz\n", "R=.4;#ohm\n", "Vd=.5;\n", "\n", "#calculation\n", "Pl=V2*I;\n", "Ps=Pl/.9;\n", "Id=round(Ps/V1*10)/10;\n", "i=.25*Id;\n", "Ip=Id+i/2;\n", "D=round((1-V1/V2)*100)/100;\n", "t=D/f;\n", "L=V1*t/i;\n", "Vp=Id*R;\n", "Pq=D*Vp*Id;\n", "Pd=(1-D)*.5*Id;\n", "C=Id*t/2/20;\n", "\n", "#result\n", "print \"load power is\",round(Pl,2), \"W\"\n", "print \"supply power is\",round(Ps,2), \"W\"\n", "print \"dc current is\",round(Id,2), \"A\"\n", "print \"inductor current is\",round(Ip,2), \"A\"\n", "print \"duty cycle is\",round(D,2)\n", "print \"inductor is\",round(L*1000,2), \"microH\"\n", "print \"transistor power is\",round(Pq*1000,2), \"mW\"\n", "print \"diode power is\",round(Pd*100,2)*10, \"mW\"\n", "print \"capacitor is\",round(C*1e6,2), \"microF\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 7.7,Page 355" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Rf/Ri is 16.886\n", "pick Rf=22; Ri=1.3;\n", "rms current is 1.4 A\n", "switch power is 132.3 mW\n", "IC power is 151.2 mW\n", "total power is 283.5 mW\n", "IC temperature is 98.43 degreeC\n" ] } ], "source": [ "#finding feedback resistor,power,current and temperature\n", "\n", "#initialisation of variable\n", "from math import pi,tan,sqrt,sin,cos,acos,atan\n", "V1=12.0;#V\n", "V2=22.0;#V\n", "I=.7;#A\n", "Ta=80.0;#degreeC\n", "Ps=17.1#supply power\n", "\n", "#calculation\n", "K=V2/1.23-1;\n", "Id=round(Ps/V1*10)/10;\n", "D=round((1-(V1/V2))*100)/100;\n", "Ir=D**.5*Id;\n", "Ps=Ir**2*.15;\n", "Pi=D*Id*V1/50;\n", "P=Ps+Pi;\n", "T=Ta+P*65;\n", "\n", "#result\n", "print \"Rf/Ri is\",round(K,3)\n", "print('pick Rf=22; Ri=1.3;')\n", "print \"rms current is\",round(Id,2), \"A\"\n", "print \"switch power is\",round(Ps*1000,2), \"mW\"\n", "print \"IC power is\",round(Pi*1000,2), \"mW\"\n", "print \"total power is\",round(P*1000,2), \"mW\"\n", "print \"IC temperature is\",round(T,2), \"degreeC\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 7.8,Page 359" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "maximum voltage is 18.25 V\n", "diode voltage is 20.0 V\n", "duty cycle is 0.34\n", "power delivered is 5.0 W\n", "average current is 466.67 mA\n", "mid primary current is 1.37 A\n", "rms current is 800.33 mA\n", "ramp current is 480.0 mA\n", "maximum transistor current is 1.61 A\n", "minimum transistor current is 1.13 A\n", "diode peak current is 2.02 A\n", "secondary rms current is 1.23 A\n", "capacitor is 170.0 microF\n" ] } ], "source": [ "#designing circuit and finding circuit parameter\n", "\n", "#initialisation of variable\n", "from math import pi,tan,sqrt,sin,cos,acos,atan\n", "V1=12.0;#V\n", "V2=5.0;#V\n", "Il=1.0;#load current\n", "T=10.0;#microsec\n", "K=1.25;#Npri/Nsec\n", "L=85.0;#microH\n", "\n", "#calculation\n", "Vq=V1+V2*K;\n", "Vd=V1*K+V2;\n", "D=round((K*V2)*100/(V1+K*V2))/100;\n", "Po=V2*Il;\n", "Pi=round(Po/.09)/10;\n", "Id=Pi/V1;\n", "Im=Id/D;\n", "Ir=(Im*D**.5);\n", "i=V1*D*T/L;\n", "IM=Im+.24;\n", "Imin=Im-.24;\n", "Ip=K*IM;\n", "Imid=Il/(1-D);\n", "Irms=Imid*(1-D)**.5;\n", "C=D*Il*T/20;\n", "\n", "#result\n", "print \"maximum voltage is\",round(Vq,2), \"V\"\n", "print \"diode voltage is\",round(Vd,2), \"V\"\n", "print \"duty cycle is\",round(D,2)\n", "print \"power delivered is\",round(Po,2), \"W\"\n", "print \"average current is\",round(Id*1000,2), \"mA\"\n", "print \"mid primary current is\",round(Im,2), \"A\"\n", "print \"rms current is\",round(Ir*1000,2),\"mA\"\n", "print \"ramp current is\",round(i*1000,2), \"mA\"\n", "print \"maximum transistor current is\",round(IM,2),\"A\"\n", "print \"minimum transistor current is\",round(Imin,2),\"A\"\n", "print \"diode peak current is\",round(Ip,2), \"A\"\n", "print \"secondary rms current is\",round(Irms,2),\"A\"\n", "print \"capacitor is\",round(C*1000,2), \"microF\"\n" ] } ], "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.6" } }, "nbformat": 4, "nbformat_minor": 0 }