{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 8 - Linear Op-amp Systems" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_1 Page No. 245" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Amin=8000.00\n", "Amax=64000.00\n", "part (i)\n", "delta_Af=0.01\n", "delta_A= (Amax-Amin)/Amin = 7.00\n", "Sg = delta_Af/delta_A = 0.00\n", " B = (1/Sg - 1)/Amax = 0.01\n", " part (ii)\n", "Af_min = Amin/(1+B*Amin) = 90.52\n", "Af_max = Amax/(1+B*Amax) = 91.43\n", "variation in Af = 1.01\n" ] } ], "source": [ "from __future__ import division \n", "Amin=8000\n", "print \"Amin=%0.2f\"%(Amin) # Minimum gain of OP-AMP\n", "Amax=64000\n", "print \"Amax=%0.2f\"%(Amax) # Maximum gain \n", "print \"part (i)\"\n", "delta_Af=0.01\n", "print \"delta_Af=%0.2f\"%(delta_Af) # Change in overall feedBack gain \n", "delta_A=(Amax-Amin)/Amin\n", "print \"delta_A= (Amax-Amin)/Amin = %0.2f\"%(delta_A) # Change in open loop gain \n", "Sg = delta_Af/delta_A\n", "B = (1/Sg - 1)/Amax\n", "print \"Sg = delta_Af/delta_A = %0.2f\"%(Sg)#desensitivity factor\n", "print \" B = (1/Sg - 1)/Amax = %0.2f\"%(B)#feedBack factor\n", "print \" part (ii)\"\n", "Af_min = Amin/(1+B*Amin)#minimum change in overall feedBack gain \n", "Af_max = Amax/(1+B*Amax)#/maximum change in overall feedBack gain \n", "print \"Af_min = Amin/(1+B*Amin) = %0.2f\"%(Af_min)\n", "print \"Af_max = Amax/(1+B*Amax) = %0.2f\"%(Af_max)\n", "print \"variation in Af = %0.2f\"%(Af_max/Af_min)#variation in Af with feedBack factor 'B'\n", "\n", "\n", "# for above problem author has divided question in two parts but during solution has written 3 parts. \n", "# part (i) and part (ii) combinedly equivlent to part (i) \n", "# part (iii) is equivalent to part (ii)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_2 Page No. 248" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Avf=-100.00\n", "Rif= 1.00 ohm\n", "RF= -R1*Avf=100.00 ohm\n" ] } ], "source": [ "from __future__ import division \n", "Avf=-100\n", "print \"Avf=%0.2f\"%(Avf) # Voltage gain \n", "Rif=1\n", "print \"Rif= %0.2f\"%(Rif),\" ohm\" #Input resistance of OP-AMP\n", "R1=Rif\n", "RF=-R1*Avf # using formulae Vo=(-RF/R1)*Vi\n", "print \"RF= -R1*Avf=%0.2f\"%(RF),\" ohm\" #Feedback resistance of OP-AMP\n", "# NOTE:Error in value of RF since they have given value of Rif=1ohm but calculated RF by using Rif=1 Kilo ohm\n", "# So i have calculated using Ri=1ohm and hence RF=100 ohm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_3 Page No. 249" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "R11= 1000.00 ohm\n", "RF= 100000.00 ohm\n", "R12= 10000.00 ohm\n", "R13= 100000.00 ohm\n", "vo = -(100.00 vs1 +10.00 vs2 +1.00 vs3)\n", "vo = -(0.33 vs1 +0.33 vs2 +0.33 vs3)\n" ] } ], "source": [ "from __future__ import division \n", "R11=1*10**(3)\n", "print \"R11= %0.2f\"%(R11),\" ohm\" # resistance at input terminal of OP-AMP Adder\n", "RF=100*10**(3)\n", "print \"RF= %0.2f\"%(RF),\" ohm\" #Feedback resistance\n", "R12=10*10**(3)\n", "print \"R12= %0.2f\"%(R12),\" ohm\" # resistance at input terminal of OP-AMP Adder\n", "R13=100*10**(3)\n", "print \"R13= %0.2f\"%(R13),\" ohm\" # resistance at input terminal of OP-AMP Adder\n", "print \"vo = -(%0.2f\"%(RF/R11),\"vs1 +%0.2f\"%(RF/R12),\"vs2 +%0.2f\"%(RF/R13),\"vs3)\" # output voltage of opamp adder in terms of input vs1,vs2 vs3\n", "\n", "# for average value of input signal\n", "n = 3# given inputs are '3'\n", "R11 = n*RF\n", "R12 = n*RF\n", "R13 = n*RF\n", "print \"vo = -(%0.2f\"%(RF/R11),\" vs1 +%0.2f\"%(RF/R12),\" vs2 +%0.2f\"%(RF/R13),\" vs3)\" # output voltage of opamp adder \n", "\n", "\n", "# note : the output voltage of inverting adder is negative \n", "# but while calculating weighted output voltage in above question ..author has neglected or miss the negative sign" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_4 Page No. 250" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ir = 0.01 ampere/lumen of radiant energy \n", "RF= 10000.00 ohm\n", "E = 0.01 lumens\n", "IR =Ir*E= 1.00e-04 ampere\n", "Vo=IR*RF= 1.00 volts\n", "scale factor=E/Vo= 0.01 lumens/V\n" ] } ], "source": [ "from __future__ import division \n", "Ir=10*10**(-3)\n", "print \"Ir = %0.2f\"%(Ir),\" ampere/lumen of radiant energy \" #photodiode Reverse saturation current for constant reverse bias VR\n", "RF=10*10**(3)\n", "print \"RF= %0.2f\"%(RF),\" ohm\" #Feedback resistance\n", "E=1*10**(-2)\n", "print \"E = %0.2f\"%(E),\" lumens\"# radiant energy\n", "IR=Ir*E\n", "print \"IR =Ir*E= %0.2e\"%(IR),\" ampere\" # Reverse saturation current\n", "Vo=IR*RF\n", "print \"Vo=IR*RF= %0.2f\"%(Vo),\" volts\" # output voltage\n", "s=E/Vo\n", "print \"scale factor=E/Vo= %0.2f\"%(E),\" lumens/V\" # Scale factor of photometer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_5 Page No. 252" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Av= 100000.00\n", "RF= 100000.00 ohm\n", "RM= 10000.00 ohm\n", "is = 1.00e-05 ampere\n", "vo=is*RF= 1.00 volts\n", "S=vo/is= 100000.00 V/A\n", "Rif=RF/(1+Av)= 1.00 ohm\n", "im = 0.00 ampere\n", "RF=(im*RM)/is= 100000.00 ohm\n" ] } ], "source": [ "from __future__ import division \n", "Av=1*10**(5)\n", "print \"Av= %0.2f\"%(Av) #Voltage gain\n", "RF=100*10**(3)\n", "print \"RF= %0.2f\"%(RF),\" ohm\" #Feedback resistance\n", "RM=10*10**(3)\n", "print \"RM= %0.2f\"%(RM),\" ohm\" # D.C Ammeter internal resistance\n", "Is=10*10**(-6)\n", "print \"is = %0.2e\"%(Is),\" ampere\" # Source current\n", "vo=Is*RF\n", "print \"vo=is*RF= %0.2f\"%(vo),\" volts\" # output voltage\n", "S=vo/Is\n", "print \"S=vo/is= %0.2f\"%(S),\" V/A\" # Sensitivity of Ammeter\n", "Rif=RF/(1+Av)\n", "print \"Rif=RF/(1+Av)= %0.2f\"%(Rif),\" ohm\" #Input resistance of OP-AMP\n", "im=100*10**(-6)\n", "print \"im = %0.2f\"%(im),\" ampere\" # Meter Full-Scale deflection current \n", "RF=(im*RM)/Is\n", "print \"RF=(im*RM)/is= %0.2f\"%(RF),\" ohm\" # New required Feedback resistance for im=100 micro ampere" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_6 Page No. 255" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Av= 36.00 dB\n", "R1= 1000.00 ohm\n", "RF=R1*[10**(Av/20)-1]= 62095.73 ohm\n" ] } ], "source": [ "from __future__ import division \n", "Av=36\n", "print \"Av= %0.2f\"%(Av),\" dB\" #Voltage gain\n", "R1=1*10**(3)# Choosing value of R1\n", "print \"R1= %0.2f\"%(R1),\" ohm\" # Resistor at input side of OP-AMP\n", "RF=R1*(10**(Av/20)-1) # Using formulae Av=20*log(1+RF/R1)\n", "print \"RF=R1*[10**(Av/20)-1]= %0.2f\"%(RF),\" ohm\" # Calculated Feedback resistance\n", "#NOTE: Correct value of RF=62095.734 ohm or 62.095 kilo ohm but in book given as 62.24 kilo ohm \n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_7 Page No. 256" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "if = 1.00e-04 ampere\n", "Av= 100000.00\n", "vs= 0.01 volts\n", "RM= 100.00 ohm\n", "Ri= 10000.00 ohm\n", "R1=vs/if= 100.00 ohm\n", "Avf=1+(RM/R1)=2.00\n", "Rif=Ri*(Av/Avf)=5.00e+08 ohm\n" ] } ], "source": [ "from __future__ import division \n", "If=100*10**(-6)\n", "print \"if = %0.2e\"%(If),\" ampere\" #Full-Scale deflection current\n", "Av=1*10**(5)\n", "print \"Av= %0.2f\"%(Av) #Voltage gain \n", "vs=10*10**(-3) \n", "print \"vs= %0.2f\"%(vs),\" volts\" # Input voltage \n", "RM=100\n", "print \"RM= %0.2f\"%(RM),\" ohm\" # Moving coil Ammeter internal resistance\n", "Ri=10*10**(3)\n", "print \"Ri= %0.2f\"%(Ri),\" ohm\" #Input resistance of OP-AMP\n", "R1=vs/If\n", "print \"R1=vs/if= %0.2f\"%(R1),\" ohm\" # Resistor at input side of OP-AMP in Voltage-to-Current converter \n", "Avf=1+(RM/R1) # formulae using Avf=1+(RF/R1)=1+(RM/R1)# since RF=RM\n", "print \"Avf=1+(RM/R1)=%0.2f\"%(Avf) # Overall Voltage gain\n", "Rif=Ri*(Av/Avf)\n", "print \"Rif=Ri*(Av/Avf)=%0.2e\"%(Rif),\" ohm\" # Equivalent input side resistance of OP-AMP with feedback" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_8 Page No. 258" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ro= 1.00e-03 ohm\n", "Sv= 0.01 %\n", "change in regulator voltage= 3.00 volts\n", "change in regulator Current= 0.25 A\n", "change in regulator output voltage= 0.00 volts\n" ] } ], "source": [ "from __future__ import division \n", "Ro=0.001\n", "print \"Ro= %0.2e\"%(Ro),\" ohm\" #Output resistance\n", "Sv=0.01\n", "print \"Sv= %0.2f\"%(Sv),\"%\" # Input Regulation for IC regulator\n", "delta_VI=12-9\n", "print \"change in regulator voltage= %0.2f\"%(delta_VI),\" volts\" # Regulator input voltage variation\n", "delta_IL=1.25-1\n", "print \"change in regulator Current= %0.2f\"%(delta_IL),\" A\" # Regulator Current variation\n", "delta_Vo=(delta_VI*(Sv/100)+delta_IL*Ro)\n", "print \"change in regulator output voltage= %0.2f\"%(delta_Vo),\" volts\" # Regulator output voltage variation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_9 Page No. 260" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "alpha=1.41\n", "AM=1.59\n", "fOH= 1000.00 Hz\n", "R1= 10000.00 ohm\n", "RF=R1*(AM-1)=5860.00 ohm\n", "C=1.00e-07 farad\n", "R=1/(omega_OH*C)=1/(2*pi*fOH*C)=1591.55 ohm\n" ] } ], "source": [ "from math import pi\n", "from __future__ import division \n", "alpha=1.414# Damping coefficient for Butterworth LP filter\n", "print \"alpha=%0.2f\"%(alpha)\n", "AM=3-alpha\n", "print \"AM=%0.2f\"%(AM) # Midband gain of filter \n", "fOH=1*10**(3)\n", "print \"fOH= %0.2f\"%(fOH),\" Hz\"#Cut off frequency\n", "R1=10*10**(3)# Choosing value of R1 same as in book\n", "print \"R1= %0.2f\"%(R1),\" ohm\" # Resistor at input side of (OP-AMP)filter \n", "RF=R1*(AM-1)\n", "print \"RF=R1*(AM-1)=%0.2f\"%(RF),\" ohm\" #Feedback resistance \n", "C=0.1*10**(-6) # Choosing value of capacitor same a in book\n", "print \"C=%0.2e\"%(C),\"farad\"\n", "R=1/(2*pi*fOH*C)# Using formulae wOH=1/C*R and wOH=(2*pi*fOH)\n", "print \"R=1/(omega_OH*C)=1/(2*pi*fOH*C)=%0.2f\"%(R),\" ohm\" # resistance value for filter design" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_10 Page No. 261" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fo= 150.00 Hz\n", "BW= 15.00 Hz\n", "Q= 10.00\n", "C=5.00e-08 farad\n", "R=sqrt(2)/(2*pi*fo*C)=30010.54 ohm\n", "Am=5-(sqrt(2)/Q)=4.86\n", "Abp=Am/(5-Am)=34.36\n" ] } ], "source": [ "from math import sqrt,pi\n", "from __future__ import division \n", "fo=150\n", "print \"fo= %0.2f\"%(fo),\" Hz\"#Central frequency of band pass filter\n", "BW=15\n", "print \"BW= %0.2f\"%(BW),\" Hz\"# Upper cut-off frequency or 3-dB bandwidth\n", "Q=fo/BW # Quality factor\n", "print \"Q= %0.2f\"%(Q)\n", "C=0.05*10**(-6) # Choosing value of capacitor same as in book\n", "print \"C=%0.2e\"%(C),\"farad\"\n", "R=sqrt(2)/(2*pi*fo*C)\n", "print \"R=sqrt(2)/(2*pi*fo*C)=%0.2f\"%(R),\" ohm\" # resistance value for filter design\n", "Am=5-(sqrt(2)/Q) # formulae\n", "print \"Am=5-(sqrt(2)/Q)=%0.2f\"%(Am) # Midband gain \n", "Abp=Am/(5-Am)\n", "print \"Abp=Am/(5-Am)=%0.2f\"%(Abp) # Central frequency gain " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_11 Page No. 263" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "R= 10000.00 ohm\n", "R1= 10000.00 ohm\n", "C=1.00e-08 farad\n", "R1_ratio_K= 2500.00 ohm\n", "R= 10000.00 ohm\n", "alpha_R2= 250.00 ohm\n", "alpha=alpha_R2/R2= 0.05\n", "Q= 1/alpha=20.00\n", "omega_o=1/(R*C)= 10000.00 radian\n", "Bandwidth=omega_o/Q= 500.00 radian\n", "K=R1/(R1_ratio_K)= 4.00\n", "center frequency gain for BPF, K/alpha=K*Q= 80.00\n" ] } ], "source": [ "from __future__ import division \n", "R=10*10**(3)\n", "print \"R= %0.2f\"%(R),\" ohm\" # resistance\n", "R1=10*10**(3)\n", "print \"R1= %0.2f\"%(R1),\" ohm\" # resistance\n", "C=0.01*10**(-6) # value of capacitor\n", "print \"C=%0.2e\"%(C),\" farad\"\n", "R1_ratio_K=2.5*10**(3)\n", "print \"R1_ratio_K= %0.2f\"%(R1_ratio_K),\" ohm\" # resistance\n", "R2=5*10**(3)\n", "print \"R= %0.2f\"%(R),\" ohm\" # resistance\n", "alpha_R2=250\n", "print \"alpha_R2= %0.2f\"%(alpha_R2),\" ohm\" # resistance\n", "alpha=alpha_R2/R2\n", "print \"alpha=alpha_R2/R2= %0.2f\"%(alpha) # Damping factor\n", "Q=1/alpha\n", "print \"Q= 1/alpha=%0.2f\"%(Q) # Quality factor\n", "omega_o=1/(R*C)\n", "print \"omega_o=1/(R*C)= %0.2f\"%(omega_o),\" radian\"# centre angular frequency\n", "BW=omega_o/Q\n", "print \"Bandwidth=omega_o/Q= %0.2f\"%(BW),\" radian\"# Upper cut-off frequency or 3-dB bandwidth\n", "K=R1/(R1_ratio_K)# Pass band gain for lPF and HPF of state variable filter\n", "print \"K=R1/(R1_ratio_K)= %0.2f\"%(K)\n", "Gm=K/alpha# Pass band gain of state variable filter\n", "print \"center frequency gain for BPF, K/alpha=K*Q= %0.2f\"%(Gm) # Centre frequency gain for BP filter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_12 Page No. 264" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "IB = 5.00e-07 ampere\n", "Iio = 5.00e-08 ampere\n", "Vio= 1.00e-03 volts\n", "R1= 10000.00 ohm\n", "RF= 500000.00 ohm\n", "Vos1=Vio*(1+RF/R1)=0.05 volts\n", "Vos2=IB*RF=0.25 volts\n", "Vos=Vos1+Vos2=0.30 volts\n", "R2=(R1*RF)/(R1+RF)= 9803.92 ohm\n", "Vos2=Iio*RF=0.02 volts\n", "Vos=Vos1+Vos2=0.08 volts\n" ] } ], "source": [ "from __future__ import division \n", "IB=0.5*10**(-6)\n", "print \"IB = %0.2e\"%(IB),\" ampere\" #Input bias current \n", "Iio=0.05*10**(-6)\n", "print \"Iio = %0.2e\"%(Iio),\" ampere\" #Input offset current \n", "Vio=1*10**(-3)\n", "print \"Vio= %0.2e\"%(Vio),\" volts\" #Input offset voltage\n", "R1=10*10**(3)\n", "print \"R1= %0.2f\"%(R1),\" ohm\" # resistance\n", "RF=500*10**(3)\n", "print \"RF= %0.2f\"%(RF),\" ohm\" #Feedback resistance\n", "Vos1=Vio*(1+RF/R1)\n", "print \"Vos1=Vio*(1+RF/R1)=%0.2f\"%(Vos1),\" volts\" #output offset voltage due to input offset voltage\n", "Vos2=IB*RF\n", "print \"Vos2=IB*RF=%0.2f\"%(Vos2),\" volts\" #output offset voltage due to Input bias current \n", "Vos=Vos1+Vos2\n", "print \"Vos=Vos1+Vos2=%0.2f\"%(Vos),\" volts\" #total output offset voltage \n", "R2=(R1*RF)/(R1+RF)\n", "print \"R2=(R1*RF)/(R1+RF)= %0.2f\"%(R2),\" ohm\" # resistance to balance IB effect \n", "Vos2=Iio*RF\n", "print \"Vos2=Iio*RF=%0.2f\"%(Vos2),\" volts\" # Reduced output offset voltage due to Input offset current \n", "Vos=Vos1+Vos2\n", "print \"Vos=Vos1+Vos2=%0.2f\"%(Vos),\" volts\" # output offset voltage with compensation \n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_13 Page No. 265" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iio = 1.00e-10 ampere/degree _celsius\n", "Vio= 1.00e-05 volt/degree _celsius\n", "Vs= 0.01 volts\n", "R1= 10000.00 ohm\n", "RF= 100000.00 ohm\n", "part(i)\n", "R2=(R1*RF)/(R1+RF)= 9090.91 ohm\n", "part(ii)\n", "delta_T=75-25 = 50.00 degree_celsius\n", "delta_Vo=[(Vio*delta_T)*(1+RF/R1)]+(Iio*delta_T*RF)= 0.01 volts\n", "part(iii)\n", "Vo=(-RF/R1)*Vs= -0.10 volts\n", "Percentage error=(delta_Vo/Vo)*100 =(-)6.00 , (+)6.00 percent\n" ] } ], "source": [ "from __future__ import division \n", "Iio=0.1*10**(-9)\n", "print \"Iio = %0.2e\"%(Iio),\" ampere/degree _celsius\" #Input offset current \n", "Vio=10*10**(-6)\n", "print \"Vio= %0.2e\"%(Vio),\" volt/degree _celsius\" #Input offset voltage\n", "Vs=10*10**(-3)\n", "print \"Vs= %0.2f\"%(Vs),\" volts\" #Input voltage\n", "R1=10*10**(3)\n", "print \"R1= %0.2f\"%(R1),\" ohm\" # resistance\n", "RF=100*10**(3)\n", "print \"RF= %0.2f\"%(RF),\" ohm\" #Feedback resistance\n", "print \"part(i)\"\n", "R2=(R1*RF)/(R1+RF)# R1 in parallel with RF\n", "print \"R2=(R1*RF)/(R1+RF)= %0.2f\"%(R2),\" ohm\" # resistance to balance IB i.e offset effect \n", "print \"part(ii)\"\n", "delta_T=75-25\n", "print \"delta_T=75-25 = %0.2f\"%(delta_T),\" degree_celsius\" #Temperature change\n", "delta_Vo=((Vio*delta_T)*(1+RF/R1))+(Iio*delta_T*RF)\n", "print \"delta_Vo=[(Vio*delta_T)*(1+RF/R1)]+(Iio*delta_T*RF)= %0.2f\"%(delta_Vo),\" volts\" #Output voltage drift\n", "print \"part(iii)\"\n", "Vo=(-RF/R1)*Vs\n", "print \"Vo=(-RF/R1)*Vs= %0.2f\"%(Vo),\" volts\" #Inverting OP-AMP output voltage\n", "e=(delta_Vo/Vo)*100\n", "print \"Percentage error=(delta_Vo/Vo)*100 =(-)%0.2f\"%(abs(e)),\", (+)%0.2f\"%(abs(e)),\" percent\"#percentage error" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_14 Page No. 266" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iio = 1.00e-10 ampere\n", "VCC= 15.00 volts\n", "PSRR= 1.50e-04 volts/V\n", "Vio= 1.00e-05 volts\n", "R1= 10000.00 ohm\n", "RF= 100000.00 ohm\n", "delta_T=75-25 = 50.00 celsius\n", "delta_Vo=[(Vio*delta_T)*(1+RF/R1)]+(Iio*delta_T*RF)= 0.01 volts\n", "delta_Vio1=(delta_Vo)*(R1/RF)= 0.00 volts\n", "delta_Vio2=(delta_Vio1)*(1/10)= 0.00 volts\n", "power supply regulation=[(delta_Vio2)/(VCC*PSRR)]*100 =2.67 percent\n" ] } ], "source": [ "from __future__ import division \n", "Iio=0.1*10**(-9)\n", "print \"Iio = %0.2e\"%(Iio),\" ampere\" #Input offset current\n", "VCC=15\n", "print \"VCC= %0.2f\"%(VCC),\" volts\" # voltage supply \n", "PSRR=150*10**(-6)\n", "print \"PSRR= %0.2e\"%(PSRR),\" volts/V\"# Power supply rejection ratio\n", "Vio=10*10**(-6)\n", "print \"Vio= %0.2e\"%(Vio),\" volts\" #Input offset voltage\n", "R1=10*10**(3)\n", "print \"R1= %0.2f\"%(R1),\" ohm\" # resistance\n", "RF=100*10**(3)\n", "print \"RF= %0.2f\"%(RF),\" ohm\" #Feedback resistance\n", "delta_T=75-25\n", "print \"delta_T=75-25 = %0.2f\"%(delta_T),\" celsius\" #Temperature change\n", "delta_Vo=((Vio*delta_T)*(1+RF/R1))+(Iio*delta_T*RF)\n", "print \"delta_Vo=[(Vio*delta_T)*(1+RF/R1)]+(Iio*delta_T*RF)= %0.2f\"%(delta_Vo),\" volts\" #Output voltage drift\n", "delta_Vio1=(delta_Vo)*(R1/RF)\n", "print \"delta_Vio1=(delta_Vo)*(R1/RF)= %0.2f\"%(delta_Vio1),\" volts\" # voltage change at Input for voltage drift found\n", "delta_Vio2=(delta_Vio1)*(1/10)\n", "print \"delta_Vio2=(delta_Vio1)*(1/10)= %0.2f\"%(delta_Vio2),\" volts\" # change in Vio due to PSRR\n", "p=((delta_Vio2)/(VCC*PSRR))*100\n", "print \"power supply regulation=[(delta_Vio2)/(VCC*PSRR)]*100 =%0.2f\"%(p),\" percent\"# power supply regulation requirement\n", "\n", "#delta_Vio1 corresponds to voltage change at Input for voltage drift found \n", "#delta_Vio2 corresponds voltage change at input due to PSRR" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 8_15 Page No. 271" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SR= 0.65 volts/microsecond\n", "part(i)\n", "Vm= 5.00 volts\n", "fsm=SR/[10**(-6)*(2*pi*Vm)] = 20690.14 Hz\n", "part(ii)\n", "Vm= 1.00 volts\n", "fsm=SR/[10**(-6)*(2*pi*Vm)] = 103450.71 Hz\n" ] } ], "source": [ "from math import pi\n", "from __future__ import division \n", "SR=0.65\n", "print \"SR= %0.2f\"%(SR),\" volts/microsecond\"# Slew rate of OP-AMP\n", "print \"part(i)\"\n", "Vm=5\n", "print \"Vm= %0.2f\"%(Vm),\" volts\" # Output peak voltage1\n", "fsm=SR/(10**(-6)*(2*pi*Vm)) # using formulae SR=2*pi*fsm*Vm\n", "print \"fsm=SR/[10**(-6)*(2*pi*Vm)] = %0.2f\"%(fsm),\" Hz\"# # Full power bandwidth for Output peak voltage Vm=5V\n", "print \"part(ii)\"\n", "Vm=1\n", "print \"Vm= %0.2f\"%(Vm),\" volts\" # Output peak voltage2\n", "fsm=SR/(10**(-6)*(2*pi*Vm)) # using formulae SR=2*pi*fsm*Vm\n", "print \"fsm=SR/[10**(-6)*(2*pi*Vm)] = %0.2f\"%(fsm),\" Hz\"# # Full power bandwidth for Output peak voltage Vm=1V" ] } ], "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 }