{ "metadata": { "name": "", "signature": "sha256:083d39cbb0b520b2793c0213a9dd654eda9ff785157da84f0bec629956fa17a6" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Chapter08: Feedback" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex8.1:pg-808" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Example 8.1: Analysis of op amp connected in an inverting configuration\n", "# By inspection we can write down the expressions for A, B , closed loop gain , the input resistance and the output resistance\n", "u=10**4; # (ohm)\n", "R_id=100.0*10**3; # (ohm)\n", "r_o=1000.0; # (ohm)\n", "R_L=2000.0; # (ohm)\n", "R_1=1000.0; # (ohm)\n", "R_2=10.0**6; # (ohm)\n", "R_S=10000.0; # (ohm)\n", "A=u*(R_L*(R_1+R_2)/(R_L+R_1+R_2))*R_id/(((R_L*(R_1+R_2))/(R_L+R_1+R_2)+r_o)*(R_id+R_S+(R_1*R_2)/(R_1+R_2)))\n", "print int(A),\"= Voltage gain without feedback (V/V)\"\n", "B=R_1/(R_1+R_2); # Beta value\n", "print round(B,5), \"= Beta value \"\n", "A_f=A/(1.0+A*B);\n", "print int(A_f),\"= Voltage gain with feedback (V/V)\"\n", "R_i=R_S+R_id+(R_1*R_2/(R_1+R_2))# Input resistance of the A circuit in fig 8.12a of textbook\n", "R_if=R_i*7;\n", "R_in=R_if-R_S;\n", "print round(R_in/1000.0,1),\"= Input resistance (Kohm)\"\n", "R_o=1.0/(1/r_o+1/R_L+1/(R_1+R_2));\n", "R_of=R_o/(1.0+A*B); \n", "R_out=R_of*R_L/(R_L-R_of);\n", "print round(R_out),\"= the output resistance (ohm)\"\n", "# the answer for input resistance is incorrect in the textbook" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "6002 = Voltage gain without feedback (V/V)\n", "0.001 = Beta value \n", "857 = Voltage gain with feedback (V/V)\n", "767.0 = Input resistance (Kohm)\n", "100.0 = the output resistance (ohm)\n" ] } ], "prompt_number": 9 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex8.2:pg-815" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Example 8.2: Feedback triple\n", "# Consider the given three stage series-series feedback\n", "h_fe=100.0;\n", "g_m2=40.0*10**-3; # (A/V)\n", "r_e1=41.7; # (ohm)\n", "a_1=0.99; # alpha value\n", "R_C1=9000.0; # (ohm)\n", "R_E1=100.0; #(ohm)\n", "R_F=640.0; # (ohm)\n", "R_E2=100.0; #(ohm)\n", "r_pi2=h_fe/g_m2;\n", "R_C2=5000.0; # (ohm)\n", "r_e3=6.25; # (ohm)\n", "R_C3=800.0; #(ohm)\n", "# First stage gain A_1=V_c1/V_i\n", "A_1=-a_1*R_C1*r_pi2/((R_C1+r_pi2)*(r_e1+((R_E1*(R_F+R_E2))/(R_E1+R_F+R_E2)))) \n", "print round(A_1,2),\"=The voltage gain of the first stage (V/V)\"\n", "# Gain of the second stage A_2=Vc2/V_c1\n", "A_2=-g_m2*((R_C2*(h_fe+1)/(R_C2+h_fe+1))*(r_e3+(R_E2*(R_F+R_E1))/(R_E2+R_F+R_E1)))\n", "print round(A_2,1),\"=The second stage gain (V/V)\"\n", "# Third stage gain A_3 I_O/V_i\n", "A_3=1/(r_e3+(R_E2*(R_F+R_E1)/(R_E2+R_F+R_E1)));\n", "print round(A_3*1000,1),\"=The third stage gain (mA/V)\"\n", "A=A_1*A_2*A_3; # combined gain\n", "print A,\"=Combined gain (V/V)\"\n", "B=R_E1*R_E2/(R_E2+R_F+R_E1);\n", "print B,\"=Beta value\"\n", "A_f=A/(1.0+A*B);\n", "print round(A_f*1000.0,2),\"=Closed loop gain (mA/V)\"\n", "A_v=-A_f*R_C3; # Voltage gain\n", "print round(A_v,1),\"=Voltage gain (V/V)\"\n", "R_i=(h_fe+1)*(r_e1+(R_E1//(R_F+R_E2))/(R_E1+R_F+R_E2));\n", "R_if=R_i*(1+A*B);\n", "print round(R_if/1e6,1),\"=Input resistance (Mohm)\"\n", "R_o=(R_E2//(R_F+R_E1)/(R_F+R_E1+R_E2))+r_e3+R_C2/(h_fe+1);\n", "R_of=R_o*(1.0+A*B);\n", "print round(R_of/1000,1),\"=Output voltage (kohm)\"\n", "r_o=25000; # (ohm)\n", "g_m3=160*10**-3; # (mho)\n", "r_pi3=625; # (ohm)\n", "R_out=r_o+(1+g_m3*r_o)*R_of*r_pi3/(R_of+r_pi3);\n", "print round(R_out/1e6,1),\"=R_out (Mohm)\"\n", " # the answer in the textbook is slightly dirfferent due to approximation" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "-14.92 =The voltage gain of the first stage (V/V)\n", "-373.6 =The second stage gain (V/V)\n", "10.6 =The third stage gain (mA/V)\n", "59.0958738355 =Combined gain (V/V)\n", "11.9047619048 =Beta value\n", "83.88 =Closed loop gain (mA/V)\n", "-67.1 =Voltage gain (V/V)\n", "3.0 =Input resistance (Mohm)\n", "39.3 =Output voltage (kohm)\n", "2.5 =R_out (Mohm)\n" ] } ], "prompt_number": 14 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex8.3:pg-821" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Example 8.3 : Small signal analysis\n", "B=100.0; # beta value\n", "I_B=0.015*10**-3; # (A)\n", "I_C=1.5*10**-3; # (A)\n", "V_C=4.7; # (V)\n", "g_m=40.0*10**-3;\n", "R_f=47000.0;\n", "R_S=10000.0;\n", "R_C=4700.0;\n", "r_pi=B/g_m;\n", "A=-358.7*10**3; # V_o/I_i= -g_m(R_f||R_C)(R_S||R_F||r_pi)\n", "R_i=1400.0; # R_i=R_S||R_f||r_pi (ohm)\n", "R_o=R_C*R_f/(R_C+R_f); \n", "B=-1/R_f;\n", "A_f=A/(1.0+A*B); # V_o/I_s\n", "A_v=A_f/R_S; # V_o/V_s\n", "print round(A_v,2),\"= The gain (V/V)\"\n", "R_if=R_i/(1+A*B);\n", "print round(R_if,1),\"= R_if (ohm)\"\n", "R_of=R_o/(1+A*B);\n", "print round(R_of),\"= R_of (ohm)\"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "-4.16 = The gain (V/V)\n", "162.2 = R_if (ohm)\n", "495.0 = R_of (ohm)\n" ] } ], "prompt_number": 18 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Ex8.4:pg-825" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Example 8.4: Small signal analysis\n", "R_S=10.0*10**3; # (ohm)\n", "R_B1=100.0*10**3; # (ohm)\n", "R_B2=15.0*10**3; # (ohm)\n", "R_C1=10.0*10**3; # (ohm)\n", "R_E1=870.0; # (ohm)\n", "R_E2=3400.0; # (ohm)\n", "R_C2=8000.0; # (ohm)\n", "R_L=1000.0; # (ohm)\n", "R_f=10000.0; # (ohm)\n", "B=100.0; # beta value\n", "V_A=75.0; # (V)\n", "A=-201.45 # I_o/I_i (A/A)\n", "R_i=1535.0; # (ohm)\n", "R_o=2690.0; # (ohm)\n", "B=-R_E2/(R_E2+R_f);\n", "R_if=R_i/(1+A*B);\n", "R_in=1/((1/R_if)-(1/R_S));\n", "print round(R_in,1), \"= R_in (ohm)\"\n", "A_f=A/(1+A*B); # I_o/I_S\n", "gain=R_C2*A_f/(R_C2+R_L); # I_o/I_S\n", "print round(gain,2),\"= I_o/I_S (A/A)\"\n", "R_of=R_o*(1+A*B); # (ohm)\n", "r_o2=75/0.0004; # (ohm)\n", "g_m2=0.016; # (A/V)\n", "r_pi2=6250; # (ohm)\n", "R_out=r_o2*(1+g_m2*(r_pi2*R_of/(r_pi2+R_of)))\n", "print round(R_out/1e6,1),\"= R_out (Mohm)\"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "29.5 = R_in (ohm)\n", "-3.44 = I_o/I_S (A/A)\n", "18.1 = R_out (Mohm)\n" ] } ], "prompt_number": 29 } ], "metadata": {} } ] }