{
 "metadata": {
  "name": ""
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "CHAPTER 20 LINEAR OP-AMP CIRCUITS"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 20-1, Page 741"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "Rf=100.0                             #feedback path resistance Rf (KOhm)\n",
      "R1=100.0                             #inverting input resistance R1(KOhm)\n",
      "R2=1.0                               #inverting input  & drain resistance R2(KOhm)\n",
      "\n",
      "Av1=(Rf/(R1**-1+R2**-1)**-1)+1          #maximum voltage gain\n",
      "Av2=(Rf/R1)+1                           #minimum voltage gain\n",
      "\n",
      "print 'maximum voltage gain = ',Av1\n",
      "print 'minimum voltage gain = ',Av2"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "maximum voltage gain =  102.0\n",
        "minimum voltage gain =  2.0\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 20-2, Page 747"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "R1=1.2                                #inverting input resistance R1(KOhm)\n",
      "R2=91.0                               #feedback resistance R2(KOhm)\n",
      "\n",
      "Av1=-R2/R1                              #maximum voltage gain\n",
      "Av2=0                                   #minimum voltage gain\n",
      "\n",
      "print 'maximum voltage gain = ',round(Av1,2)\n",
      "print 'minimum voltage gain = ',Av2"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "maximum voltage gain =  -75.83\n",
        "minimum voltage gain =  0\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 20-3, Page 747"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "R=1.5                                 #inverting input resistance R1(KOhm)\n",
      "nR=7.5                                #feedback resistance(KOhm)\n",
      "\n",
      "n=nR/R                                  #max. limit of voltage gain \n",
      "rf=nR/(n-1)                             #fixed resistor (KOhm)\n",
      "\n",
      "print 'maximum positive voltage gain = ',n\n",
      "print 'other fixed resistor = ',rf,'KOhm'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "maximum positive voltage gain =  5.0\n",
        "other fixed resistor =  1.875 KOhm\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 20-4, Page 757"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "R1=1.0                                   #inverting input resistance R1(KOhm)\n",
      "R2=100.0                                 #feedback resistance R2(KOhm)\n",
      "R=10.0                                   #resistor of opamp in seconnd stage(KOhm)\n",
      "Vin=10*10**-3                            #input voltage(V)\n",
      "Vin_CM=10                                #common mode input voltage(V)\n",
      "T=0.0001                                 #tolerance of resistor  \n",
      "\n",
      "Av=(R2/R1)+1                             #preamp voltage gain\n",
      "Av_CM=2*T                                #common mode voltage gain of 2nd stage\n",
      "Vout=-Av*Vin                             #output siganl voltage(V)\n",
      "Vout_CM=Av_CM*Vin_CM                    #output siganl voltage for common mode signal(V)\n",
      "\n",
      "print 'output siganl voltage for common mode signal Vout(CM) = ',Vout_CM,'V'\n",
      "print 'output siganl voltage Vout = ',Vout,'V'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "output siganl voltage for common mode signal Vout(CM) =  0.002 V\n",
        "output siganl voltage Vout =  -1.01 V\n"
       ]
      }
     ],
     "prompt_number": 10
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 20-5, Page 759"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "Rf=6.0                                   #feedback path resistance Rf (KOhm)\n",
      "R1=1.0                                   #inverting input resistance R1(KOhm)\n",
      "R2=2.0                                   #inverting input resistance R2(KOhm)\n",
      "R3=3.0                                   #non-inverting input resistance R3(KOhm)\n",
      "R4=4.0                                   #non-inverting input resistance R4(KOhm)\n",
      "R5=5.0                                   #non-inverting input resistance R5(KOhm)\n",
      "\n",
      "Av1=(-Rf/R1)                             #voltage gain1\n",
      "Av2=(-Rf/R2)                             #voltage gain2\n",
      "Av3=(1+(Rf/((R1**-1+R2**-1)**-1)))*(((R4**-1+R5**-1)**-1)/(R3+((R4**-1+R5**-1)**-1)))            #voltage gain3\n",
      "Av4=(1+(Rf/((R1**-1+R2**-1)**-1)))*(((R3**-1+R5**-1)**-1)/(R4+((R3**-1+R5**-1)**-1)))            #voltage gain4\n",
      "\n",
      "print 'Voltage gain channel-1 Av1 = ',Av1\n",
      "print 'Voltage gain channel-2 Av2 = ',Av2\n",
      "print 'Voltage gain channel-3 Av3 = ',round(Av3,2)\n",
      "print 'Voltage gain channel-4 Av4 = ',round(Av4,2)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Voltage gain channel-1 Av1 =  -6.0\n",
        "Voltage gain channel-2 Av2 =  -3.0\n",
        "Voltage gain channel-3 Av3 =  4.26\n",
        "Voltage gain channel-4 Av4 =  3.19\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 20-6, Page 762"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "D0=1                           #digital input0 (binary)\n",
      "D1=0                           #digital input1 (binary)\n",
      "D2=0                           #digital input2 (binary)\n",
      "D3=1                           #digital input3 (binary)\n",
      "Vref=5                         #reference voltage(V)\n",
      "N=4                            #no. of inputs\n",
      "\n",
      "BIN=(D0*2**0)+(D1*2**1)+(D2*2**2)+(D3*2**3)   #decimal equivalent BIN\n",
      "Vout=-((2*Vref*BIN)/2.0**N)                   #output voltage of converter(V)\n",
      "\n",
      "print 'decimal equivalent BIN = ',BIN\n",
      "print 'output voltage of converter Vout = ',Vout,'V'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "decimal equivalent BIN =  9\n",
        "output voltage of converter Vout =  -5.625 V\n"
       ]
      }
     ],
     "prompt_number": 16
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 20-7, Page 764"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "R2=51                               #feedback path resistance (KOhm)\n",
      "R1=1                                #inverting input resistance R1(KOhm)\n",
      "Bdc=125                             #current gain\n",
      "Zout=75                             #open loop output impedance(Ohm)\n",
      "AVOL=100000                         #741C voltage gain\n",
      "\n",
      "Av=-R2/R1                          #closed loop voltage gain\n",
      "B=R1/(R1+R2)                       #feedback fraction\n",
      "Zout_CL=Zout/(1+(AVOL*B))          #closed loop output impedance(Ohm)\n",
      "Isc=25.0/1000                      #shorted current for 741C op-amp(A)\n",
      "Imax=Bdc*Isc                       #maximum load current(A)\n",
      "\n",
      "print 'closed loop output impedance Zout(CL) = ',Zout_CL,'Ohm'\n",
      "print 'maximum load current Imax = ',Imax,'A'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "closed loop output impedance Zout(CL) =  75 Ohm\n",
        "maximum load current Imax =  3.125 A\n"
       ]
      }
     ],
     "prompt_number": 23
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 20-8, Page 768"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "Vin=1.0                            #input voltage(V)\n",
      "VCC=15                             #supply voltage(V)\n",
      "R=10                               #inverting input resistance(KOhm)\n",
      "Vin2=10.0                          #larger input(V)\n",
      "\n",
      "iout=Vin/R                         #output current(mA)\n",
      "RL_max=R*(VCC/Vin2-1)              #Maximum load resistance(KOhm) \n",
      "\n",
      "print 'Output current iout = ',iout,'mA'\n",
      "print 'Maximum load resistance RL(max) = ',RL_max,'KOhm'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Output current iout =  0.1 mA\n",
        "Maximum load resistance RL(max) =  5.0 KOhm\n"
       ]
      }
     ],
     "prompt_number": 25
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 20-9, Page 768"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "Vin=3.0                            #input voltage(V)\n",
      "VCC=15                             #supply voltage(V)\n",
      "R=15                               #inverting input resistance(KOhm)\n",
      "Vin2=12.0                          #larger input(V)\n",
      "\n",
      "iout=-Vin/R                         #output current(mA)\n",
      "RL_max=(R/2.0)*(VCC/Vin2-1)         #Maximum load resistance(KOhm) \n",
      "\n",
      "print 'Output current iout = ',iout,'mA'\n",
      "print 'Maximum load resistance RL(max) = ',RL_max,'KOhm'"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Output current iout =  -0.2 mA\n",
        "Maximum load resistance RL(max) =  1.875 KOhm\n"
       ]
      }
     ],
     "prompt_number": 32
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 20-10, Page 771"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "R2=47                                   #feedback path resistance (KOhm)\n",
      "R1=1.0                                  #inverting input resistance R1(KOhm)\n",
      "R3=100                                  #non-inverting input resistance R3(KOhm)\n",
      "rds1=0.050                              #ohmic resistance of JFET (KOhm)\n",
      "rds2=120.0                              #ohmic resistance of JFET (KOhm)\n",
      "\n",
      "Av1=((R2/R1)+1)*(rds1/(rds1+R3))      #minimum voltage gain\n",
      "Av2=((R2/R1)+1)*(rds2/(rds2+R3))      #maximum voltage gain\n",
      "\n",
      "print 'Maximum voltage gain Av = ',round(Av2,2)\n",
      "print 'Minimum voltage gain Av = ',round(Av1,3)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Maximum voltage gain Av =  26.18\n",
        "Minimum voltage gain Av =  0.024\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}