From 64d949698432e05f2a372d9edc859c5b9df1f438 Mon Sep 17 00:00:00 2001 From: kinitrupti Date: Fri, 12 May 2017 18:40:35 +0530 Subject: Revised list of TBCs --- Electronic_Principles/Chapter_18.ipynb | 568 +++++++++++++++++++++++++++++++++ 1 file changed, 568 insertions(+) create mode 100755 Electronic_Principles/Chapter_18.ipynb (limited to 'Electronic_Principles/Chapter_18.ipynb') diff --git a/Electronic_Principles/Chapter_18.ipynb b/Electronic_Principles/Chapter_18.ipynb new file mode 100755 index 00000000..a06bb044 --- /dev/null +++ b/Electronic_Principles/Chapter_18.ipynb @@ -0,0 +1,568 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "CHAPTER 18 OPERATIONAL AMPLIFIERS" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-1, Page 672" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "Vout=13.5 #As per figure 18-7b(V)\n", + "Aov=100000 #open loop voltage gain\n", + "\n", + "V2=Vout/Aov #required input voltage(V)\n", + "\n", + "print 'Required input voltage V2 = ',V2*10**6,'uV'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Required input voltage V2 = 135.0 uV\n" + ] + } + ], + "prompt_number": 71 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-2, Page 672" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "CMRR_dB=40 #As per figure 18-7a at 100KHz(dB)\n", + "\n", + "CMRR=10**(CMRR_dB/20)\n", + "\n", + "print 'Common-mode rejection ratio = ',CMRR" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Common-mode rejection ratio = 100\n" + ] + } + ], + "prompt_number": 76 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-3, Page 673" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "\n", + "Av1=1000 #Voltage gain as per figure 18-7c for 1KHZ\n", + "Av10=100 #Voltage gain as per figure 18-7c for 10KHZ\n", + "Av100=10 #Voltage gain as per figure 18-7c for 100KHZ\n", + "\n", + "print 'Voltage gain for 1KHZ = ',Av1\n", + "print 'Voltage gain for 1KHZ = ',Av10\n", + "print 'Voltage gain for 1KHZ = ',Av100" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Voltage gain for 1KHZ = 1000\n", + "Voltage gain for 1KHZ = 100\n", + "Voltage gain for 1KHZ = 10\n" + ] + } + ], + "prompt_number": 77 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-4, Page 673" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "Vout=0.25 #output changes in 0.1us (V)\n", + "t=0.1 #time for output change(us) \n", + "\n", + "SR=Vout/t #slew rate(V/us)\n", + "\n", + "print 'Slew rate SR = ',SR,'V/us'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Slew rate SR = 2.5 V/us\n" + ] + } + ], + "prompt_number": 79 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-5, Page 673" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "SR=15 #slew rate(V/us)\n", + "Vp=10 #Peak output voltage(V)\n", + "\n", + "fmax=1000*SR/(2*math.pi*Vp) #power bandwidth (KHz) \n", + "\n", + "print 'Power bandwidth = ',round(fmax),'KHz'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power bandwidth = 239.0 KHz\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-6, Page 673" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math\n", + "\n", + "SR1=0.5 #Slew rate1(V/us)\n", + "SR2=5 #Slew rate2(V/us)\n", + "SR3=50 #Slew rate3(V/us)\n", + "Vp=8 #peak voltage(V)\n", + "\n", + "fmax1=1000*SR1/(2*math.pi*Vp) #power bandwidth1 (KHz) \n", + "fmax2=1000*SR2/(2*math.pi*Vp) #power bandwidth2 (KHz) \n", + "fmax3=SR3/(2*3*math.pi*Vp) #power bandwidth3 (MHz) \n", + "\n", + "print 'Power bandwidth1 = ',math.ceil(fmax1),'KHz'\n", + "print 'Power bandwidth2 = ',math.ceil(fmax2),'KHz'\n", + "print 'Power bandwidth3 = ',math.ceil(fmax3),'MHz'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power bandwidth1 = 10.0 KHz\n", + "Power bandwidth2 = 100.0 KHz\n", + "Power bandwidth3 = 1.0 MHz\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-7, Page 678" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "Vin=10 #input voltage(mV)\n", + "Rf=75 #feedback path resistance Rf (KOhm)\n", + "R1=1.5 #inverting input resistance R1(KOhm)\n", + "Funity=1 #Funity (MHz)\n", + "\n", + "Av_CL=-Rf/R1 #closed loop voltage gain\n", + "f2_CL1=Funity/-Av_CL #closed loop bandwidth1(KHz)\n", + "Vout1=Av_CL*Vin #output voltage1(mV)\n", + "Vout2=-Vin #output voltage2(mV)\n", + "\n", + "print 'Output voltage for 1KHz = ',Vout1,'mVpp'\n", + "print 'Output voltage for 1MHz = ',Vout2,'mVpp'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Output voltage for 1KHz = -500.0 mVpp\n", + "Output voltage for 1MHz = -10 mVpp\n" + ] + } + ], + "prompt_number": 90 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-8, Page 679" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "Vin=10 #input voltage(mV)\n", + "Rf=75 #feedback path resistance Rf (KOhm)\n", + "R1=1.5 #inverting input resistance R1(KOhm)\n", + "Iinb=80*10**-9 #bias current(A)\n", + "Iino =20*10**-9 #Iin(off) (A) \n", + "Vino=2.0 #Vin(off) (mV)\n", + "Av=50 #voltage gain \n", + "RB1=0 #resistance at noninverting input(KOhm) \n", + "\n", + "RB2=R1*Rf/(Rf+R1) #thevenin resistance at inverting input(KOhm) \n", + "V1err=(RB1-RB2)*Iinb*10**6 #dc error input1 (mV)\n", + "V2err=(RB1+RB2)*(Iino/2)*10**6 #dc error input2 (mV)\n", + "V3err=Vino #dc error input3 (mV)\n", + "Verror=Av*(abs(V1err)+V2err+V3err) #output error voltage(mV)\n", + "\n", + "print 'output error voltage Verror = ',round(Verror,2),'mV'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "output error voltage Verror = 106.62 mV\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-9, Page 679" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "Vin=10 #input voltage(mV)\n", + "Rf=75 #feedback path resistance Rf (KOhm)\n", + "R1=1.5 #inverting input resistance R1(KOhm)\n", + "Iinb=500*10**-9 #bias current(A)\n", + "Iino =200*10**-9 #Iin(off) (A) \n", + "Vino=6.0 #Vin(off) (mV)\n", + "Av=50 #voltage gain \n", + "RB1=0 #resistance at noninverting input(KOhm) \n", + "\n", + "RB2=R1*Rf/(Rf+R1) #thevenin resistance at inverting input(KOhm) \n", + "V1err=(RB1-RB2)*Iinb*10**6 #dc error input1 (mV)\n", + "V2err=(RB1+RB2)*(Iino/2)*10**6 #dc error input2 (mV)\n", + "V3err=Vino #dc error input3 (mV)\n", + "Verror=Av*(abs(V1err)+V2err+V3err) #output error voltage(mV)\n", + "\n", + "print 'output error voltage Verror = ',round(Verror,2),'mV'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "output error voltage Verror = 344.12 mV\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-10, Page 683" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "import math\n", + "\n", + "Vin=50 #input voltage(mV)\n", + "Rf=3.9*10**3 #feedback path resistance Rf (Ohm)\n", + "R1=100 #inverting input resistance R1(Ohm)\n", + "Funity=1*10**6 #Funity (Hz)\n", + "\n", + "Av_CL=1+(Rf/R1) #closed loop voltage gain\n", + "f2_CL1=Funity/Av_CL #closed loop bandwidth1(KHz)\n", + "Av_CL1=math.ceil(10**(12/20.0)) #Av for 12 dB at 250 KHz \n", + "Vout=Av_CL1*Vin #output voltage(mV)\n", + "\n", + "print 'Output voltage for 250KHz = ',Vout,'mVpp'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Output voltage for 250KHz = 200.0 mVpp\n" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-11, Page 684" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "Vin=10 #input voltage(mV)\n", + "Rf=3.9*10**3 #feedback path resistance Rf (Ohm)\n", + "R1=100 #inverting input resistance R1(Ohm)\n", + "Iinb=500*10**-9 #bias current(A)\n", + "Iino =200*10**-9 #Iin(off) (A) \n", + "Vino=6.0*10**-3 #Vin(off) (V)\n", + "Av=40 #voltage gain \n", + "RB1=0 #resistance at noninverting input(KOhm) \n", + "\n", + "RB2=R1*Rf/(Rf+R1) #thevenin resistance at inverting input(KOhm) \n", + "V1err=(RB1-RB2)*Iinb #dc error input1 (mV)\n", + "V2err=(RB1+RB2)*(Iino/2) #dc error input2 (mV)\n", + "V3err=Vino #dc error input3 (mV)\n", + "Verror=Av*(abs(V1err)+V2err+V3err) #output error voltage(mV)\n", + "\n", + "print 'output error voltage Verror = ',Verror*1000,'mV'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "output error voltage Verror = 242.34 mV\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-12, Page 687" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "Vin1=100*10**-3 #input voltage1(V)\n", + "Vin2=200*10**-3 #input voltage2(V)\n", + "Vin3=300*10**-3 #input voltage3(V)\n", + "Rf=100.0 #feedback path resistance Rf (KOhm)\n", + "R1=20.0 #inverting input resistance R1(KOhm)\n", + "R2=10.0 #inverting input resistance R2(KOhm)\n", + "R3=50.0 #inverting input resistance R3(KOhm)\n", + "\n", + "Av1_CL=-Rf/R1 #closed loop voltage gain\n", + "Av2_CL=-Rf/R1 #closed loop voltage gain\n", + "Av3_CL=-Rf/R1 #closed loop voltage gain\n", + "Vout=Av1_CL*Vin1+Av2_CL*Vin2+Av3_CL*Vin3 #output voltage1(mV)\n", + "RB2=(R1**-1+R2**-1+R3**-1+Rf**-1)**-1 #thevenin resistance at inverting input(KOhm) \n", + "\n", + "print 'Output voltage = ',Vout,'Vpp'\n", + "print 'thevenin resistance at inverting input RB2 = ',round(RB2,2),'KOhm'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Output voltage = -3.0 Vpp\n", + "thevenin resistance at inverting input RB2 = 5.56 KOhm\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-13, Page 688" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "Vin=10 #ac voltage source (mVpp)\n", + "Av=1 #voltage gain\n", + "Funity=1 #unity frequency (MHz) \n", + "\n", + "Vout=Av*Vin #output voltage(V) \n", + "f2_CL=Funity #bandwidth(MHz) \n", + "\n", + "print 'Output voltage = ',Vout,'mVpp'\n", + "print 'Bandwidth f2(CL) = ',f2_CL,'MHz'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Output voltage = 10 mVpp\n", + "Bandwidth f2(CL) = 1 MHz\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 18-14, Page 688" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "RL=1.0 #load resistance(Ohm)\n", + "Vout=9.99 #load voltage(mV)\n", + "Vz=0.01 #voltage across Zout(CL) (mV)\n", + "\n", + "iout=Vout/RL #load current(mA)\n", + "Zout_CL=Vz/iout #output impedance(Ohm)\n", + "\n", + "print 'Load current iout = ',iout,'mA'\n", + "print 'closed loop output impedance Zout(CL) = ',round(Zout_CL,3),'Ohm'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Load current iout = 9.99 mA\n", + "closed loop output impedance Zout(CL) = 0.001 Ohm\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +} \ No newline at end of file -- cgit