summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch3.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch3.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch3_1.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch3_1.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch4.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch4.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch4_1.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch4_1.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch5.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch5.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch5_1.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch5_1.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch6.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch6.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch6_1.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch6_1.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch7.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch7.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch7_1.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch7_1.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch8.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch8.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch8_1.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch8_1.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch9.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch9.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch9_1.ipynb (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch9_1.ipynb)0
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/3.png (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/3.png)bin49632 -> 49632 bytes
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/3_1.png (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/3_1.png)bin49632 -> 49632 bytes
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/5.png (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/5.png)bin59455 -> 59455 bytes
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/5_1.png (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/5_1.png)bin59455 -> 59455 bytes
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/9.png (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/9.png)bin61250 -> 61250 bytes
-rw-r--r--Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/9_1.png (renamed from _Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/9_1.png)bin61250 -> 61250 bytes
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch15_2.ipynb179
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch16_2.ipynb365
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch17_2.ipynb311
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch18_2.ipynb284
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch19_2.ipynb333
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch20_2.ipynb316
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch21_2.ipynb284
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch22_2.ipynb169
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch23_2.ipynb367
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch24_2.ipynb233
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch25_2.ipynb291
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch26_2.ipynb350
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch27_2.ipynb401
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch28_2.ipynb197
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch29_2.ipynb263
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch30_2.ipynb107
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/1RefractionOfLaserLight_2.pngbin0 -> 27147 bytes
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/2PropertiesOfImage_2.pngbin0 -> 31068 bytes
-rw-r--r--College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/3PositionOf1DarkFringe_2.pngbin0 -> 35443 bytes
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch10_2.ipynb1097
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch11_2.ipynb1130
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch12_2.ipynb172
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch13_2.ipynb282
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch1_2.ipynb222
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch2_2.ipynb774
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch3_2.ipynb1724
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch4_2.ipynb441
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch5_2.ipynb859
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch6_2.ipynb502
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch7_2.ipynb504
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch8_2.ipynb291
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch9_2.ipynb466
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNip3_2.pngbin0 -> 22701 bytes
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNipV3_2.pngbin0 -> 20243 bytes
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/transferChar3_2.pngbin0 -> 25449 bytes
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter10_2.ipynb168
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter10_3.ipynb168
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter11_2.ipynb145
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter11_3.ipynb145
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter12_2.ipynb263
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter12_3.ipynb263
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter13_2.ipynb187
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter13_3.ipynb187
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter14_2.ipynb211
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter14_3.ipynb211
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter2_2.ipynb245
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter2_3.ipynb245
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter3_2.ipynb226
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter3_3.ipynb226
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter4_2.ipynb222
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter4_3.ipynb222
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter5_2.ipynb232
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter5_3.ipynb232
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter6_2.ipynb252
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter6_3.ipynb252
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter7_2.ipynb338
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter7_3.ipynb338
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter8_2.ipynb381
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter8_3.ipynb381
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter9_2.ipynb243
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter9_3.ipynb243
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13AngularDisplacement_1.pngbin0 -> 28110 bytes
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13AngularDisplacement_2.pngbin0 -> 28110 bytes
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LateralDisplacement_1.pngbin0 -> 27951 bytes
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LateralDisplacement_2.pngbin0 -> 27951 bytes
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LongitudinalDisplacement_1.pngbin0 -> 31224 bytes
-rw-r--r--Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LongitudinalDisplacement_2.pngbin0 -> 31224 bytes
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch10_2.ipynb264
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch11_2.ipynb440
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch12_2.ipynb444
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch13_2.ipynb291
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch14_2.ipynb420
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch15_2.ipynb349
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch16_2.ipynb445
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch17_2.ipynb366
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch18_2.ipynb460
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch19_2.ipynb389
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch20_2.ipynb480
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch21_2.ipynb350
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch22_2.ipynb606
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch23_2.ipynb442
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch24_2.ipynb195
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch25_2.ipynb387
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch26_2.ipynb273
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch27_2.ipynb468
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch28_2.ipynb350
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch29_2.ipynb264
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch30_2.ipynb217
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch31_2.ipynb180
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch3_2.ipynb1391
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch4_2.ipynb271
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch5_2.ipynb258
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch6_2.ipynb378
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch7_2.ipynb310
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch8_2.ipynb838
-rw-r--r--Machine_Design_by_U.C._Jindal/Ch9_2.ipynb491
-rw-r--r--Machine_Design_by_U.C._Jindal/screenshots/Chapter-3stressgraph_2.pngbin0 -> 38948 bytes
-rw-r--r--Machine_Design_by_U.C._Jindal/screenshots/Chapter-_8AdditionalLoad_2.pngbin0 -> 36524 bytes
-rw-r--r--Machine_Design_by_U.C._Jindal/screenshots/Chapter11_-_strengthofrevet_2.pngbin0 -> 27344 bytes
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/README.txt (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/README.txt)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10_1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10_1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11_1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11_1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1_1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1_1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2_1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2_1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3_1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3_1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4_1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4_1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5_1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5_1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6_1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6_1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7_1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7_1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8_1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8_1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9_1.ipynb (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9_1.ipynb)0
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56).png (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56).png)bin203140 -> 203140 bytes
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56)_1.png (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56)_1.png)bin203140 -> 203140 bytes
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57).png (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57).png)bin207547 -> 207547 bytes
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57)_1.png (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57)_1.png)bin207547 -> 207547 bytes
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58).png (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58).png)bin211548 -> 211548 bytes
-rw-r--r--Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58)_1.png (renamed from _Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58)_1.png)bin211548 -> 211548 bytes
-rw-r--r--df_by_f/muktesh.ipynb101
-rw-r--r--df_by_f/padmavathi.ipynb127
-rw-r--r--df_by_f/prashanth.ipynb601
-rw-r--r--df_by_f/screenshots/blank1.png0
-rw-r--r--df_by_f/screenshots/blank1_(another_copy).png0
-rw-r--r--df_by_f/screenshots/blank1_(copy).png0
-rw-r--r--df_by_f/screenshots/blank1_(copy)_1.png0
-rw-r--r--df_by_f/screenshots/blank1_1.png0
-rw-r--r--df_by_f/screenshots/blank1_2.png0
-rw-r--r--dss_by_asd/README.txt10
-rw-r--r--dss_by_asd/namratha.ipynb907
-rw-r--r--dss_by_asd/screenshots/screenshot2.pngbin56580 -> 0 bytes
-rw-r--r--dss_by_asd/screenshots/screenshot4.pngbin96783 -> 0 bytes
-rw-r--r--dss_by_asd/screenshots/streamplot.pngbin57684 -> 0 bytes
-rwxr-xr-xfdgfg_by_fgs/arijit.ipynb904
-rwxr-xr-xfdgfg_by_fgs/screenshots/48007040.pngbin52210 -> 0 bytes
-rwxr-xr-xfdgfg_by_fgs/screenshots/acrofi_india.pngbin426911 -> 0 bytes
-rwxr-xr-xfdgfg_by_fgs/screenshots/acrofi_india_1.pngbin426911 -> 0 bytes
-rw-r--r--testing_by_test/screenshots/screenshot6.pngbin86681 -> 0 bytes
-rw-r--r--testing_by_test/screenshots/screenshot6_1.pngbin86681 -> 0 bytes
-rw-r--r--testing_by_test/screenshots/screenshot6_2.pngbin86681 -> 0 bytes
-rw-r--r--testing_by_test/screenshots/screenshot6_3.pngbin86681 -> 0 bytes
-rw-r--r--testing_by_test/screenshots/screenshot6_4.pngbin86681 -> 0 bytes
-rw-r--r--testing_by_test/screenshots/screenshot6_5.pngbin86681 -> 0 bytes
-rw-r--r--testing_by_test/vivek.ipynb618
-rw-r--r--testing_by_test/vivek_1.ipynb618
174 files changed, 31157 insertions, 3886 deletions
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch3.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch3.ipynb
index e7d3c7d5..e7d3c7d5 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch3.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch3.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch3_1.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch3_1.ipynb
index e7d3c7d5..e7d3c7d5 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch3_1.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch3_1.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch4.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch4.ipynb
index 8b0dac47..8b0dac47 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch4.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch4.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch4_1.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch4_1.ipynb
index 8b0dac47..8b0dac47 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch4_1.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch4_1.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch5.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch5.ipynb
index d0cc5d39..d0cc5d39 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch5.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch5.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch5_1.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch5_1.ipynb
index d0cc5d39..d0cc5d39 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch5_1.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch5_1.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch6.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch6.ipynb
index 57085808..57085808 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch6.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch6.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch6_1.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch6_1.ipynb
index 57085808..57085808 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch6_1.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch6_1.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch7.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch7.ipynb
index 746d79d4..746d79d4 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch7.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch7.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch7_1.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch7_1.ipynb
index 746d79d4..746d79d4 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch7_1.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch7_1.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch8.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch8.ipynb
index f4b9ac5e..f4b9ac5e 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch8.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch8.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch8_1.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch8_1.ipynb
index f4b9ac5e..f4b9ac5e 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch8_1.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch8_1.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch9.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch9.ipynb
index 975d0f7d..975d0f7d 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch9.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch9.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch9_1.ipynb b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch9_1.ipynb
index 975d0f7d..975d0f7d 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/ch9_1.ipynb
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/ch9_1.ipynb
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/3.png b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/3.png
index e3686eef..e3686eef 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/3.png
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/3.png
Binary files differ
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/3_1.png b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/3_1.png
index e3686eef..e3686eef 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/3_1.png
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/3_1.png
Binary files differ
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/5.png b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/5.png
index 26328bb3..26328bb3 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/5.png
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/5.png
Binary files differ
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/5_1.png b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/5_1.png
index 26328bb3..26328bb3 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/5_1.png
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/5_1.png
Binary files differ
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/9.png b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/9.png
index eabc693d..eabc693d 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/9.png
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/9.png
Binary files differ
diff --git a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/9_1.png b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/9_1.png
index eabc693d..eabc693d 100644
--- a/_Applied_Thermodynamics_and_Engineering _by_T._D._Eastop_and_A._Mcconkey/screenshots/9_1.png
+++ b/Applied_Thermodynamics_and_Engineering_by_T._D._Eastop_and_A._Mcconkey/screenshots/9_1.png
Binary files differ
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch15_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch15_2.ipynb
new file mode 100644
index 00000000..1c77fdc3
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch15_2.ipynb
@@ -0,0 +1,179 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 15 : Electric forces and electric fields"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 15.1 Page No : 502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The attractive force = 8.19e-08 N\n",
+ "The gravitational force = 3.61e-47 N\n"
+ ]
+ }
+ ],
+ "source": [
+ "k_e=8.99*10**9\n",
+ "e=1.6*10**-19\n",
+ "r=5.3*10**-11\n",
+ "F_e= (k_e*e*e)/(r*r)\n",
+ "print \"The attractive force = %0.2e N\"%F_e\n",
+ "G=6.67*10**-11\n",
+ "m_e=9.11*10**-31\n",
+ "m_p=1.67*10**-27\n",
+ "F_g=(G*m_e*m_p)/(r*r)\n",
+ "print \"The gravitational force = %0.2e N\"%F_g"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 15.2 Page No : 503"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The force = 5.62e-09 N\n",
+ "The force = 1.08e-08 N\n"
+ ]
+ }
+ ],
+ "source": [
+ "k_e=8.99*10**9 #N.m**2/c**2\n",
+ "q2=2*10**-9# = %0.2f c\n",
+ "q3=5*10**-9# = %0.2f c\n",
+ "r1=4#in m\n",
+ "F_23=(q2*q3*k_e)/(r1*r1)\n",
+ "print \"The force = %0.2e N\"%F_23\n",
+ "q1=6*10**-9\n",
+ "r2=5#in m\n",
+ "F_13=(q1*q3*k_e)/(r2*r2)\n",
+ "print \"The force = %0.2e N\"%F_13"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 15.4 Page No: 507"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The magnitude of force = 3.20e-15 N\n"
+ ]
+ }
+ ],
+ "source": [
+ "q=1.6*10**-19#in c\n",
+ "E=2*10**4# = %0.2f N/C\n",
+ "F=q*E\n",
+ "print \"The magnitude of force = %0.2e N\"%F"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 15.5 Page No: 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Magnitude of E1 = 3.93e+05 N/C\n",
+ "Magnitude of E2 = 1.80e+05 N/C\n",
+ "Magnitude in x direction = 1.80e+05 N/C\n",
+ "Magnitude in y direction = 2.49e+05 N/C\n",
+ "Angle = 54.17 degree\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import degrees, atan\n",
+ "k_e=8.99*10**9 #N.m**2/c**2\n",
+ "q1=7*10**-6# = %0.2f C\n",
+ "q2=5*10**-6#in C\n",
+ "r1=0.4\n",
+ "r2=0.5\n",
+ "E1=(k_e*q1)/(r1**2)\n",
+ "E2=(k_e*q2)/(r2**2)\n",
+ "Ex=(k_e*q2)/(r2**2)\n",
+ "print \"Magnitude of E1 = %0.2e N/C\"%E1\n",
+ "print \"Magnitude of E2 = %0.2e N/C\"%E2\n",
+ "print \"Magnitude in x direction = %0.2e N/C\"%Ex\n",
+ "Ey=(3.93*10**5)+(-1.44*10**5)\n",
+ "print \"Magnitude in y direction = %0.2e N/C\"%Ey\n",
+ "phi=degrees(atan(Ey/Ex))\n",
+ "print \"Angle = %0.2f degree\"%phi\n",
+ "#Answer given in the book is wrong"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch16_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch16_2.ipynb
new file mode 100644
index 00000000..0e794d3d
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch16_2.ipynb
@@ -0,0 +1,365 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 16 : Electrical Energy & Capacitance"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 16.1 Page No : 533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The value of E = 4000.00 v/m\n"
+ ]
+ }
+ ],
+ "source": [
+ "v_bminusv_a=-12\n",
+ "d=0.3*10**-2#in m\n",
+ "E=-(v_bminusv_a)/d\n",
+ "print \"The value of E = %0.2f v/m\"%E"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 16.2 Page No : 533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "solution a\n",
+ "Electric potential from A to B = -40000.00 V\n",
+ "solution b\n",
+ "Change in electric potential = -0.00 joules\n",
+ "velocity = 2768514.16 m/s\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "print \"solution a\"\n",
+ "E=8*10**4#in V/m\n",
+ "d=0.5#in m\n",
+ "delta_V=-E*d\n",
+ "print \"Electric potential from A to B = %0.2f V\"%delta_V\n",
+ "print \"solution b\"\n",
+ "q=1.6*10**-19#in C\n",
+ "delta_PE=q*delta_V\n",
+ "print \"Change in electric potential = %0.2f joules\"%delta_PE\n",
+ "m_p=1.67*10**-27#in kg\n",
+ "vf=sqrt((2*-delta_PE)/m_p)\n",
+ "print \"velocity = %0.2f m/s\"%vf"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 16.3 Page No: 534"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Solution a\n",
+ "Magnitude of V1 = 112375.00 v\n",
+ "Magnitude of V2 = -35960.00 v\n",
+ "solution b\n",
+ "Magnitude of Vp = 76415.00 v\n",
+ "work done = 0.31 Joule\n"
+ ]
+ }
+ ],
+ "source": [
+ "k_e=8.99*10**9 #N.m**2/c**2\n",
+ "q1=5*10**-6# in C\n",
+ "q2=-2*10**-6#in C\n",
+ "r1=0.4\n",
+ "r2=0.5\n",
+ "V1=(k_e*q1)/(r1)\n",
+ "V2=(k_e*q2)/(r2)\n",
+ "print \"Solution a\"\n",
+ "print \"Magnitude of V1 = %0.2f v\"%V1\n",
+ "print \"Magnitude of V2 = %0.2f v\"%V2\n",
+ "print \"solution b\"\n",
+ "vp=V1+V2\n",
+ "print \"Magnitude of Vp = %0.2f v\"%vp\n",
+ "q3=4*10**-6#in C\n",
+ "w=vp*q3\n",
+ "print \"work done = %0.2f Joule\"%w"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 16.4 Page No: 535"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Capacitance = 1.77e-12 farad\n"
+ ]
+ }
+ ],
+ "source": [
+ "e0=8.85*10**-12#in c2/N.m2\n",
+ "A=2*10**-4#in m2\n",
+ "d=1*10**-3#in m\n",
+ "c=(e0*A)/d\n",
+ "print \"Capacitance = %0.2e farad\"%c"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 16.5 Page No : 535"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "capacitance = 4.50e-05 farad\n",
+ "voltage between battery = 2.16e-04 c\n"
+ ]
+ }
+ ],
+ "source": [
+ "c1=3*10**-6\n",
+ "c2=6*10**-6\n",
+ "c3=12*10**-6\n",
+ "c4=24*10**-6\n",
+ "delta_v=18\n",
+ "c_eq=c1+c2+c3+c4\n",
+ "print \"capacitance = %0.2e farad\"%c_eq\n",
+ "q=delta_v*c3\n",
+ "print \"voltage between battery = %0.2e c\"%q"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 16.6 Page No : 536"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "solution a\n",
+ "capacitance = 1.60e-06 farad\n",
+ "solution b\n",
+ "voltage between battery = 2.88e-05 c\n"
+ ]
+ }
+ ],
+ "source": [
+ "c1=3*10**-6\n",
+ "c2=6*10**-6\n",
+ "c3=12*10**-6\n",
+ "c4=24*10**-6\n",
+ "delta_v=18\n",
+ "print \"solution a\"\n",
+ "c_eq=1/((1/c1)+(1/c2)+(1/c3)+(1/c4))\n",
+ "print \"capacitance = %0.2e farad\"%c_eq\n",
+ "q=delta_v*c_eq\n",
+ "print \"solution b\"\n",
+ "print \"voltage between battery = %0.2e c\"%q"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 16.7 Page No: 536"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "solution a\n",
+ "capacitance = 2.00e-06 farad\n"
+ ]
+ }
+ ],
+ "source": [
+ "c1=4*10**-6\n",
+ "c2=4*10**-6\n",
+ "print \"solution a\"\n",
+ "c_eq=1/((1/c1)+(1/c2))\n",
+ "print \"capacitance = %0.2e farad\"%c_eq"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 16.8 Page No: 537"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "solution a\n",
+ "Energy stored = 4671 volt\n",
+ "solution b\n",
+ "power = 240000 watt\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "Energy=1.2*10**3#in J\n",
+ "c=1.1*10**-4#in f\n",
+ "delta_v=sqrt((2*Energy)/c)\n",
+ "print \"solution a\"\n",
+ "print \"Energy stored = %0.f volt\"%delta_v\n",
+ "print \"solution b\"\n",
+ "Energy_deliverd=600#in j\n",
+ "delta_t=2.5*10**-3#in s\n",
+ "p=(Energy_deliverd)/delta_t\n",
+ "print \"power = %0.f watt\"%p"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 16.9 Page No: 538"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "solution a\n",
+ "Capacitance = 1.96e-11 farad\n",
+ "solution b\n",
+ "Voltage = 16000.0 volt\n",
+ "Maximum charge = 3.14e-07 columb\n"
+ ]
+ }
+ ],
+ "source": [
+ "k=3.7\n",
+ "e0=8.85*10**-12#in c2/N.m2\n",
+ "A=6*10**-4#in m2\n",
+ "d=1*10**-3#in m\n",
+ "c=(k*e0*A)/d\n",
+ "print \"solution a\"\n",
+ "print \"Capacitance = %0.2e farad\"%c\n",
+ "print \"solution b\"\n",
+ "E_max=16*10**6#in v/m\n",
+ "delta_v_max=E_max*d\n",
+ "print \"Voltage = %0.1f volt\"%delta_v_max\n",
+ "Q_max=delta_v_max*c\n",
+ "print \"Maximum charge = %0.2e columb\"%Q_max"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch17_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch17_2.ipynb
new file mode 100644
index 00000000..d0eee390
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch17_2.ipynb
@@ -0,0 +1,311 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 17 : Current and resistance"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 17.1 Page No: 571"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "solution a : \n",
+ "Current = 0.83 Amp\n",
+ "solution b : \n",
+ "Number of electrons = 0.84 C\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "print \"solution a : \"\n",
+ "delta_q=1.67 # in c\n",
+ "delta_t=2 # in s\n",
+ "I=delta_q/delta_t\n",
+ "print \"Current = %0.2f Amp\"%I\n",
+ "print \"solution b : \"\n",
+ "N=5.22*10**18\n",
+ "N_q=(1.6*10**-19)*N\n",
+ "\n",
+ "print \"Number of electrons = %0.2f C\"%N_q"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 17.2 Page No: 573"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Solution a :\n",
+ "The drift speed = 2.46e-04 m/s=\n",
+ "Drift speed of electron = 1.15e+05 m/s\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "M=63.5 # IN G\n",
+ "rho=8.95\n",
+ "v=M/rho\n",
+ "electrons=6.02*10**23\n",
+ "n=(electrons*10**6)/v\n",
+ "I=10 # in c/s\n",
+ "q=1.60*10**-19 # in c\n",
+ "A=3*10**-6 # in m2\n",
+ "vd=(I)/(n*q*A)\n",
+ "print \"Solution a :\"\n",
+ "print \"The drift speed = %0.2e m/s=\"%vd\n",
+ "k_b=1.38*10**-23\n",
+ "T=293\n",
+ "m=9.11*10**-31\n",
+ "v_rms=sqrt((3*k_b*T)/m)\n",
+ "print \"Drift speed of electron = %0.2e m/s\"%v_rms"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 17.3 Page No: 578"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The resistance = 18.75 ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "delta_v=120\n",
+ "I=6.4\n",
+ "R=(delta_v)/I\n",
+ "print \"The resistance = %0.2f ohm\"%R"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 17.4 Page No: 580"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Solution a : \n",
+ "Area = 3.24e-07 m**2\n",
+ "Resistance = 4.63 ohm/m\n",
+ "solution b : \n",
+ "The current = 2.16 Amps\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "r=0.321*10**-3\n",
+ "A=pi*(r*r)\n",
+ "print \"Solution a : \"\n",
+ "print \"Area = %0.2e m**2\"%A\n",
+ "rho=1.5*10**-6 # in ohm=m\n",
+ "l=rho/A\n",
+ "print\"Resistance = %0.2f ohm/m\"% l\n",
+ "print \"solution b : \"\n",
+ "Delta_v=10\n",
+ "I=(Delta_v)/l\n",
+ "print \"The current = %0.2f Amps\"%I\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 17.5 Page No: 582"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Temperature = 156.73 C\n"
+ ]
+ }
+ ],
+ "source": [
+ "R=76.8\n",
+ "Ro=50\n",
+ "alpha=3.92*10**-3\n",
+ "t=(R-Ro)/(alpha*Ro)\n",
+ "T=t+20\n",
+ "print \"Temperature = %0.2f C\"%T"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 17.6 Page No: 583"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The current = 6.00 A\n",
+ "Power = 288.00 Watt\n"
+ ]
+ }
+ ],
+ "source": [
+ "delta_v=50\n",
+ "R=8\n",
+ "I=(delta_v)/R\n",
+ "print \"The current = %0.2f A\"%I\n",
+ "P=I*I*R\n",
+ "print \"Power = %0.2f Watt\"%P"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 17.7 Page No: 585"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of bulbs = 32\n"
+ ]
+ }
+ ],
+ "source": [
+ "I=20 # in A\n",
+ "delta_v=120\n",
+ "p_bulb=75 # inwatt\n",
+ "p_total=I*delta_v\n",
+ "N=p_total/p_bulb\n",
+ "print \"Number of bulbs = %d\"%N"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 17.8 Page No: 587"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Energy = 2.40 kwh\n",
+ "Cost = 0.29 dollars\n"
+ ]
+ }
+ ],
+ "source": [
+ "p=0.10 # in w\n",
+ "t=24 # in h\n",
+ "Energy=p*t\n",
+ "print \"Energy = %0.2f kwh\"%Energy\n",
+ "cost=Energy*0.12\n",
+ "print \"Cost = %0.2f dollars\"%cost"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch18_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch18_2.ipynb
new file mode 100644
index 00000000..941bf10e
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch18_2.ipynb
@@ -0,0 +1,284 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 18 : Direct current circuits"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 18.1 Page No: 597"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Solution a\n",
+ "Equivalent resistance = 18.00 ohm\n",
+ "Solution b\n",
+ "Current = 0.33 Amps\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "R1=2\n",
+ "R2=4\n",
+ "R3=5\n",
+ "R4=7\n",
+ "R_eq=R1+R2+R3+R4\n",
+ "v=6#in v\n",
+ "print \"Solution a\"\n",
+ "print \"Equivalent resistance = %0.2f ohm\"%R_eq\n",
+ "print \"Solution b\"\n",
+ "I=v/R_eq\n",
+ "print \"Current = %0.2f Amps\"%I"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example18.2 Page No: 599"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "solution a\n",
+ "Current = 6.00 amps\n",
+ "Current = 3.00 amps\n",
+ "Current = 2.00 amps\n",
+ "solution B\n",
+ "Power = 108.00 watt\n",
+ "Power = 54.00 watt\n",
+ "Power = 36.00 watt\n"
+ ]
+ }
+ ],
+ "source": [
+ "delta_V=18#in volt\n",
+ "R1=3#in ohm\n",
+ "R2=6#in ohm\n",
+ "R3=9#in ohm\n",
+ "I1=delta_V/R1\n",
+ "I2=delta_V/R2\n",
+ "I3=delta_V/R3\n",
+ "print \"solution a\"\n",
+ "print \"Current = %0.2f amps\"%I1\n",
+ "print \"Current = %0.2f amps\"%I2\n",
+ "print \"Current = %0.2f amps\"%I3\n",
+ "P1=(I1**2)*R1\n",
+ "P2=(I2**2)*R2\n",
+ "P3=(I3**2)*R3\n",
+ "print \"solution B\"\n",
+ "print \"Power = %0.2f watt\"%P1\n",
+ "print \"Power = %0.2f watt\"%P2\n",
+ "print \"Power = %0.2f watt\"%P3"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 18.3 Page No: 602"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "solution b\n",
+ "Current = 3.00 amps\n"
+ ]
+ }
+ ],
+ "source": [
+ "delta_Vac=42#in volt\n",
+ "R_eq=14#in ohm\n",
+ "I=delta_Vac/R_eq\n",
+ "print \"solution b\"\n",
+ "print \"Current = %0.2f amps\"%I"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 18.4 Page No: 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Current value I1 = -0.83, I2 = -0.53 & I3 = -0.30 amps\n"
+ ]
+ }
+ ],
+ "source": [
+ "from numpy import mat\n",
+ "#formula used x=inv(a)*b\n",
+ "I=mat([[1 ,-1, -1],[-4, 0 ,-9],[0, -5, 9]])\n",
+ "V=mat([[0],[6],[0]])\n",
+ "X=(I**-1)\n",
+ "a=X*V\n",
+ "\n",
+ "print \"Current value I1 = %0.2f, I2 = %0.2f & I3 = %0.2f amps\"%(a[0],a[1],a[2])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 18.5 Page No: 606"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Current value I1 = 2.00, I2 = -3.00 & I3 = -1.00 amps\n"
+ ]
+ }
+ ],
+ "source": [
+ "from numpy import mat\n",
+ "#prob\n",
+ "#formula used x=inv(a)*b\n",
+ "I=mat([[8, 2, 0],[-3, 2, 0],[1, 1, -1]])\n",
+ "V=mat([[10],[-12],[0]])\n",
+ "X=I**-1\n",
+ "a=X*V\n",
+ "\n",
+ "print \"Current value I1 = %0.2f, I2 = %0.2f & I3 = %0.2f amps\"%(a[0],a[1],a[2])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 18.6 Page No: 609"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Constant of the circuit = 4.00 s\n",
+ "Charge = 6.00e-05 columb\n",
+ "Charge = 3.79e-05 columb when capacitance 63.2%\n"
+ ]
+ }
+ ],
+ "source": [
+ "R=8*10**5#in ohms\n",
+ "C=5*10**-6#in Farad\n",
+ "t=R*C\n",
+ "print \"Constant of the circuit = %0.2f s\"%t\n",
+ "\n",
+ "Q=C*12\n",
+ "print \"Charge = %0.2e columb\"%Q\n",
+ "q=0.632*Q\n",
+ "print \"Charge = %0.2e columb when capacitance 63.2%%\"%q"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 18.7 Page No: 610"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "time = 1.39 s \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log\n",
+ "x=log(4)\n",
+ "print \"time = %0.2f s \"%x"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch19_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch19_2.ipynb
new file mode 100644
index 00000000..3a586dc0
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch19_2.ipynb
@@ -0,0 +1,333 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 19 : Magnetism"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 19.1 Page No: 631"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The force = 7.62e-19 Newton\n"
+ ]
+ }
+ ],
+ "source": [
+ "q=1.6*10**-19#in columb\n",
+ "v=1*10**5#in m/s\n",
+ "B=55*10**-6#in T\n",
+ "F=q*v*B* 0.8660\n",
+ "print \"The force = %0.2e Newton\"%F"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 19.2 Page No: 632"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The force = 2.77e-12 Newton\n",
+ "Acceleration = 1.66e+15 m/s**2\n"
+ ]
+ }
+ ],
+ "source": [
+ "q=1.6*10**-19#in columb\n",
+ "v=8*10**6#in m/s\n",
+ "B=2.5#in T\n",
+ "F=q*v*B* 0.8660\n",
+ "print \"The force = %0.2e Newton\"%F\n",
+ "m=1.67*10**-27\n",
+ "a=F/m\n",
+ "print \"Acceleration = %0.2e m/s**2\"%a"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 19.3 Page No: 635"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The maximaum force = 3.96e-02 Newton\n"
+ ]
+ }
+ ],
+ "source": [
+ "l=36#in m\n",
+ "I=22#in A\n",
+ "B=0.50*10**-4#in T\n",
+ "F=B*I*l\n",
+ "print \"The maximaum force = %0.2e Newton\"%F"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 19.4 Page No: 637"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Torque = 0.39 N-m\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "A=pi*(0.5)*0.5#in m\n",
+ "I=2#in A\n",
+ "B=0.50#in T\n",
+ "T=B*I*A*0.5\n",
+ "print \"The Torque = %0.2f N-m\"%T"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 19.5 Page No: 640"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Velocity = 4.69e+06 m/s\n"
+ ]
+ }
+ ],
+ "source": [
+ "q=1.6*10**-19\n",
+ "B=.35\n",
+ "r=14*10**-2#in m\n",
+ "m=1.67*10**-27#kg\n",
+ "v=(q*B*r)/m\n",
+ "print \"Velocity = %0.2e m/s\"%v"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 19.6 Page No: 641"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Radius of lighter istope = 0.10 m\n",
+ "Radius of heavier istope = 0.21 m\n",
+ "Distance of seperation = 0.21 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "q=1.6*10**-19\n",
+ "B=.10#in T\n",
+ "v=1*10**6#in m/s\n",
+ "r=14*10**-2#in m\n",
+ "m1=1.67*10**-27#in kg\n",
+ "m2=3.34*10**-27#in kg\n",
+ "r1=(m1*v)/(q*B)\n",
+ "r2=(m2*v)/(q*B)\n",
+ "x=(2*r2)-(2*r1)\n",
+ "print \"Radius of lighter istope = %0.2f m\"%r1\n",
+ "print \"Radius of heavier istope = %0.2f m\"%r2\n",
+ "print \"Distance of seperation = %0.2f m\"%x"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 19.7 Page No: 644"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Magnetic field = 2.5e-04 T\n",
+ "Force = 6e-20 Newton\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "Uo=(4*pi*10**-7)\n",
+ "I=5#in A\n",
+ "r=4*10**-3\n",
+ "B=(Uo*I)/(2*pi*r)\n",
+ "print \"Magnetic field = %0.1e T\"%B\n",
+ "q=1.6*10**-19\n",
+ "v=1.5*10**3#in m/s\n",
+ "F=q*v*B\n",
+ "print \"Force = %0.e Newton\"%F"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 19.8 Page No: 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Current = 7.07 A\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "mo=4*pi*10**-7#Tm/A\n",
+ "d=0.1#in m\n",
+ "x=1*10**-4#F/l\n",
+ "I=sqrt((x*2*pi*d)/mo)\n",
+ "print \"Current = %0.2f A\"%I"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 19.9 Page No: 649"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Magnetic field = 6.28e-04 T\n",
+ "Force = 1.88e-20 N\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "N=100#turns\n",
+ "l=.1#in m\n",
+ "n=N/l#in turns/m\n",
+ "mo=4*pi*10**-7#Tm/A\n",
+ "I=.5#in A\n",
+ "B=n*I*mo\n",
+ "q=1.6*10**-19#in c\n",
+ "v=375#in m/s\n",
+ "F=q*v*(B/2)\n",
+ "\n",
+ "print \"Magnetic field = %0.2e T\"%B\n",
+ "print \"Force = %0.2e N\"%F"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch20_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch20_2.ipynb
new file mode 100644
index 00000000..475538f9
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch20_2.ipynb
@@ -0,0 +1,316 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 20 : Induced voltages and inductance"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.1 Page No: 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Magnetic flux = 1.62e-04 T.m**2\n",
+ "Induced emf = 5.06e-03 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "B=.5 # in T\n",
+ "A=3.24*10**-4 # in m**2\n",
+ "Flux=B*A\n",
+ "N=25\n",
+ "delta_t=.8\n",
+ "print \"Magnetic flux = %0.2e T.m**2\"%Flux\n",
+ "e=(N*Flux)/(delta_t)\n",
+ "print \"Induced emf = %0.2e volt\"%e"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.2 Page No: 667"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Induced emf = 0.45 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "B=.6*10**-4 # in T\n",
+ "l=30\n",
+ "v=250 # in m/s\n",
+ "e=B*l*v\n",
+ "print \"Induced emf = %0.2f volt\"%e"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.3 Page No: 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Solution a\n",
+ "Induced emf = 0.25 volt\n",
+ "Solution b\n",
+ "Current = 0.50 A\n",
+ "Solution c\n",
+ "Power = 0.12 watt\n",
+ "Energy delivered = 0.12 J\n",
+ "Solution d\n",
+ "Force = 0.06 N\n"
+ ]
+ }
+ ],
+ "source": [
+ "B=.25 # in T\n",
+ "l=.5\n",
+ "v=2 # in m/s\n",
+ "e=B*l*v\n",
+ "print \"Solution a\"\n",
+ "print \"Induced emf = %0.2f volt\"%e\n",
+ "R=.5 # in ohm\n",
+ "I=e/R\n",
+ "\n",
+ "print \"Solution b\"\n",
+ "print \"Current = %0.2f A\"%I\n",
+ "delta_v=.25\n",
+ "P=I*delta_v\n",
+ "print \"Solution c\"\n",
+ "print \"Power = %0.2f watt\"%P\n",
+ "t=1 # in s\n",
+ "w=P*t\n",
+ "print \"Energy delivered = %0.2f J\"%w\n",
+ " # Answer give for J in textbook is wrong\n",
+ "d=v*t\n",
+ "F=w/d\n",
+ "print \"Solution d\"\n",
+ "print \"Force = %0.2f N\"%F"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.5 Page No: 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Solution a\n",
+ "Induced emf = 135.72 volt\n",
+ "Solution b\n",
+ "Current = 11.31 A\n",
+ "Solution c\n",
+ "Emf in Volt 136*sinwt\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "f=60 # in Hz\n",
+ "w=2*pi*f\n",
+ "N=8\n",
+ "A=.09 # in m**2\n",
+ "B=.5 # in T\n",
+ "emf=N*A*B*w\n",
+ "print \"Solution a\"\n",
+ "print \"Induced emf = %0.2f volt\"%emf\n",
+ "R=12 # in ohm\n",
+ "I=emf/R\n",
+ "print \"Solution b\"\n",
+ "print \"Current = %0.2f A\"%I\n",
+ "\n",
+ "print \"Solution c\"\n",
+ "print \"Emf in Volt 136*sinwt\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.6 Page No: 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Solution a\n",
+ "Maximum Current = 12.00 A\n",
+ "Solution b\n",
+ "Current = 5.00 A\n"
+ ]
+ }
+ ],
+ "source": [
+ "emf=120 # in Volt\n",
+ "R=10 # in Ohm\n",
+ "e_back=70\n",
+ "I=emf/R\n",
+ "print \"Solution a\"\n",
+ "print \"Maximum Current = %0.2f A\"%I\n",
+ "print \"Solution b\"\n",
+ "I=(emf-e_back)/R\n",
+ "print \"Current = %0.2f A\"%I"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.8 Page No: 684"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Solution a\n",
+ "Inductance = 1.81e-04 H\n",
+ "Solution b\n",
+ "Emf = 9.05e-04 Volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "uo=4*pi*10**-7 # in m/A\n",
+ "N=300\n",
+ "A=4*10**-4 # in m**2\n",
+ "l=25*10**-2\n",
+ "L=(uo*N*N*A)/l\n",
+ "print \"Solution a\"\n",
+ "print \"Inductance = %0.2e H\"%L\n",
+ "delta_I=-5\n",
+ "delta_t=1\n",
+ "e=(-L*delta_I)/(delta_t)\n",
+ "print \"Solution b\"\n",
+ "print \"Emf = %0.2e Volt\"%e"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 20.9 Page No: 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Solution a\n",
+ "Time constant = 5.00e-03 s\n",
+ "Solution b\n",
+ "Current = 1.26 Amps\n"
+ ]
+ }
+ ],
+ "source": [
+ "L=30*10**-3 # in Henry\n",
+ "R=6 # in Ohm\n",
+ "tou=L/R\n",
+ "print \"Solution a\"\n",
+ "print \"Time constant = %0.2e s\"%tou\n",
+ "\n",
+ "e=12\n",
+ "I=(0.632*e)/R\n",
+ "\n",
+ "\n",
+ "print \"Solution b\"\n",
+ "print \"Current = %0.2f Amps\"%I\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.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch21_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch21_2.ipynb
new file mode 100644
index 00000000..6c83ccae
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch21_2.ipynb
@@ -0,0 +1,284 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 21 : Alternating current circuits and electromagnetic waves"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 21.1 Page No: 698"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Voltage = 141.42 V\n",
+ "Current = 1.41 Amps\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt\n",
+ "V_max=200#in V\n",
+ "V_rms=(V_max)/sqrt(2)\n",
+ "R=100#in ohm\n",
+ "I_rms=V_rms/R\n",
+ "print \"Voltage = %0.2f V\"%V_rms\n",
+ "print \"Current = %0.2f Amps\"%I_rms"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 21.2 Page No: 700"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance = 331.56 ohm\n",
+ "Current = 0.45 Amps\n"
+ ]
+ }
+ ],
+ "source": [
+ "C=8*10**-6\n",
+ "X_c=1/(377*C)\n",
+ "print \"Resistance = %0.2f ohm\"%X_c\n",
+ "I_rms=150/X_c\n",
+ "print \"Current = %0.2f Amps\"%I_rms"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 21.3 Page No: 702"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resistance = 9.43 ohm\n",
+ "Current = 15.92 Amps\n"
+ ]
+ }
+ ],
+ "source": [
+ "L=25*10**-3#In H\n",
+ "w=377\n",
+ "X_L=w*L#In ohm\n",
+ "print \"Resistance = %0.2f ohm\"%X_L\n",
+ "I_rms=150/X_L#In A\n",
+ "print \"Current = %0.2f Amps\"%I_rms"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 21.4 Page No: 706"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Impedence = 587.81 ohm\n",
+ "Current = 0.26 Amps\n",
+ "Angle = -64.83 degree\n",
+ "Voltage at Resistance = 63.80 Volt\n",
+ "Voltage at Inductance = 57.67 Volt\n",
+ "Voltage at Capacitance = 193.43 Volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import atan, degrees, sqrt\n",
+ "R=250#in ohm\n",
+ "Xc=758#in ohm\n",
+ "Xl=226#in Ohm\n",
+ "X=Xl-Xc\n",
+ "V_max=150#in Volt\n",
+ "Z=sqrt(R**2+X**2)\n",
+ "I=V_max/Z\n",
+ "q=degrees(atan(X/R))\n",
+ "print \"Impedence = %0.2f ohm\"%Z\n",
+ "print \"Current = %0.2f Amps\"%I\n",
+ "print \"Angle = %0.2f degree\"%q\n",
+ "V_R=I*R\n",
+ "V_C=I*Xc\n",
+ "V_L=I*Xl\n",
+ "print \"Voltage at Resistance = %0.2f Volt\"%V_R\n",
+ "print \"Voltage at Inductance = %0.2f Volt\"%V_L\n",
+ "print \"Voltage at Capacitance = %0.2f Volt\"%V_C"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 21.5 Page No: 708"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Voltage = 106.07 V\n",
+ "Current = 0.18 Amps\n",
+ "Power = 8.15 watt\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,cos\n",
+ "V_max=150#in V\n",
+ "V_rms=(V_max)/sqrt(2)\n",
+ "I_max=.255#in ohm\n",
+ "I_rms=I_max/sqrt(2)\n",
+ "cos=.426\n",
+ "P=V_rms*I_rms*cos\n",
+ "print \"Voltage = %0.2f V\"%V_rms\n",
+ "print \"Current = %0.2f Amps\"%I_rms\n",
+ "print \"Power = %0.2f watt\"%P"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 21.6 Page No: 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Capacitance = 2e-06 Farad\n"
+ ]
+ }
+ ],
+ "source": [
+ "L=20*10**-3#in H\n",
+ "C=1/(25*10**6*L)\n",
+ "print \"Capacitance = %0.e Farad\"%C"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 21.7 Page No: 711"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Solution a\n",
+ "Percentage of power lost = 0.02\n",
+ "Solution B\n",
+ "Percentage of power lost = 75.00\n"
+ ]
+ }
+ ],
+ "source": [
+ "I1=100\n",
+ "v1=4*10**3\n",
+ "v2=2.40*10**5\n",
+ "I2=(I1*v1)/v2\n",
+ "R=30#in ohm\n",
+ "p_lost=I2*I2*R\n",
+ "P_output=I1*v1\n",
+ "p_per=(p_lost*100/P_output)\n",
+ "print \"Solution a\"\n",
+ "print \"Percentage of power lost = %0.2f\"%p_per\n",
+ "P_lost=I1*I1*R\n",
+ "per=(P_lost*100)/(4*10**5)\n",
+ "print \"Solution B\"\n",
+ "print \"Percentage of power lost = %0.2f\"%per"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch22_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch22_2.ipynb
new file mode 100644
index 00000000..e4ba19da
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch22_2.ipynb
@@ -0,0 +1,169 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 22 : Reflection and refraction of light"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 22.2 Page No: 739"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Angle = 19.20 degree\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sin, pi, degrees, asin\n",
+ "n1=1\n",
+ "n2=1.52\n",
+ "x=sin(pi/180*30)\n",
+ "theta_2=degrees(asin((n1*x)/n2))\n",
+ "print \"Angle = %0.2f degree\"%theta_2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 22.3 Page No: 739"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Solution a\n",
+ "Velocity = 2.06e+08 m/s\n",
+ "Solution b\n",
+ "Wavelength in Fused quartz = 403.98 nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "print \"Solution a\"\n",
+ "c=3*10**8# Constant in m/s\n",
+ "n=1.458\n",
+ "v=c/n\n",
+ "print \"Velocity = %0.2e m/s\"%v\n",
+ "print \"Solution b\"\n",
+ "lambda_o=589#in nm\n",
+ "lambda_n=lambda_o/n\n",
+ "print \"Wavelength in Fused quartz = %0.2f nm\"%lambda_n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 22.5 Page No: 741"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Angle = 16.24 degree\n",
+ "Angle = 25.69 degree\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import atan, degrees, asin\n",
+ "x=699#in micrometer(w-a)\n",
+ "t=1200 #in micrometer\n",
+ "b=x/2\n",
+ "theta_2=degrees(atan(b/t))\n",
+ "print \"Angle = %0.2f degree\"%theta_2\n",
+ "y=sin(pi/180*theta_2)\n",
+ "n1=1\n",
+ "n2=1.55\n",
+ "theta_1=degrees(asin((n2*y)/n1))\n",
+ "print \"Angle = %0.2f degree\"%theta_1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 22.6 Page No: 744"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Angle(theta_c) = 48.75 degree\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import asin, degrees\n",
+ "n1=1.33\n",
+ "n2=1\n",
+ "x=degrees(asin(n2/n1))\n",
+ "\n",
+ "print \"Angle(theta_c) = %0.2f degree\"%x"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch23_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch23_2.ipynb
new file mode 100644
index 00000000..3f646e85
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch23_2.ipynb
@@ -0,0 +1,367 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 23 : Mirrors and lenses"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 23.1 Page No: 760"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The hight = 0.90 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "AC= 1.8-.1#in m\n",
+ "AD=.5*AC\n",
+ "CF=.10#/in m\n",
+ "X=.5*CF#in m\n",
+ "FA=1.8#in m\n",
+ "d=FA-AD-X\n",
+ "print \"The hight = %0.2f m\"%d"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 23.2 Page No : 767"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part a\n",
+ "The magnification when object is at 25cm : -0.67\n",
+ "part c\n",
+ "The magnification when object is at 5cm : 2.00\n"
+ ]
+ }
+ ],
+ "source": [
+ "p=25#in cm\n",
+ "f=10#in cm\n",
+ "x=(1/f)-(1/p)\n",
+ "q=1/x\n",
+ "p=25\n",
+ "M=-(q/p)\n",
+ "print \"part a\"\n",
+ "print \"The magnification when object is at 25cm : %0.2f\"%M\n",
+ "p=5#in cm\n",
+ "f=10#in cm\n",
+ "x=(1/f)-(1/p)\n",
+ "q=1/x\n",
+ "p=5\n",
+ "M=-(q/p)\n",
+ "print \"part c\"\n",
+ "print \"The magnification when object is at 5cm : %0.2f\"%M"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 23.3 Page No: 768"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part a\n",
+ "The position of final image = -5.71 cm\n",
+ "part b\n",
+ "The magnification : 0.23\n"
+ ]
+ }
+ ],
+ "source": [
+ "p=20#in cm\n",
+ "f=-8#in cm\n",
+ "x=(1/f)-(1/p)\n",
+ "q=1/x\n",
+ "p=25\n",
+ "M=-(q/p)\n",
+ "print \"part a\"\n",
+ "print \"The position of final image = %0.2f cm\"%q\n",
+ "print \"part b\"\n",
+ "print \"The magnification : %0.2f\"%M"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 23.4 Page No: 769"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The focal length = 26.67 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "p=40#in cm\n",
+ "q=-(2*p)\n",
+ "\n",
+ "x=(1/p)-(1/q)\n",
+ "f=1/x\n",
+ "print \"The focal length = %0.2f cm\"%f\n",
+ "#Answer given in book is wrong"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 23.5 Page No: 770"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The position of final image = -17.14 cm\n",
+ "The magnification when object = -1.29 cm\n",
+ "The Position of image = 2.57 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "p=20#in cm\n",
+ "n1=1.5#in cm\n",
+ "n2=1#in cm\n",
+ "R=-30#in cm\n",
+ "x=(n2-n1)/R\n",
+ "y=n1/p\n",
+ "s=x-y\n",
+ "q=1/s\n",
+ "print \"The position of final image = %0.2f cm\"%q\n",
+ "M=(n1*q)/(n2*p)\n",
+ "print \"The magnification when object = %0.2f cm\"%M\n",
+ "h=2#in cm\n",
+ "h1=-M*h\n",
+ "print \"The Position of image = %0.2f cm\"%h1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 23.7 Page No: 777"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part a\n",
+ "The position of final image = 15.00 cm\n",
+ "The magnification : -0.50\n",
+ "part b\n",
+ "The position of final image = -10.00 cm\n",
+ "The magnification : 2.00\n"
+ ]
+ }
+ ],
+ "source": [
+ "p=30#in cm\n",
+ "f=10#in cm\n",
+ "x=(1/f)-(1/p)\n",
+ "q=1/x\n",
+ "\n",
+ "M=-(q/p)\n",
+ "print \"part a\"\n",
+ "print \"The position of final image = %0.2f cm\"%q\n",
+ "print \"The magnification : %0.2f\"%M\n",
+ "p=5#in cm\n",
+ "f=10#in cm\n",
+ "x=(1/f)-(1/p)\n",
+ "q=1/x\n",
+ "M=-(q/p)\n",
+ "print \"part b\"\n",
+ "print \"The position of final image = %0.2f cm\"%q\n",
+ "print \"The magnification : %0.2f\"%M"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 23.8 Page No: 778"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part a\n",
+ "The position of final image = -7.50 cm\n",
+ "The magnification : 0.25\n",
+ "part b\n",
+ "The position of final image = -5.00 cm\n",
+ "The magnification : 0.50\n",
+ "part c\n",
+ "The position of final image = -3.33 cm\n",
+ "The magnification : 0.67\n"
+ ]
+ }
+ ],
+ "source": [
+ "p=30#in cm\n",
+ "f=-10#in cm\n",
+ "x=(1/f)-(1/p)\n",
+ "q=1/x\n",
+ "\n",
+ "M=-(q/p)\n",
+ "print \"part a\"\n",
+ "print \"The position of final image = %0.2f cm\"%q\n",
+ "print \"The magnification : %0.2f\"%M\n",
+ "p=10#in cm\n",
+ "f=-10#in cm\n",
+ "x=(1/f)-(1/p)\n",
+ "q=1/x\n",
+ "M=-(q/p)\n",
+ "print \"part b\"\n",
+ "print \"The position of final image = %0.2f cm\"%q\n",
+ "print \"The magnification : %0.2f\"%M\n",
+ "p=5#in cm\n",
+ "f=-10#in cm\n",
+ "x=(1/f)-(1/p)\n",
+ "q=1/x\n",
+ "M=-(q/p)\n",
+ "print \"part c\"\n",
+ "print \"The position of final image = %0.2f cm\"%q\n",
+ "print \"The magnification : %0.2f\"%M"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 23.9 Page No: 779"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The magnification : -0.67\n"
+ ]
+ }
+ ],
+ "source": [
+ "p=30#in cm\n",
+ "f=10#in cm\n",
+ "x=(1/f)-(1/p)\n",
+ "q=1/x\n",
+ "\n",
+ "M1=-(q/p)\n",
+ "\n",
+ "p=5#in cm\n",
+ "f=20#in cm\n",
+ "x=(1/f)-(1/p)\n",
+ "q=1/x\n",
+ "\n",
+ "M2=-(q/p)\n",
+ "\n",
+ "\n",
+ "M=M1*M2\n",
+ "print \"The magnification : %0.2f\"%M"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch24_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch24_2.ipynb
new file mode 100644
index 00000000..82f29c9f
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch24_2.ipynb
@@ -0,0 +1,233 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 24 : Wave optics"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1 Page No: 794"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(A) wavelength of light = 5.63e-07 meters\n",
+ "(B) Distance between adjacent fringes = 0.022 meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "L=1.2 # Seperation between screen and double-slit in meter\n",
+ "d=3*10**-5 #distance between the two slits\n",
+ "m=2 #second order bright fringe\n",
+ "Y=4.5*10**-2 #distance of second order bright fringe from centerline\n",
+ "#wavelength of light\n",
+ "lamda=(Y*d)/(m*L)\n",
+ "print \"(A) wavelength of light = %0.2e meters\"%lamda\n",
+ "#distance between adjacent bright fringes\n",
+ "#delta_Y=Y(m+1)-Ym\n",
+ "delta_Y=lamda*L/d\n",
+ "print \"(B) Distance between adjacent fringes = %0.3f meters\"%delta_Y"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2 Page No: 798"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Minimum thickness of soap bubble film = 113.16 nm is\n"
+ ]
+ }
+ ],
+ "source": [
+ "n=1.33 #refractive index of soap bubble\n",
+ "lamda=602 #wavelength of light in nm\n",
+ "#for constructive interference we have 2nt=lamda/2\n",
+ "t=lamda/(4*n)\n",
+ "print \"Minimum thickness of soap bubble film = %0.2f nm is\"%t"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3 Page No: 799"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Minimum thickness of film = 95.17 nm is\n"
+ ]
+ }
+ ],
+ "source": [
+ "n=1.45 #refractive index of silicon monoxide\n",
+ "lamda=552 #wavelength of light in nm\n",
+ "#for destructive interference we have condition for minimn thickness 2t=lamda/2n\n",
+ "t=lamda/(4*n)\n",
+ "print \"Minimum thickness of film = %0.2f nm is\"%t"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5 Page No: 801"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Pit depth in a CD = 121.88 nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "n=1.6 #refractive index of plastic transparent layer\n",
+ "lamda=780 #wavelength of laser light in nm\n",
+ "#for destructive interference we have condition for minimn thickness 2t=lamda/2n\n",
+ "t=lamda/(4*n)\n",
+ "print \"Pit depth in a CD = %0.2f nm\"%t"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6 Page No: 804"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Position of first dark fringe = 3.87e-03 meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "lamda=580*10**-9 #wavelength of incident light in meter\n",
+ "a=0.30*10**-3 #slit width in meter\n",
+ "L=2 #distance of screen from slit in meters\n",
+ "#The first dark fringe corresponds to m=+1 or -1\n",
+ "m=1\n",
+ "sin_theta=m*lamda/a\n",
+ "#From fig 24.16 tan_theta=y/L and since theta is very small we have sin_theta=tan_theta hence sin_theta=y/L\n",
+ "y=L*sin_theta \n",
+ "print \" Position of first dark fringe = %0.2e meters\"%y"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7 Page No: 808"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Angle in degrees at which first order maxima is observed : 22.32\n",
+ "Angle in degrees at which second order maxima is observed : 49.43\n",
+ "for higher order number of diffraction the the solutions are non realistic\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import asin, degrees\n",
+ "lamda=632.8 #wavelength of monochromatic light from helium-neon laser in meter\n",
+ "a=6000 #lines in diffraction grating per cm\n",
+ "d=10**7/a#slit seperation in nm\n",
+ "#for the first order maximum we have m=1\n",
+ "sin_theta1=lamda/d\n",
+ "theta1=degrees(asin(sin_theta1))\n",
+ "print \"Angle in degrees at which first order maxima is observed : %0.2f\"%theta1\n",
+ "#for the second order maximum we have m=2\n",
+ "sin_theta2=2*lamda/d\n",
+ "theta2=degrees(asin(sin_theta2))\n",
+ "print \"Angle in degrees at which second order maxima is observed : %0.2f\"%theta2\n",
+ "print \"for higher order number of diffraction the the solutions are non realistic\""
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch25_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch25_2.ipynb
new file mode 100644
index 00000000..918e8b63
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch25_2.ipynb
@@ -0,0 +1,291 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 25 : Optical Instruments"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1 Page No: 827"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) focal length f = 50.00 cm\n",
+ "b) Power of the lens = 2.00 diopters\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "q=-50 # Near point of an eye in cm\n",
+ "p=25 #object location in cm\n",
+ "#a) focal length calculation\n",
+ "#Using Thin Lens equation 1/f=((1/p)+(1/q))\n",
+ "f=p*q/(p+q)\n",
+ "print \"a) focal length f = %0.2f cm\"%f\n",
+ "#b) power of the lens\n",
+ "f1=50*10**-2# focal length in meters\n",
+ "P=1/f1\n",
+ "print \"b) Power of the lens = %0.2f diopters\"%P"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3 Page No: 830"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) Maximum angular magnification of the lens : 3.50\n",
+ "Angular Magnification of lens when eye is relaxed : 2.50\n"
+ ]
+ }
+ ],
+ "source": [
+ "f=10 # focal length in cm\n",
+ "#a)Maximum angular magnification\n",
+ "M_max=1+(25/f)\n",
+ "print \"a) Maximum angular magnification of the lens : %0.2f\"%M_max\n",
+ "m=25/f\n",
+ "print \"Angular Magnification of lens when eye is relaxed : %0.2f\"%m"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4 Page No: 832"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Magnification of microscope with two long focal lengths : -45.00\n",
+ "Magnification of microscope with a combination of 20 mm objective and 2.5 cm eyepiece : -90.00\n",
+ "Magnification of microscope with a combination of 20 mm objective and 2.5 cm eyepiece : -450.00 \n",
+ "Possible magnification of microscope with two short focal lengths : -900.00\n"
+ ]
+ }
+ ],
+ "source": [
+ "#interchangeable objectives\n",
+ "f1=2 # focal length in cm\n",
+ "f2=0.2 #focal length in cm\n",
+ "#data of two eye pieces\n",
+ "f3=5 #focal length in cm\n",
+ "f4=2.5 #focal length in cm\n",
+ "L=18 # length of microscope\n",
+ "#Calculation of magnification for four combinations of lens\n",
+ "#magnification of compound microscope m =-(L/fo)*(25cm/fe) where fo is shortest focal length compared to fe\n",
+ "#combination of two long focal lengths\n",
+ "m1=-(L/f1)*(25/f3)\n",
+ "print \"Magnification of microscope with two long focal lengths : %0.2f\"%m1\n",
+ "#combination of 20 mm objective and 2.5 cm eyepiece\n",
+ "m2=-(L/f1)*(25/f4)\n",
+ "print \"Magnification of microscope with a combination of 20 mm objective and 2.5 cm eyepiece : %0.2f\"%m2\n",
+ "#combination of 2 mm objective and 5 cm eyepiece\n",
+ "m3=-(L/f2)*(25/f3)\n",
+ "print \"Magnification of microscope with a combination of 20 mm objective and 2.5 cm eyepiece : %0.2f \"%m3\n",
+ "#combination of two short focal lengths\n",
+ "m4=-(L/f2)*(25/f4)\n",
+ "print \"Possible magnification of microscope with two short focal lengths : %0.2f\"%m4"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5 Page No: 834"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Angular magnification of the telescope : 83.33\n"
+ ]
+ }
+ ],
+ "source": [
+ "d=8 #diameter of objective mirror of reflecting telescope in inches\n",
+ "fo=1500 #focal length of objective mirror of reflecting telescope in mm\n",
+ "fe=18 #focal length of eyepiece\n",
+ "m=fo/fe\n",
+ "print \"Angular magnification of the telescope : %0.2f\"%m"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6 Page No: 837"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) Limiting angle of resolution in radians : 7.98e-07\n",
+ "b) Maximum limit of resolution for the microscope in radians : 5.42e-07\n",
+ "c) Limiting angle of resolution for the microscope when water filled the space b/w the object and objective in radians : 6.00e-07\n"
+ ]
+ }
+ ],
+ "source": [
+ "l=589*10**-9 #Wavelength of sodium light m\n",
+ "d=90*10**-2 #diameter of the aperture in m \n",
+ "L=400*10**-9 #Wavelength of desirable Visble light\n",
+ "n=1.33 #refractive index of water\n",
+ "#a) Calculation of limiting angle of resolution\n",
+ "#Limiting angle of resolution of the circular aperture is Theta_min=1.22*(l/d)\n",
+ "Theta_min1=1.22*(l/d)\n",
+ "print \"a) Limiting angle of resolution in radians : %0.2e\"%Theta_min1\n",
+ "#b) Calculation of maximum limit of resolution for the microscope\n",
+ "Theta_min2=1.22*(L/d)\n",
+ "print \"b) Maximum limit of resolution for the microscope in radians : %0.2e\"%Theta_min2\n",
+ "#c)Effect of water b/w the object and objective on resolving power of microscope\n",
+ "lw=l/n\n",
+ "Theta_min3=1.22*(lw/d)\n",
+ "print \"c) Limiting angle of resolution for the microscope when water filled the space b/w the object and objective in radians : %0.2e\"%Theta_min3"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7 Page No: 838"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Magnification of telescope A is : 166.67\n",
+ "Magnification of telescope B is : 50.00\n"
+ ]
+ }
+ ],
+ "source": [
+ "f1=1000# focal length of objective of telescope A in mm\n",
+ "f2=1250# focal length of objective of telescope B in mm\n",
+ "f3=6# focal length of eyepiece of telescope A in mm\n",
+ "f4=25# focal length of eyepiece of telescope Bin mm\n",
+ "#C) Calculation of magnification of the telescope\n",
+ "m_A=f1/f3\n",
+ "m_B=f2/f4\n",
+ "print \"Magnification of telescope A is : %0.2f\"%m_A\n",
+ "print \"Magnification of telescope B is : %0.2f\"%m_B"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8 Page No: 839"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) Resolving poer of grating inorder to distinguish the wavelengths = 998.31\n",
+ "b) No.of lines of the grating illuminated to resolve the lines in the second order spectrum are 499\n"
+ ]
+ }
+ ],
+ "source": [
+ "L1=589 # wavelength of first bright line in sodium spectrum in nm\n",
+ "L2=589.59 # wavelength of second bright line in sodium spectrum in nm\n",
+ "m=2 # order of the spectrum\n",
+ "delta_L=L2-L1\n",
+ "R=L1/delta_L\n",
+ "print \"a) Resolving poer of grating inorder to distinguish the wavelengths = %0.2f\"% R\n",
+ "N=R/m\n",
+ "print \"b) No.of lines of the grating illuminated to resolve the lines in the second order spectrum are %d\"%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.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch26_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch26_2.ipynb
new file mode 100644
index 00000000..461f6400
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch26_2.ipynb
@@ -0,0 +1,350 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 26 : Relativity"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example1 Page No: 855"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Period of the pendulum w.r.t to observer = 9.61 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt\n",
+ "Tp=3 #proper time in sec\n",
+ "c=3*10**8 #velocity of light in m/sec\n",
+ "v=0.95*c\n",
+ "gamma=1/sqrt(1-(v**2/c**2))\n",
+ "T=gamma*Tp\n",
+ "print \"Period of the pendulum w.r.t to observer = %.2f \"%T"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example2 Page No: 857"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Length of spaceship measured by moving observer = 16.93 meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "Lp=120 # length of space ship in meters\n",
+ "c=3*10**8 #velocity of light in m/sec\n",
+ "v=0.99*c\n",
+ "gamma=1/sqrt(1-(v**2/c**2))\n",
+ "L=Lp/gamma\n",
+ "print \"Length of spaceship measured by moving observer = %0.2f meters\"%L"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example3 Page No: 859"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Distance from spaceship to the groung measured by an observer in spaceship = 105.75 meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "Lp=435 # length of space ship in meters\n",
+ "c=3*10**8 #velocity of light in m/sec\n",
+ "v=0.970*c\n",
+ "gamma=1/sqrt(1-(v**2/c**2))\n",
+ "L=Lp/gamma\n",
+ "print \"Distance from spaceship to the groung measured by an observer in spaceship = %0.2f meters\"%L"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example4 Page No: 861"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The observer sees the horizontal dimension of the spaceship gets contracted to a length of 16.24 meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "c=3*10**8 #velocity of light in m/sec\n",
+ "#when the spaceship is at rest\n",
+ "x=52 # diatance in x direction in meters\n",
+ "y=25 #measurement in y direction\n",
+ "v=0.95*c\n",
+ "#when the spaceship moves to an observer at rest only x dimension looks contracted\n",
+ "gamma=1/sqrt(1-(v**2/c**2))\n",
+ "L=x/gamma\n",
+ "print \"The observer sees the horizontal dimension of the spaceship gets contracted to a length of %0.2f meters\"%L"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example5 Page No: 862"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "relativistic momentum = 3.10e-22 kg.m/s\n",
+ "classical momentum = 2.05e-22 kg.m/s\n",
+ "the relativistic result is 51 percent greater than classical result\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "c=3*10**8 #velocity of light in m/sec\n",
+ "m=9.11*10**-31 #mass of electron in kg\n",
+ "v=0.75*c\n",
+ "gamma=1/sqrt(1-(v**2/c**2))\n",
+ "#relativistic momentum\n",
+ "p=m*v*gamma\n",
+ "print \"relativistic momentum = %0.2e kg.m/s\"%p\n",
+ "#classical approach\n",
+ "P=m*v\n",
+ "print \"classical momentum = %0.2e kg.m/s\"%P\n",
+ "Z=(p-P)*100/P\n",
+ "print \"the relativistic result is %d percent greater than classical result\"%Z"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example6 Page No: 864"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "velocity of light w.r.t stationary observer = 3.00e+08 m/sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "c=3*10**8 #velocity of light in m/sec\n",
+ "Vmo=0.80*c # velocity of motocycle w.r.t stationary observer \n",
+ "Vlm=c # velocity of motocycle w.r.t motorcycle\n",
+ "#velocity of light w.r.t stationary observer \n",
+ "Vlo=(Vlm+Vmo)/(1+(Vlm*Vmo)/c**2)\n",
+ "print \"velocity of light w.r.t stationary observer = %0.2e m/sec\"%Vlo"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example7 Page No: 865"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The energy equivalent of baseball = 4.50e+16 joules\n"
+ ]
+ }
+ ],
+ "source": [
+ "c=3*10**8 #velocity of light in m/sec\n",
+ "m=0.50 #mass of baseball in kg\n",
+ "E=m*c**2\n",
+ "print \"The energy equivalent of baseball = %0.2e joules\"%E"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8 Page No: 866"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "total energy of an electron = 0.97 Mev\n",
+ "Kinetic energy of electron = 0.46 Mev\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "c=3*10**8 #velocity of light in m/sec\n",
+ "m=0.511 #rest energy of electron in Mev\n",
+ "v=0.85*c\n",
+ "gamma=1/sqrt(1-(v**2/c**2))\n",
+ "E=(m)*gamma\n",
+ "print \"total energy of an electron = %0.2f Mev\"%E\n",
+ "K=E-m\n",
+ "print \"Kinetic energy of electron = %0.2f Mev\"%K"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9 Page No: 867"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) Kinetic energy released in fission = 200.62 Mev\n",
+ " Speed of Barium fragment = 1.66e+07 Mev\n",
+ " Speed of krypton fragment = 2.05e+07 Mev\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "m_n=1.008665 #mass of neutron in amu\n",
+ "m_U=235.043924 #atomic mass of uranium in amu\n",
+ "m_Ba=140.903496 #atomic mass of barium in amu\n",
+ "m_Kr=91.907720 #atomic mass of krypton in amu\n",
+ "c=3*10**8 # velocity of light in m/s\n",
+ "#a) Kinetic energy released in fission of uranium\n",
+ "KE_final_=((m_n+m_U)-(m_Ba+m_Kr+(3*m_n)))*c**2\n",
+ "#1 amu = 931.494 Mev/c**2\n",
+ "KE_final=KE_final_*931.494/c**2\n",
+ "print \"a) Kinetic energy released in fission = %0.2f Mev\"%KE_final\n",
+ "#b) velocities of barium and krypton\n",
+ "#E=mc2/sqrt(1-v2/c2)\n",
+ "KE_Ba=KE_final\n",
+ "m_Ba_=m_Ba*931.494/c**2 # mass of barium in Mev\n",
+ "E_Ba=KE_Ba+m_Ba_*c**2\n",
+ "V_Ba=(sqrt(1-(((m_Ba_*c**2)**2)/E_Ba**2)))*c\n",
+ "print \" Speed of Barium fragment = %0.2e Mev\"%V_Ba\n",
+ "KE_Kr=KE_final\n",
+ "m_Kr_=m_Kr*931.494/c**2 # mass of krypton in Mev\n",
+ "E_Kr=KE_Kr+m_Kr_*c**2\n",
+ "V_Kr=(sqrt(1-((m_Kr_*c**2)**2)/E_Kr**2))*c\n",
+ "print \" Speed of krypton fragment = %0.2e Mev\"%V_Kr\n",
+ "#The difference in answer is because of round off"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch27_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch27_2.ipynb
new file mode 100644
index 00000000..cc3bdd59
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch27_2.ipynb
@@ -0,0 +1,401 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 27 : Quantum physics"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1 Page No: 874"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Wavelength at which radiation emitted from the skin reaches its peak = 9.41e-06 meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "T=35 #Temperature of the skin in celsius\n",
+ "T1=T+273 #Temperature in kelvin\n",
+ "#From Wien's displacement law \n",
+ "Lambda_max=(0.2898*10**-2)/T1\n",
+ "print \"Wavelength at which radiation emitted from the skin reaches its peak = %0.2e meters\"%Lambda_max"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2 Page No: 878"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) Total energy of Simple harmonic oscillator with given amplitude = 2.00 Joules\n",
+ " Frequency of oscillation = 0.56 Hertz\n",
+ "b) Quantum number for the given macroscopic system : 5.36e+33\n",
+ "c) Energy carried away by a one-quantum charge = 3.73e-34 joules\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "m=2 # mass of the object in Kg\n",
+ "k=25 #force constant of spring in N/m\n",
+ "A=0.4 #Amplitude of Simple harmonic oscillation by spring in meters\n",
+ "h=6.63*10**-34#js\n",
+ "#a) Total energy and frequency of SHO calculation\n",
+ "E=(1/2)*k*A**2\n",
+ "f=(1/(2*pi))*sqrt(k/m)\n",
+ "print \"a) Total energy of Simple harmonic oscillator with given amplitude = %0.2f Joules\"%E\n",
+ "print \" Frequency of oscillation = %0.2f Hertz\"%f\n",
+ "#b) Calculation of quantum number for the system\n",
+ "n=E/(h*f)\n",
+ "print \"b) Quantum number for the given macroscopic system : %0.2e\"%n\n",
+ "#c) Calculation of energy carried away in a quantum charge\n",
+ "delta_E=h*f\n",
+ "print \"c) Energy carried away by a one-quantum charge = %0.2e joules\"%delta_E"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3 Page No: 879"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Energy carried by a photon with the given frequency = 3.98e-19 Joules\n"
+ ]
+ }
+ ],
+ "source": [
+ "f=6*10**14 #frequency of yellow light in hertz\n",
+ "h=6.63*10**-34 #plancks constant J.s\n",
+ "E=h*f\n",
+ "print \"Energy carried by a photon with the given frequency = %0.2e Joules\"%E"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4 Page No: 882"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) Maximum Kinetic energy of th eejected photoelectrons = 1.68 ev is\n",
+ "b) Cut off wavelength for sodium = 5.05e-07 meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "l=0.3*10**-6 #wavelength of light in meters\n",
+ "W=2.46 #work function for sodium in ev\n",
+ "c=3*10**8 #velocity of light in m/s\n",
+ "h=6.63*10**-34#js\n",
+ "#a) Maximum KE of the ejected photoelectrons\n",
+ "E=(h*c/l)/(1.6*10**-19) #energy of each photon of th eilluminating light beam in ev\n",
+ "KE_max=E-W\n",
+ "print \"a) Maximum Kinetic energy of th eejected photoelectrons = %0.2f ev is\"%KE_max\n",
+ "#b) Cut off wavelength for sodium \n",
+ "W1=W*1.6*10**-19\n",
+ "lc=h*c/W1\n",
+ "print \"b) Cut off wavelength for sodium = %0.2e meters\"%lc"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5 Page No: 885"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Minimum wavelength produced = 1.24e-11 meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "V=10**5 #potential difference in Volts\n",
+ "h=6.63*10**-34 # plancks constant in J.s\n",
+ "c=3*10**8# velocity of light in m/s\n",
+ "e=1.6*10**-19# elelctronic charge in coulombs\n",
+ "L_min=(h*c)/(e*V)\n",
+ "print \"Minimum wavelength produced = %0.2e meters\"%L_min"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6 Page No: 886"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Grazing angle at first order of interference = 6.40 degree\n",
+ "Grazing angle at third order of interference = 19.54 degree\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import asin, degrees\n",
+ "d=0.314 #spacing between certain planes in a crystal of calcite in nm\n",
+ "l=0.070 #wavelength of X-rays in nm\n",
+ "m=1# first order of interference\n",
+ "theta1=degrees(asin((m*l)/(2*d)))\n",
+ "print \"Grazing angle at first order of interference = %0.2f degree\"%theta1\n",
+ "m=3 #third order of interference\n",
+ "theta2=degrees(asin((m*l)/(2*d)))\n",
+ "print \"Grazing angle at third order of interference = %0.2f degree\"%theta2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7 Page No: 887"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Wavelength of the scattered X-rays at the given angle in 0.20 nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, cos\n",
+ "Lo=0.200000 #wavelength of X-rays in nm\n",
+ "h=6.63*10**-34 #in J.s\n",
+ "m_e=9.11*10**-31 # in Kg\n",
+ "c=3*10**8 #in m/s\n",
+ "theta=45 #in degrees\n",
+ "#wavelength is represented by d\n",
+ "delta_L=(h/(m_e*c))*(1-cos(pi/180*theta))\n",
+ "L=delta_L+Lo\n",
+ "print \"Wavelength of the scattered X-rays at the given angle in %.2f nm\"%L\n",
+ "\n",
+ "#Answer given in textbook is wrong"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8 Page No: 887"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "de Broglie wavelength for an electron = 7.28e-11 meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "h=6.63*10**-34 #in J.s\n",
+ "m_e=9.11*10**-31 # in Kg\n",
+ "v=1*10**7 #in m/s\n",
+ "lamda=h/(m_e*v)\n",
+ "print \"de Broglie wavelength for an electron = %0.2e meters\"%lamda"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9 Page No: 888"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "de Broglie wavelength of the ball = 1.14e-34 meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "h=6.63*10**-34 #in J.s\n",
+ "m=0.145 # in Kg\n",
+ "v=40 #in m/s\n",
+ "lamda=h/(m*v)\n",
+ "print \"de Broglie wavelength of the ball = %0.2e meters\"%lamda"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10 Page No: 889"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Uncertainity in position of electron = 3.86e-06 Meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "h=6.63*10**-34#js\n",
+ "v=5*10**3 #speed of the electron in m/s\n",
+ "m_e=9.11*10**-31 # mass of electron in Kg\n",
+ "p=m_e*v\n",
+ "delta_p=0.00300*p\n",
+ "#Uncertainity principle states delta_x*delta_p >=h/(4*pi)\n",
+ "delta_x=h/(4*pi*delta_p)\n",
+ "print \"Uncertainity in position of electron = %0.2e Meters\"%delta_x"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11 Page No: 889"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Minimum uncertainity in energy of the excited states = 5.28e-27 Joules\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "h=6.63*10**-34 # plancks constant in J.s\n",
+ "delta_t=1.00*10**-8 # Average time that an ellectron exists in the excited states in sec\n",
+ "delta_E=h/(4*pi*delta_t)\n",
+ "print \" Minimum uncertainity in energy of the excited states = %0.2e Joules\"%delta_E"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch28_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch28_2.ipynb
new file mode 100644
index 00000000..941b57e6
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch28_2.ipynb
@@ -0,0 +1,197 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 28 : Atomic Physics"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1 Page No: 897"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Wavelength of the emitted photon = 1.22e-07 meters\n",
+ "frequency of the emitted photon = 2.47e+15 meters\n"
+ ]
+ }
+ ],
+ "source": [
+ "RH=1.097*10**7 #Rydberg constant in per meter\n",
+ "lamda=4/(3*RH)\n",
+ "c=3*10**8 # m/sec\n",
+ "f=c/lamda\n",
+ "print \"Wavelength of the emitted photon = %0.2e meters\"%lamda\n",
+ "print \"frequency of the emitted photon = %0.2e meters\"%f"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2 Page No: 898"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "longest wavelength that photon emmited = 6.56e-07 meters\n",
+ "Energy emmited by the photon = 3.03e-19 Joules\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "RH=1.097*10**7 #Rydberg constant in per meter\n",
+ "h=6.626*10**-34 #plancks constant in j.s\n",
+ "c=3*10**8 # velocity of light in m/s\n",
+ "nf=2 #quantum number\n",
+ "ni=3# quantum number\n",
+ "#assuming k=1/lamda\n",
+ "k=RH*((1/nf**2-1/ni**2))\n",
+ "lamda=1/k\n",
+ "print \"longest wavelength that photon emmited = %0.2e meters\"%lamda\n",
+ "E_photon=h*c/lamda\n",
+ "print \"Energy emmited by the photon = %0.2e Joules\"%E_photon"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3 Page No: 901"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) Energy of the atom in ground state = -54.40 eV\n",
+ "b) Radius of the ground state orbit = 0.000 nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "Z=2 #atomic number of helium\n",
+ "n=1 #principal quantum number\n",
+ "E=-Z**2*13.6/n**2\n",
+ "print \"a) Energy of the atom in ground state = %0.2f eV\"%E\n",
+ "r=(n**2/Z)*0.0529#in nm\n",
+ "print \"b) Radius of the ground state orbit = %0.3f nm\"%r"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4 Page No: 906"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Energy of the states with quantum number 2 = -3.40 ev\n"
+ ]
+ }
+ ],
+ "source": [
+ "n=2# principal quantum number \n",
+ "E=-13.6/n**2\n",
+ "print \"Energy of the states with quantum number 2 = %0.2f ev\"%E"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6 Page No: 906"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Energy of the characteristic emiited from tungsten target when electron drops from M shell to K shell = 6.61e+04 ev\n"
+ ]
+ }
+ ],
+ "source": [
+ "Z=74 #atomic number of tungsten\n",
+ "Eo=13.6 #ground state enenrgy in ev\n",
+ "E_K=-(Z-1)**2*(13.6) #Energy of the electron in K shell\n",
+ "n=3\n",
+ "Z_eff=Z-n**2\n",
+ "E3=Eo/n**2\n",
+ "E_M=-Z_eff**2*E3\n",
+ "E=E_M-E_K\n",
+ "print \"Energy of the characteristic emiited from tungsten target when electron drops from M shell to K shell = %0.2e ev\"%E\n",
+ "#Difference in answer is because of roundoff"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch29_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch29_2.ipynb
new file mode 100644
index 00000000..e3458b6c
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch29_2.ipynb
@@ -0,0 +1,263 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 29 : Nuclear Physics"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1 Page No: 916"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Nuclear density = 2.31e+17 kg/m3\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "m=1.67*10**-27 #mass of nucleus in kg\n",
+ "ro=1.2*10**-15 #in meter\n",
+ "p=(3*m)/(4*pi*(ro)**3)\n",
+ "print \"Nuclear density = %0.2e kg/m3\"%p"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2 Page No: 920"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Binding energy of Deuteron = 2.22 Mev\n"
+ ]
+ }
+ ],
+ "source": [
+ "mp=1.007825 #in u\n",
+ "mn=1.008665 #in u\n",
+ "md=2.014102 #in u\n",
+ "u=931.494 #Mev\n",
+ "M=mp+mn\n",
+ "delta_m=(M-md) #in u\n",
+ "E=delta_m*u\n",
+ "print \"Binding energy of Deuteron = %0.2f Mev\"%E"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3 Page No: 922"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Activity or decay rate at t=0 = 1.11e-05 Ci\n"
+ ]
+ }
+ ],
+ "source": [
+ "No=3*10**16 #no.of radioactive nuclei present at t=0\n",
+ "t_half=1.6*10**3 #years\n",
+ "T_half=t_half*3.16*10**7 #in sec\n",
+ "d=0.693/T_half\n",
+ "R_o=d*No # decays/s\n",
+ "Ci=3.7*10**10\n",
+ "Ro=R_o/Ci\n",
+ "print \"Activity or decay rate at t=0 = %0.2e Ci\"%Ro"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4 Page No: 923"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a) No.of atoms remaining after 12 days : 45612654\n",
+ "Initial activity of the radon sample = 837.68 decay/sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import exp\n",
+ "T_half=3.83 #half life time of Radon in days\n",
+ "No=4*10**8 #Initial No .of Radon atoms \n",
+ "lamda=0.693/T_half # in days\n",
+ "t=12 \n",
+ "N=No*exp(-(lamda*t))\n",
+ "print \"a) No.of atoms remaining after 12 days : %0.f\"%N\n",
+ "lamda_=lamda/(8.64*10**4)\n",
+ "R=lamda_*No\n",
+ "print \"Initial activity of the radon sample = %0.2f decay/sec\"%R"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5 Page No: 925"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Energy liberated = 4.87 Mev\n"
+ ]
+ }
+ ],
+ "source": [
+ "m_d=222.017571 #mass of daughter nuclei in atomic units\n",
+ "m_alpha=4.002602 #mass of alpha particle in atomic units\n",
+ "M_p=226.025402 #mass of parent nuclei in atomic units\n",
+ "m=m_d+m_alpha\n",
+ "delta_m=(M_p-m)\n",
+ "E=delta_m*931.494\n",
+ "print \"Energy liberated = %0.2f Mev\"%E"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6 Page No: 927"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Energy released in beta decay = 0.156 Mev\n"
+ ]
+ }
+ ],
+ "source": [
+ "M_C=14.003242 #mass of carbon in atomic mass units\n",
+ "M_N=14.003074 #mass of nitogen in atomic mass units\n",
+ "delta_M=M_C-M_N\n",
+ "E=delta_M*(931.494)\n",
+ "print \"Energy released in beta decay = %0.3f Mev\"%E"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7 Page No: 928"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Age of the skeleton = 10915.43 years\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import log\n",
+ "T_half=3.01*10**9 #half life time in min\n",
+ "lamda=0.693/T_half\n",
+ "R=200 # in decay/min\n",
+ "R0_=15 #decay rate in decay/min.g\n",
+ "m=50 #weight of carbon\n",
+ "R0=R0_*m #in decay/min\n",
+ "t1=-(log(R/R0)/lamda) #im min\n",
+ "t=t1/525949\n",
+ "print \"Age of the skeleton = %0.2f years\"%t"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch30_2.ipynb b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch30_2.ipynb
new file mode 100644
index 00000000..3ab7db90
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/Ch30_2.ipynb
@@ -0,0 +1,107 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 30 : Nuclear energy and elementary particles"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2 Page No: 943"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Disintegration energy = 5.33e+26 Mev is\n",
+ "or = 2.37e+07 KWh\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "Q=208 #disintegration energy per event in Mev\n",
+ "m=1*10**3 #mass of uranium\n",
+ "A=235 #mass number or uranium in g/mol\n",
+ "a=6.02*10**23 #avagadro number nuclei/mol\n",
+ "N=(a/A)*m #nuclei\n",
+ "E=N*Q\n",
+ "P=E*4.45*10**-20\n",
+ "print \"Disintegration energy = %0.2e Mev is\"%E\n",
+ "print \"or = %0.2e KWh\"%P"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3 Page No: 947"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Energy release in deuterium-deuterium reaction = 4.03 Mev\n"
+ ]
+ }
+ ],
+ "source": [
+ "m1=2.014102 # mass of deuterium in atomic mass unit\n",
+ "m2=3.016049 #mass of tritium in atomic mass unit\n",
+ "m3=1.007825 # mass of hydrogen in atomic mass unit\n",
+ "#referring to the deuterium-deuterium reaction\n",
+ "#mass before reaction\n",
+ "M1=2*m1\n",
+ "#mass after reaction\n",
+ "M2=m2+m3\n",
+ "#excessive mass\n",
+ "m=M1-M2\n",
+ "#converting mass into energy\n",
+ "#1 u = 931.494 Mev\n",
+ "E=m*931.494\n",
+ "print \" Energy release in deuterium-deuterium reaction = %0.2f Mev\"%E"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/1RefractionOfLaserLight_2.png b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/1RefractionOfLaserLight_2.png
new file mode 100644
index 00000000..a2cdf1a4
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/1RefractionOfLaserLight_2.png
Binary files differ
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/2PropertiesOfImage_2.png b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/2PropertiesOfImage_2.png
new file mode 100644
index 00000000..499e2c33
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/2PropertiesOfImage_2.png
Binary files differ
diff --git a/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/3PositionOf1DarkFringe_2.png b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/3PositionOf1DarkFringe_2.png
new file mode 100644
index 00000000..b0d4c88b
--- /dev/null
+++ b/College_Physics_(volume_2)_by_R._A._Serway_and_J._S._Faughn/screenshots/3PositionOf1DarkFringe_2.png
Binary files differ
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch10_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch10_2.ipynb
new file mode 100644
index 00000000..bc2f6aba
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch10_2.ipynb
@@ -0,0 +1,1097 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 10 : Frequency response of amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.1: Page No 450"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nffgAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fcd593fb850>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fcd590ace90>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from scipy import log10\n",
+ "from numpy import nditer\n",
+ "import numpy as np\n",
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "\n",
+ "#Asymptotic magnitude and phase response curves\n",
+ "w=range(0,70)\n",
+ "# Asymptotic magnitude response curve\n",
+ "a=[]\n",
+ "b=[]\n",
+ "c=[]\n",
+ "for i in range(0,len(w)):\n",
+ " a.append(32)\n",
+ " if w[i]<10:\n",
+ " b.append(0)\n",
+ " c.append(0)\n",
+ " elif w[i]<50:\n",
+ " b.append(14*(w[i]-10)/40)\n",
+ " c.append(0)\n",
+ " else:\n",
+ " b.append(20*log10(w[i]/10))\n",
+ " c.append(-20*log10(w[i]/50))\n",
+ " \n",
+ "\n",
+ "A=[]\n",
+ "for x,y,z in nditer([a,b,c]):\n",
+ " A.append(x+y+z)\n",
+ "#A=a+b+c#\n",
+ "\n",
+ "plot(w,A)\n",
+ "title(\"Asymptotic magnitude response curve\")\n",
+ "xlabel(\"omega(rad/sec)\")\n",
+ "ylabel(\"20 log |A(jomega)| in dB\")\n",
+ "show()\n",
+ "# Asymptotic phase response curve\n",
+ "w=range(0,600)\n",
+ "theta1=[] \n",
+ "theta2=[] \n",
+ "for i in range(0,len(w)):\n",
+ " if w[i]<1:\n",
+ " theta1.append(0)\n",
+ " theta2.append(0)\n",
+ " elif w[i]<5:\n",
+ " theta1.append(31.45*(w[i]-1)/4)\n",
+ " theta2.append(0)\n",
+ " elif w[i]<100:\n",
+ " theta1.append(45*log10(w[i]/10))\n",
+ " theta2.append(-45*log10(w[i]/50))\n",
+ " elif w[i]<500:\n",
+ " theta1.append(90)\n",
+ " theta2.append(-58.55-31.45*(w[i]-100)/400)\n",
+ " else:\n",
+ " theta1.append(90)\n",
+ " theta2.append(-90)\n",
+ "\n",
+ "theta=[]\n",
+ "for x,y in nditer([theta1,theta2]):\n",
+ " theta.append(x+y)\n",
+ "\n",
+ "plot(w,theta)#\n",
+ "title(\"Asymptotic phase curve response\")\n",
+ "xlabel(\"omega(rad/sec)\")\n",
+ "ylabel(\"theta(omega)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.2: Page No 453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9cec609f10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEZCAYAAAB1mUk3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xe8nGWZ//HPN0BEamgGCCWARImCwtICCkdFFl1I2KW6\nqxRdQlkpG6QE9yfHsoIsRcWyioBBTSAEJcGVEpVD0UCkCRqqmlCE0JsgBHL9/rjvgWFyTnLKzDzP\nzHzfr9d55akz1zkn57nnvq+7KCIwM7PONqzoAMzMrHguDMzMzIWBmZm5MDAzM1wYmJkZLgzMzAwX\nBh1HUo+kzxQdRzVJXZIeavJ7TpM0oZnvOVSSbpY0dinn/03S1XV6r6b/TqxYLgzakKT5kl6S9IKk\nxyRdKGnlfDryV5HxLZa0aZ1ea8APLUlbAVtFxMx6xNBEZwJf6utkRPwkIv6xifFYG3Fh0J4C2DMi\nVgW2AbYF/qvYkJagAt/7cODHBb7/YF0BfEjSyKIDGSxJyxcdg/XOhUGbi4i/AlcB76k6PFrSjZKe\nl3S1pLUqJyRdKulRSc9Kuq66WULSxyX9Md/3sKTjq87tKekOSc9I+o2kLXuLR9L1efP3ueayX9W5\nSZIWSvqrpEOqjr9N0pmSFuSaznclrZhrO1cC6+fXel7SupK2lzQnx/JXSedKWqEqjD2A66peX5L+\nK9eoFkqaImm1fG50rskcIulBSU9JOkLSdpLuzO9xbs33+GlJ8yQ9LekqSRtVndtd0r355/vt/DP+\nTD63maRfS3pS0hOSfixp9arf5d+BW4FeP/3nGG+o2l8s6XBJ9+U4v9Xbffnat0v6YY75j8B2NefX\nl3SZpMcl/VnS0TX3Tsn3zpN0YnVtLf9cT5R0J/CCpGGSdpT02xzXHZJ2rbp+dUnn59/dw5K+LGlY\nPvfO/DN7Nv+MLu7re7IBigh/tdkX8BfgI3l7Q+APwBfzfg/wAPBOYEXgWuC0qnsPAVYGVgDOAW6v\nOvcosHPeXh3YOm9vDSwkPUAEHJRjGN5HfIuBTav2u4BFQDewHPAx4G/A6vn8OcDlwAhgFWAW8NV8\nblfgoZrX3wbYnvRhZ2NgHnBsPrdyfv+1qq7/NHA/MDqfvwy4KJ8bna//DjAc+CjwCvAzYG1g/fy9\n75Kvn5Bf6135/T8P/CafWxt4Dtg7nzsGeBX4dD6/GfCR/LNfm1RgnVPzvX0DOKuPn+shwA01P+dZ\nwGr5/8HjwD/2ce/p+f1GABvk/zMP5nPDSIXQfwHLA5sAfwJ2r7r32vx/YhRwZ+XefH4+cFs+97b8\n75PAHvn8bnl/rbz/M+C7wNuBdYCbgYn53DRgct4eDuxU9N9bu3wVHoC/GvBLTX98LwDP5O1vAW/L\n564FTqm69kjgyj5eZ0R+oKya9xcAE4HVaq77LvClmmP3VB6Qvbxub4XBS8CwqmMLSQ90AS/WXD8O\n+HPVvQ/19j5V1x8H/DRvj8rvP7zq/K+AI6r2x5Ae0sN4szBYr+r8k8B+VfszgGPy9pXkh3veH0Yq\n2DYiFZK/qYntwerra87tDdxWc+wrwPl9XH8ISxYGO1XtXwKc1Me9bzzc8/5hlZ8rsAOwoOb6ycAF\nVfd+tOrcZ6p/J6QPBodU7Z9ELmyrjl2Vfz4jgb8DK1ad+wTw67w9BfgeMKrov7N2+3IzUXsKYEJE\nrBERoyPisxHxStX5x6q2XyZ92kbScpJOl/SApOdIf8RB+pQKsA/wcWC+Uq+kHfPxjYHjc5X/GUnP\nkD5drjeAmJ+KiMVV+y/luNYBVgJurXrtK6tiWoKkMZJ+rtTc9Rzw30ClKezZ/O+qVbesRyroKh4k\nfQKubptfWLX9ci/7q+TtjYFvVMX6VD4+Kr/PwzXhvrEvaaSki3PTyHPAj6rirliNVMj3V/XvuvIz\n7c36QHUi/sGq7Y1JTXHVv9/JwDv6uLf2e6Tm/MbAfjWvtzOwLqnQXAF4tOrc/5L+HwCcSPqAMFfS\nHyQd2sf3YwPkwsCq/SswntTEtDqpOUD5i4i4JSL2Jv1hXg5Mz/c9CPx3LnwqX6tExCV1iOlJ0sN2\nbNVrj4iI1fL53npGfZfUNPTO/H18nvx/PSL+Rvok+66q6/9KqgFUbAS8xlsf+P31IKlJo/pnsXJE\nzCE1s21QuVCSqveBrwKvA+/NcX+KJf9GtwB+P4i4luVR0vddUb39EPCXmu9ptYjYs+reDauur96u\nqP49PQj8qOb1Vo2IM0gFySukJqPKudUjYkuAiFgYERMjYhSpI8B3VKeeaZ3OhUFn6qsnzyqkP8Sn\nc3L2q2/cIK2g1I999Yh4ndQM9Xo+fR5wRE7cStLKkv5JUl+fQheS2seXKdcWzgO+LmmdHMsoSbtX\nvdZalYRv1ffxAvCSpHeTmsKq/YKUa6iYBvxnThavkr/vi2tqKstS+Zn+L3CKcuI9J0MrSfJfAFtK\nmqDUq+Y/SJ+Gq+P+G/C8pFHACW95A2lFUj5k9gDi6i3G3kwHJksaIWkD4Oiqc3NJid8Tc7J4OUnv\nlbRtL/eOAj7L0rsv/xjYKyfTl1PqDNAlaVREPApcA5wtadWcbN5M0i4AkvbL8UGq5QWpOcyGyIVB\nZ4qa7cr+RaTmkkdICcQ5Ndd+EvhLbsKYCPwbQETcSmpj/hbwNCmBetBS3r8bmJKbAfZl2WMfTiIl\nvW/K7z2b1K5PRNxDepj/OfdmWRf4HKmW8zzwfeDimtf/fiX27AJSk8z1wJ9JzSnVD8P+jMuIHM/l\nwNeAi3Osd5F7/0TEk8B+wBmkGs8WwC2kAhjgi6SH/XOkbqSX1bz3XsC1EVHd9FMbQ+3vdmnnq32R\n9Lv/C6n9/qKq7+l1YE/g/aSfzxOkn2GlAP4S6RP9X0gP8ktJOZfeg4x4mJRoP4WU1H4QOJ43n0cH\nkZLD80j/ny7lzUJzW9L/gxeAmaRczfy+3sv6TxGNGX8k6QLgn4DHK1U8SduTHhgrkKrhR0XE7/K5\nyaReHa+TfsHXNCQwM0DST4DpUeDAs9xd8iHgXyPiun5cfxMp2Tyv4cENgaQjgf0j4kNFx2L918jC\n4IOkXiAXVRUGPaRujFdL+hhwYkR8KFepp5K6Jo4CfgmMGWA13az0cvPWXFIe5ARSE9amNQn+lpJr\nY5uRapKbAz8Hzo2IbxYamA1Iw5qJIuIGluz18CipLzKkbouP5O0JwLSIWJSrfA+QuhWatZtxpP/f\nT5Bqznu3ckGQDSflSp4nddO9nDQuw1pIs4eGnwzcKOlMUkE0Lh9fH7ip6rqHSTUEs7YSEV8ktc+3\njYh4EOh1xLm1jmYnkM8n5QM2Av6TlLjrS6GTqZmZdZJm1wy2j4jd8vYM4Ad5+xHe2jd5A95sQnqD\nJBcQZmaDEBFLnRyy2TWDB6ompPowcF/engUcKGm4pE1ISai5vb1A0UO2+/N16qmnFh6D43ScjtMx\nVr76o2E1A0nTSAN71laawfALpL7p35b0NlJviokAETFP0nRSv+JKl1PXAszMmqRhhUFEfKKPUzv0\ncf1XqRrxamZmzeMRyA3Q1dVVdAj94jjry3HWVyvE2Qox9lfDBp01giS3HpmZDZAkomQJZDMzKyEX\nBmZm5sLAzMxcGJiZGS4MzMwMFwZmZoYLAzMzw4WBmZnhwsDMzGj+FNZWEosXw333wUAGdK+wAmy2\nGWip4xjNrBW5MOhQRx4JP/85rLZa/+954gmYPBmOP75xcZlZMVwYdKCpU+Haa+HuuwdWGMyfD9tv\nDzvtBOPGLfNyM2shnqiuw9x7L3zgAzB7Nrz//QO/f+ZMOOYYuP12WHPN+sdnZvXXn4nqXBh0kJdf\nhh13hKOOgsMPH/zrTJoEDzyQCgbnD8zKr9BZSyVdIGmhpLtqjh8t6W5Jf5D0tarjkyXdL+keSbs3\nKq5OdtxxMHYsTJw4tNc5/XRYuBDOOac+cZlZ8RqZM7gQOBe4qHJA0oeA8cBWEbFI0jr5+FjgAGAs\nMAr4paQxEbG4gfF1lKlT4de/hltvHfqn+eHD4ZJLYIcdUv5gxx3rE6OZFadhNYOIuAF4pubwkcBp\nEbEoX/NEPj4BmBYRiyJiPvAAsH2jYus0994Lxx4L06cPLGG8NKNHw3nnwYEHwtNP1+c1zaw4zR50\ntjmwi6SbJPVI2jYfXx94uOq6h0k1BBuil1+G/feHL38Ztt66vq89fjzssw8ccsjAxiuYWfk0u2vp\n8sAaEbGjpO2A6cCmfVzb6+Olu7v7je2urq62WoO0EY47DrbYYmgJ46U57TTYZRc4+2yPPzAri56e\nHnp6egZ0T0N7E0kaDVwREVvm/SuB0yPiurz/ALAj8O8AEXF6Pn4VcGpE3Fzzeu5NNABTp0J3N9xy\nS/2ah3qzYEEaf3D55R5/YFZGZVwD+XLgwwCSxgDDI+JJYBZwoKThkjYhNSfNbXJsbeW+++qfJ+jL\nxhs7f2DW6hrZtXQa8FtgjKSHJB0KXABsmrubTgMOAoiIeaQmo3nAlcBRrgIM3ssvw377wVe+MriB\nZYMxfjzsuy8cfLDzB2atyIPO2tDhh8Nzz8G0ac0dFPbqqyl/sN9+zh+YlUl/mok8N1Gbqcw7dMst\nzR8dXBl/4PmLzFqPawZtZKjzDtXLrFlw9NGev8isLDw3UQep17xD9XL88SmJPWuW5y8yK5oLgw5y\n+OHw/POpmagMD1/nD8zKwzmDDjFtWnF5gr44f2DWWlwzaHH33Qc771x8nqAvzh+YFc/NRG3u5ZfT\nJ+4jjyxHnqAvzh+YFcuFQZs74og0nqAseYK+vPoqfPCDacI85w/Mms85gzY2bVpan6BMeYK+OH9g\nVn6uGbSgsownGCivn2xWDDcTtaGyjScYqEmT4P77nT8wayYXBm2obOMJBsr5A7Pmc86gzRQ571C9\n1K6f7PyBWTm4ZtAiWjVP0BePPzBrHjcTtYlWzxP0xeMPzJrDhUGbKGp9gkbz/EVmzVHospeSLpC0\nMK9qVnvueEmLJa1ZdWyypPsl3SNp90bF1WoqeYLvf7+9CgJ4M39wxhkwZ07R0Zh1tkaugXwhsEft\nQUkbAh8FFlQdGwscAIzN93xHUrPXZy6de+9t3jrGRfH6yWbl0LAHbkTcADzTy6mzgRNrjk0ApkXE\nooiYDzwAbN+o2FrByy+n7pfNXMe4KF4/2ax4Tf30LWkC8HBE3Flzan3g4ar9h4FRTQushI47DrbY\nAiZOLDqS5jjtNHj8cTj77KIjMetMTRtnIGkl4BRSE9Ebh5dyS6+fEbu7u9/Y7urqoqurqw7RlUtl\n3qFbb22/PEFfPH+RWf309PTQ09MzoHsa2ptI0mjgiojYUtKWwC+Bl/LpDYBHgB2AQwEi4vR831XA\nqRFxc83rtX1vosp4gmuuga23Ljqa5vP8RWb1V2hvoloRcVdEjIyITSJiE1JT0DYRsRCYBRwoabik\nTYDNgbnNiq0sKnmCL3+5MwsCgAkTYJ994JBDnD8wa6ZGdi2dBvwWGCPpIUmH1lzyxp96RMwDpgPz\ngCuBo9q+CtCL446DsWPba2DZYJx+esofnHNO0ZGYdQ4POiuJqVOhuzvNO9Su3UgHYsGClD+YOTON\nvjazwfMI5BbRbvMO1cusWSl/cNttzh+YDYULgxZQmXfoyCPTMpb2Vscfn9Y/mDmzc3pWmdWbC4MW\n0OrrEzRaZf6i/fdPC+OY2cB5PYOSa4f1CRqtdvyB8wdmjeGaQUGcJxgYr39gNnhuJiqpdl2foNG8\n/oHZ4LgwKCnnCQankj/Yd1/43OeKjsasdThnUEJTp3bevEP1Up0/2Hlnz19kVk+uGTRRp887VC/O\nH5gNjJuJSsTjCerL+QOz/nNhUCLtuo5xUbx+sln/OWdQEp24PkGj1eYPPP7AbGhcM2iw++5LDyvn\nCRrD8xeZLZubiQrm8QTN4fmLzJbOhUHBPJ6gOTx/kdnSOWdQIM871Dyev8hs6Bq50tkFkhZKuqvq\n2P9IulvS7yX9VNLqVecmS7pf0j2Sdm9UXM1w771w7LEwfboXqmmWjTeG886DAw+Ep58uOhqz1tPI\nNZAvBPaoOXYN8J6IeB9wHzAZQNJY4ABgbL7nO5Katj5zPVXWMf7KVzwBXbONH+/1k80Gq2EP3Ii4\nAXim5tjsiFicd28GNsjbE4BpEbEoIuYDDwDbNyq2RjruONhiC5g4sehIOtNpp3n9ZLPBKDJn8Glg\nWt5eH7ip6tzDwKimRzREzhMUz/kDs8EppDCQ9Hng1YiYupTLeq3od3d3v7Hd1dVFV1dXXWMbrEqe\nYPZs5wmKVp0/8PgD60Q9PT309PQM6J6Gdi2VNBq4IiK2rDp2CHAY8JGI+Hs+djJARJye968CTo2I\nm2ter5RdSz2eoJw8/sAs6U/X0qYmaSXtAZwATKgUBNks4EBJwyVtAmwOzG1mbENx3HEwdqzzBGXj\n/IFZ/zWsmUjSNGBXYG1JDwGnknoPDQdmK31UmxMRR0XEPEnTgXnAa8BRpawC9GLaNOcJyqo6fzBu\nnNc/MFsaj0Aegsq8Q17HuNy8/oF1urpMRyHpPcAuwGhSUnc+cENE/LE+YfZfmQqDl19OnzSPPNJ5\nglYwaVLKH3j9A+tEQyoMJH0KOBp4itR+/1dAwHqkMQBrA9+IiB/XM+ilKVNhcMQRaX0CzzvUGl59\nFT74wTQg0OsfWKcZ6txEa5B6/LzQx4uvBhwy+PBaV2V9AucJWkft+APnD8zeyjmDAXKeoLXNnJnW\nP3D+wDpJvXIGbwc+A7wHWDEfjoj4dF2iHICiCwOvY9wenD+wTlOvcQY/AkYC/wj0kOYTenHI0bWg\nyngCJ4xb2+mnp/EHZ59ddCRm5dGfmsEdEfF+SXdGxFaSVgBujIgdmhPiW2IprGYwdSp0d6c8gaeb\naH3z56f8wcyZzh9Y+6tXzeDV/O9zkrYERgDrDDW4VuL1CdrP6NFe/8CsWn8Kg/MkrQn8F2naiHnA\nGQ2NqkS8PkH7mjAB9t0XDj7Y6x+YuTfRMngd4/ZWWT95333hc58rOhqzxqjLGsiSjieNPBZvTiv9\nHHBrRNwx5ChLzOsTtL/q8Qc77+z8gXWu/iSQpwLbAleQCoR/Au4CNgZmRMTXGh1kVSxNqxncey98\n4AMeT9ApPH+RtbN6jTO4AfhYRLyY91cBfkFaq/jWiNiiTvEuU7MKA69P0JmOPz4NKvT4A2s39epN\ntA5v9igCWASMjIiXgL/3fktr8zrGnamy/oHHH1gn6s96Bj8BbpZ0OamZaC9gqqSVST2L2srUqWne\noVtv9afDTuP5i6yT9as3kaTtgJ3y7m8i4pZ+3HMBKb/weGXZy9xF9RJSvmE+sH9EPJvPTQY+DbwO\nHBMR1/Tymg1tJqrkCa65BrbeumFvYyXn+Yus3dRz2csVgRci4hvAgrw05bJcSMorVDsZmB0RY4Bf\n5X0kjQUOAMbme74jqalLclbGE3z5yy4IOt2ECbDPPh5/YJ1lmQ9cSd3AieQHN2nZymWuYRARNwDP\n1BweD0zJ21OAvfP2BGBaRCyKiPnAA6Q1E5qmkidwwtjA8xdZ5+lPzuCfga2BWwEi4hFJqw7y/UZG\nxMK8vZA0AR7A+sBNVdc9DIwa5HsMmMcTWC3nD6zT9Kcp5pWIWFzZyYnjIcuN/0urhDelgu55h6wv\nnr/IOkl/agaXSvoeMELSRFKS9weDfL+FktaNiMckrQc8no8/AmxYdd0G+dgSuru739ju6uqiq6tr\nkKF43iFbtgkT4LrrUv7A4w+sVfT09NDT0zOge/rbm2h3YPe8e3VEzO7Xi0ujgSuqehOdATwVEV+T\ndDIwIiJOzgnkqaQ8wSjgl8A7a7sO1bs3kecdsv7w+snW6uoyArnqxVYn1SQCICKWWnGWNA3YFVib\nlB/4AjATmA5sxJJdS08h1TpeA46NiKt7ec26FQZen8AGwusfWCur13QUhwNfBF4BKrmDiIhN6xLl\nANSrMPC8QzYYHn9grapehcEDwI4R8WQ9gxuMehQGnnfIhsLrJ1srqtegsz8DL9cnpOJV1jH2vEM2\nGB5/YO2qP72JTgbmSJrDmxPWRUQc07iwGmPaNM87ZENTGX+www4ef2DtpT/NRLcA15PWMFhMXuQm\nIqYs9cYGGEozkecdsnry+gfWSuqVM7g9Ikrx+BxsYVDJExx5JBxxRAMCs47k9Q+sVdSrMPgqsACY\nRepRBCy7a2kjDLYwOPxweO651EzkP1qrl8r6yfvt5/EHVm71Kgzms+TUEC3TtXTqVDj11JQn8HgC\nq7cFC9L4g8svd/7Ayquug87KQFLMmtX/eP/2t9Su6zyBNVIlf/DNb8Kwpk68PnArrAAf+Uj61zpH\nvWoGw4EjgV1INYTrgP+NiEX1CrS/JMWeew6s8PrkJ+GAAxoUkFl2zjmpp1rZ/fnPsMcecNZZRUdi\nzVSvwuB8UhfUKaSeRJ8CXouIf69XoP3V6JXOzNrdU0/BNtukWsyECUVHY81Sr8LgzojYalnHmsGF\ngdnQzZmTCoK5c9M03db+6jUC+TVJ76x60c1Ik8mZWQsaNw5OPDGt0/Dqq8u+3jpDf2oGHyGtZ/yX\nfGg0cGhENL2F1DUDs/pYvDjVDt71LjjzzKKjsUarW28iSSsC78q790bE3+sQ34C5MDCrn0r+4Nxz\nYfz4oqOxRhpSYSCpKyJ6lvEGH4qIawcf4sC4MDCrrzlzYO+9U/5g442LjsYaZaiFwZmk7qS/BG4B\nHiXlGNYFtgV2A66NiBPrGfTSuDAwq7+zzoJLL4Xrr08T8Vn7GXIzkaRVgQnAzkDlc8MC4EZgZkS8\nOMjAJgOfJE18dxdwKLAycEl+n/lUrYJWdZ8LA7M6i0j5gzFjnD9oV6UcgZzXRf41sEVEvCLpEuAX\nwHuAJyPiDEknAWtExMk197owMGuAp59+c/yB8wftpz+FQX/WM0DSnsBYYMXKsYj40iDjeh5YBKwk\n6XVgJeCvwGTSmsmQBrj1kNZSMLMGW3PNNJHj3nvD+97n/EEnWuY4A0nfA/YHjiGNQN6fN5uMBizP\ndnoW8CCpEHg2ImYDIyNiYb5sITBysO9hZgNXGX9wwAEef9CJ+jPobKeIOAh4OiK+COzIm91MBywP\nWjuONF5hfWAVSZ+svia3Bbk9yKzJJk2Cd7wDTjml6Eis2frTTFRZ//glSaOAp0g9igZrW+C3EfEU\ngKSfAuOAxyStGxGPSVoPeLy3m7u7u9/Y7urqoqurawihmFk1CX74w5Q/2GUX5w9aVU9PDz09PQO6\npz8jkL8AnAt8GPh2PnxeRPy/QcSIpPcBPwG2A/4O/BCYS2p6eioivibpZGCEE8hmxfD4g/ZSr4nq\nVqyMOM4jkVcE/j6UUciSTgQOJnUtvQ34d2BVYDqwEe5aalY4jz9oH/UqDG6LiG2WdawZXBiYNU9l\n/MHmm3v9g1Y3pK6lud1+fVIX0G1IPYkCWI3UHdTM2lht/sDrH7S3pU1HcTBwCCnhe0vVqReAH0bE\nTxse3ZIxuWZg1mSV/MHNN3v9g1ZVr2aifSNiRl0jGyQXBmbFOPNMmDHD+YNWVa/FbW6UdL6kq/KL\njpX0mbpEaGYtYdIkWGcdmDy56EisUfpTGPwQuIaUPwC4H/jPRgVkZuUzbFjKH8yYATNnFh2NNUJ/\nCoO1I+IS4HWAiFiEl7006zhrrQUXXwwTJ8KCBUVHY/XWn8LgRUlrVXYk7Qg817iQzKysxo2DE07w\n/EXtqD8J5H8gjUB+D/BHYB1g34j4fePDWyIWJ5DNCub1k1tPPddAXoG3roG8qA7xDZgLA7Ny8PrJ\nraWehcHOpFlGlyfPJhoRF9UhxgFxYWBWHp6/qHXUa5zBj4FNgTvISWSAiDi6HkEOhAsDs3Lx/EWt\noV6Fwd3A2DI8hV0YmJWL109uDfUadPYHYL36hGRm7aQyf9GMGTBrVtHR2FAsbW6iK/LmKsDWpDUH\nXsnHIiKanjZyzcCsnJw/KLchNRNJ6sqbZwAnkGYtrTgjIravR5AD4cLArLycPyiveuUMbo+IrWuO\n3RURW9YhxgFxYWBWXhGpm+mYMV7/oGyGlDOQdKSku4B3Sbqr6ms+cOcQAxshaYakuyXNk7SDpDUl\nzZZ0n6RrJI0YynuYWXNV5w88f1HrWVoz0erAGsDpwEm82Uz0QmUx+0G/qTQFuC4iLpC0PLAy8Hng\nyYg4Q9JJwBpeA9ms9cyZk3oYzZ3r9Q/Kom6DzuopFzK3R8SmNcfvAXaNiIWS1gV6IuLdNde4MDBr\nAV7/oFzq1bW03jYBnpB0oaTbJJ0naWVgZEQszNcsBEYWEJuZ1UFl/YNTTik6EuuvPtdAbvB7bgN8\nNiJ+J+nrwFuagyIiJPVaBeju7n5ju6uri66ursZFamaDUln/oLJ+sucvaq6enh56enoGdE8RzUTr\nAnMiYpO8/wFgMmnKiw9FxGOS1gOudTORWWvz+INyKGUzUUQ8BjwkaUw+tBtpauwrgIPzsYOBy5sd\nm5nVl9c/aB1NrxkASHof8ANgOPAn4FBgOWA6sBEwH9g/Ip6tuc81A7MW4/UPilfK3kRD4cLArDV5\n/YNiuTAws9Jw/qA4pcwZmFlncv6g3FwzMLOmqeQPPH9Rc7lmYGalMmwYTJkCl13m9Q/KxjUDM2s6\n5w+ayzUDMyulcePgxBOdPygT1wzMrBBeP7l5XDMws9Ly+snl4pqBmRXK+YPGc83AzErP4w/KwTUD\nMyuc5y9qLNcMzKwlVNY/uPRS5w+K4pqBmZWG8weN4ZqBmbUU5w+K45qBmZWK8wf155qBmbUc5w+K\nUVhhIGk5SbdLuiLvrylptqT7JF0jaURRsZlZsdZaCy6+GA47DBYsKDqazlBkzeBYYB5Qafc5GZgd\nEWOAX+V9M+tQzh80VyGFgaQNgI+T1kGutGONB6bk7SnA3gWEZmYlMmkSrLMOnHJK0ZG0v6JqBucA\nJwCLq46NjIiFeXshMLLpUZlZqVTWP/D8RY23fLPfUNKewOMRcbukrt6uiYiQ1Gu3oe7u7je2u7q6\n6Orq9SXMrE2suSZMm5bGH2y1FYweXXRE5dfT00NPT8+A7ml611JJXwU+BbwGrAisBvwU2A7oiojH\nJK0HXBsek9zaAAAKQ0lEQVQR7665111LzTrUmWemGsL118Pw4UVH01r607W00HEGknYFPhcRe0k6\nA3gqIr4m6WRgREScXHO9CwOzDuX1kwevVcYZVJ7upwMflXQf8OG8b2YGvDn+YMYMmDmz6Gjaj0cg\nm1lLmTMn1RB+9zvPX9RfrVIzMDPrN6+f3BiuGZhZy/H8RQPjmoGZtSXPX1R/rhmYWcvy+gf945qB\nmbU1z19UP64ZmFlL8/iDZXPNwMzaXvX4A+cPBs81AzNrC84f9M01AzPrGM4fDI1rBmbWNpw/6J1r\nBmbWUTx/0eC5ZmBmbacyf9HcuV7/AFwzMLMOVZm/6MADnT/oL9cMzKwtef6iN7lmYGYdy/MXDYxr\nBmbW1jz+oKQ1A0kbSrpW0h8l/UHSMfn4mpJmS7pP0jWSRjQ7NjNrPx5/0D9NrxlIWhdYNyLukLQK\ncCuwN3Ao8GREnCHpJGANr4FsZvXQ6fmDUtYMIuKxiLgjb78I3A2MAsYDU/JlU0gFhJnZkDl/sGyF\n5gwkjQauA94LPBgRa+TjAp6u7Fdd75qBmQ1ap+YP+lMzWL5ZwdTKTUSXAcdGxAvp+Z9EREjq9anf\n3d39xnZXVxddXV2NDdTM2kZ1/uD662H48KIjaoyenh56enoGdE8hNQNJKwA/B66MiK/nY/cAXRHx\nmKT1gGsj4t0197lmYGZD0on5g1LmDHIT0PnAvEpBkM0CDs7bBwOXNzs2M2t/zh/0rojeRB8Argfu\nBCpvPhmYC0wHNgLmA/tHxLM197pmYGZ10Un5g/7UDDzozMw61llnpRpCO+cPwIWBmdlSRby5/kE7\n5w9KmTMwMysLyesnV7hmYGYdr93zB64ZmJn1g+cvcs3AzAxo7/EHrhmYmfVTp48/cM3AzKxKO+YP\nXDMwMxugTs0fuGZgZlajkj8YMyYNTGt1rhmYmQ1CJX/QSeMPXDMwM+tDu+QPXDMwMxuCTsofuGZg\nZrYU7TD+wDUDM7Mh6pTxB64ZmJn1QyvnD1quZiBpD0n3SLpf0klFx2NmVjFuHJx4YvvmD0pTGEha\nDvgWsAcwFviEpC2KjWpwBroQdVEcZ305zvoqY5yTJsE73gGnnJL2yxjjYJWmMAC2Bx6IiPkRsQi4\nGJhQcEyD0ir/QRxnfTnO+ipjnLXrH5QxxsEqU2EwCnioav/hfMzMrDTWXBOmTYPDDoNnn1329a1i\n+aIDqOLMsJm1hEr+4CtfgT/9qeholrTXXjBx4sDuKU1vIkk7At0RsUfenwwsjoivVV1TjmDNzFrM\nsnoTlakwWB64F/gI8FdgLvCJiLi70MDMzDpAaZqJIuI1SZ8FrgaWA853QWBm1hylqRmYmVlxytSb\naKlaYUCapAskLZR0V9GxLI2kDSVdK+mPkv4g6ZiiY+qNpBUl3SzpDknzJJ1WdEx9kbScpNslXVF0\nLH2RNF/SnTnOuUXH0xdJIyTNkHR3/r3vWHRMtSS9K/8cK1/PlfjvaHL+W79L0lRJb+v1ulaoGeQB\nafcCuwGPAL+jhPkESR8EXgQuiogti46nL5LWBdaNiDskrQLcCuxdtp8ngKSVIuKlnFO6EfhcRNxY\ndFy1JE0C/gFYNSLGFx1PbyT9BfiHiHi66FiWRtIU4LqIuCD/3leOiOeKjqsvkoaRnkvbR8RDy7q+\nmSSNBn4NbBERr0i6BPhFREypvbZVagYtMSAtIm4Anik6jmWJiMci4o68/SJwN7B+sVH1LiJeypvD\nSbmk0j3IJG0AfBz4AbDUHhslUOr4JK0OfDAiLoCUSyxzQZDtBvypbAVB9jywCFgpF6wrkQquJbRK\nYeABaQ2SPzlsDdxcbCS9kzRM0h3AQuDaiJhXdEy9OAc4AVhcdCDLEMAvJd0i6bCig+nDJsATki6U\ndJuk8yStVHRQy3AgMLXoIHqTa4FnAQ+Semk+GxG/7O3aVikMyt+W1YJyE9EM4NhcQyidiFgcEe8H\nNgB2kdRVcEhvIWlP4PGIuJ2Sf+oGdo6IrYGPAf+RmzXLZnlgG+A7EbEN8Dfg5GJD6puk4cBewKVF\nx9IbSZsBxwGjSbX/VST9W2/Xtkph8AiwYdX+hqTagQ2SpBWAy4AfR8TlRcezLLmp4P+AbYuOpcZO\nwPjcHj8N+LCkiwqOqVcR8Wj+9wngZ6Tm17J5GHg4In6X92eQCoey+hhwa/6ZltG2wG8j4qmIeA34\nKen/7BJapTC4Bdhc0uhcEh8AtPEyE40lScD5wLyI+HrR8fRF0tqSRuTttwMfBW4vNqq3iohTImLD\niNiE1Fzw64g4qOi4aklaSdKqeXtlYHegdL3eIuIx4CFJY/Kh3YA/FhjSsnyC9CGgrO4BdpT09vx3\nvxvQa1NraQadLU2rDEiTNA3YFVhL0kPAFyLiwoLD6s3OwCeBOyVVHq6TI+KqAmPqzXrAlNxbYxjw\no4j4VcExLUtZmzRHAj9LzwOWB34SEdcUG1KfjgZ+kj/4/Qk4tOB4epUL1d2AsuZfiIjf55rqLaSc\n1m3A93u7tiW6lpqZWWO1SjORmZk1kAsDMzNzYWBmZi4MzMwMFwZmZoYLAzMzw4WBtRlJg55WQ9Jn\nJT0gabGkNWvOfTNPn/57SVsPPVKzcnFhYO1mKANnbiQtu7qg+qCkjwPvjIjNgYnAd4fwHmal5MLA\n2pKS/8kLetwpaf98fJik7+SFU66R9H+S9gGIiDsiYkEvLzcemJKvuRkYIWlkL+/5ifxed0k6ver4\ni5LOyAsJzZa0o6TrJP1J0l75muVyvHNz7WPisuKV9IV8/V2SvlfnH6F1GBcG1q7+BXgfsBVpyoD/\nyYv6/AuwcURsAXwKGMeyaxO9TaG+QfUFktYHTgc+BLwf2E5SZc2NlYBfRcR7gReALwEfBv45bwN8\nhjS98PakCeQOy9OLLy3ecyNi+7yQ0tvzDKpmg+LCwNrVB4CpkTwOXAdsR5qXaTpARCwEru3n69VO\nT11bgGxHWm/hqYh4HfgJsEs+92pEXJ2378rXvQ78gTS1MKSJ4w7Kc0XdBKwJbL6MeD8s6SZJd5IK\nl/f083sxW0JLTFRnNghB3+sLDHTdgdop1DdgydWiat9PvFlgLKo6vhh4FdJaDXn1qYrPRsTstwSa\n8hVLxCtpReDbpGUsH5F0KrBiv78jsxquGVi7ugE4ILe5r0P6lH4z8Btgn5xTGAl09XF/9QN4FnAQ\ngNLi7M/mT+nVfgfsKmktpTW7DyTVRvrrauCoSuEgaUxe4auveCsP/qfyIkX7Ud4ZU60FuGZg7SYA\nIuJnksYBv8/HToiIxyVdRuoxNI+UB7gNeA5A0jGk5StHkqb3/r+ImBgRv5D0cUkPkFbeWmJK5Yh4\nVNLJpGYcAT+PiCuqY6qNsWb7B6Qmo9vyvPOPA3uTFiBaIt6IeFbSeaSmpsco6bKl1jo8hbV1HEkr\nR8TfJK1FeojulPMKpdRq8Vprcs3AOtHP8wpqw4EvtcCDtdXitRbkmoGZmTmBbGZmLgzMzAwXBmZm\nhgsDMzPDhYGZmeHCwMzMgP8P7HvsmVOn2LsAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9cd2e10290>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Bode's plots\n",
+ "from numpy import arange,nditer\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, show, xlabel, ylabel\n",
+ "\n",
+ "w=arange(0,8,0.1)\n",
+ "# Asymptotic magnitude response curve\n",
+ "a=[]\n",
+ "b=[]\n",
+ "c=[]\n",
+ "d=[]\n",
+ "e=[]\n",
+ "for i in range(0,len(w)):\n",
+ " a.append(40)\n",
+ " if w[i]<1.3:\n",
+ " b.append(20*w[i])\n",
+ " c.append(0)\n",
+ " d.append(0)\n",
+ " e.append(0)\n",
+ " elif w[i]<3:\n",
+ " b.append(20*w[i])\n",
+ " c.append(20*(w[i]-1.3))\n",
+ " d.append(0)\n",
+ " e.append(0)\n",
+ " elif w[i]<6:\n",
+ " b.append(20*w[i])\n",
+ " c.append(20*(w[i]-1.3))\n",
+ " d.append(-20*(w[i]-3))\n",
+ " e.append(0)\n",
+ " else:\n",
+ " b.append(20*w[i])\n",
+ " c.append(20*(w[i]-1.3))\n",
+ " d.append(-20*(w[i]-3))\n",
+ " e.append(-20*(w[i]-6))\n",
+ " \n",
+ "\n",
+ "A=[]\n",
+ "\n",
+ "for m,n,o,p,q in nditer([a, b, c, d, e]):\n",
+ " A.append(m+n+o+p+q)\n",
+ "\n",
+ "plot(w,A)\n",
+ "title(\"Amplitude (Gain) |A(j omega)| in dB\")\n",
+ "xlabel(\"log omega\")\n",
+ "ylabel(\"|A(j omega)| dB\")\n",
+ "show()\n",
+ "# Asymptotic phase response curve\n",
+ "\n",
+ "thetab=[]\n",
+ "thetac=[]\n",
+ "thetad=[]\n",
+ "thetae=[]\n",
+ "for i in range(0,len(w)):\n",
+ " thetab.append(90)\n",
+ " if w[i]<0.3:\n",
+ " thetac.append(0)\n",
+ " thetad.append(0)\n",
+ " thetae.append(0)\n",
+ " elif w[i]<2:\n",
+ " thetac.append(45*(w[i]-0.3))\n",
+ " thetad.append(0)\n",
+ " thetae.append(0)\n",
+ " elif w[i]<2.3:\n",
+ " thetac.append(45*(w[i]-0.3))\n",
+ " thetad.append(-45*(w[i]-2))\n",
+ " thetae.append(0)\n",
+ " elif w[i]<4:\n",
+ " thetac.append(90)\n",
+ " thetad.append(-45*(w[i]-2))\n",
+ " thetae.append(0)\n",
+ " elif w[i]<5:\n",
+ " thetac.append(90)\n",
+ " thetad.append(-90)\n",
+ " thetae.append(0)\n",
+ " elif w[i]<7:\n",
+ " thetac.append(90)\n",
+ " thetad.append(-90)\n",
+ " thetae.append(-45*(w[i]-5))\n",
+ " else:\n",
+ " thetac.append(90)\n",
+ " thetad.append(-90)\n",
+ " thetae.append(-90)\n",
+ "theta =[] \n",
+ "for m,n,o,p in nditer([thetab, thetac, thetad, thetae]):\n",
+ " theta.append(m+n+o+p)\n",
+ "\n",
+ "plot(w,theta)#\n",
+ "title(\"Phase theta(omega) in degrees\")\n",
+ "xlabel(\"log10 omega\")\n",
+ "ylabel(\"theta(omega)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.3: Page No 461"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CS = 18.57 µF \n",
+ "Here at f = 0 Hz, CS has infinite reactance.\n",
+ "Therefore, zero frequency fzero = 0 Hz here, i.e. the voltage transfer function is zero at DC.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "#CS, Zero frequency\n",
+ "\n",
+ "gm=1e-3# # in mho\n",
+ "fL=10# # in hertz\n",
+ "# From Fig. 10.10\n",
+ "RS=6e3# # in ohms\n",
+ "I=RS/(1+RS*gm)# # Impedance seen by CS in ohms\n",
+ "CS=1/(2*pi*fL*I)# # in farads\n",
+ "CS=CS*1e6# # in micro-farads\n",
+ "print \"CS = %0.2f µF \"%CS\n",
+ "print \"Here at f = 0 Hz, CS has infinite reactance.\"\n",
+ "print \"Therefore, zero frequency fzero = 0 Hz here, i.e. the voltage transfer function is zero at DC.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.4: Page No 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "fT = 400.50 MHz \n",
+ "fb = 2.50 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "#fT, fb\n",
+ "\n",
+ "b_o=160#\n",
+ "f=50# # in Mega-hertz\n",
+ "b_jw=8#\n",
+ "wb=sqrt((2*pi*f)**2*b_jw**2/(b_o**2-b_jw**2))# # in Mega-rad/sec\n",
+ "fb=wb/(2*pi)# # in Mega-hertz\n",
+ "fT=fb*b_o# # in Mega-hertz\n",
+ "print \"fT = %0.2f MHz \"%fT\n",
+ "print \"fb = %0.2f MHz \"%fb"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.5: Page No 477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CÏ€ = 24.38 pF \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "#CÏ€\n",
+ "\n",
+ "IC=1e-3# # in amperes\n",
+ "b_o=120#\n",
+ "b_jw=10#\n",
+ "f=25e6# # in hertz\n",
+ "C_mu=1e-12# # in farads\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "wb=sqrt((2*pi*f)**2*b_jw**2/(b_o**2-b_jw**2))# # in rad/sec\n",
+ "wT=wb*b_o# # in hertz\n",
+ "gm=IC/VT# # in mho\n",
+ "C_pi=gm/wT-C_mu# # in farads\n",
+ "C_pi=C_pi*1e12# # in pico-farads\n",
+ "print \"CÏ€ = %0.2f pF \"%C_pi"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.7: Page No 490"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Midband gain = -43.80 \n",
+ "p2/p1 = 49.49 \n",
+ "Since p2/p1 >> 8, therefore dominant-pole approximation holds good.\n",
+ "Upper half-power frequency = 77.05 M rad/sec \n",
+ "Part (b)\n",
+ "Zi =26.14+-284.59j Ω \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "# (a) Midband gain, Upper half-power frequency\n",
+ "# (b) Zi\n",
+ "\n",
+ "ICQ=1e-3# # in amperes\n",
+ "RS=300# # in ohms\n",
+ "RC=1.2e3# # in ohms\n",
+ "bta=125#\n",
+ "fT=300e6# # in hertz\n",
+ "C_mu=0.5e-12# # in farads\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "gm=ICQ/VT# # in mho\n",
+ "r_pi=bta/gm# # in ohms\n",
+ "# To find C_pi\n",
+ "C_pi=gm/(2*pi*fT)-C_mu# # in farads\n",
+ "AVo=-bta*RC/(RS+r_pi)# # Midband gain\n",
+ "print \"Midband gain = %0.2f \"%AVo\n",
+ "R_pi0=RS*r_pi/(RS+r_pi)#\n",
+ "a1=R_pi0*C_pi+(R_pi0+RC*(1+gm*R_pi0))*C_mu# # in seconds\n",
+ "a2=R_pi0*RC*C_pi*C_mu# # in seconds\n",
+ "p1=1/a1# # in rad/sec\n",
+ "p2=a1/a2# # in rad/sec\n",
+ "print \"p2/p1 = %0.2f \"%(p2/p1)\n",
+ "print \"Since p2/p1 >> 8, therefore dominant-pole approximation holds good.\"\n",
+ "wH=p1*1e-6# # in M rad/sec\n",
+ "print \"Upper half-power frequency = %0.2f M rad/sec \"%wH\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "CM=C_pi+C_mu*(1+gm*RC)# # in farads\n",
+ "Zi=r_pi/(1+1J*wH*1e6*CM*r_pi)# # in ohms\n",
+ "print \"Zi ={0:.2f}+{1:.2f}j\".format(Zi.real,Zi.imag),\"Ω \""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.12: Page No 530"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "fH = 2.59 MHz \n",
+ "Part (b)\n",
+ "Approximate location of the closest non-dominant pole = 28.67 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "# (a) Approximate value of fH\n",
+ "# (b) Approximate location of the closest non-dominant pole\n",
+ "\n",
+ "RS=600# # in ohms\n",
+ "RC1=1.5e3# # in ohms\n",
+ "RC2=600# # in ohms\n",
+ "r_pi1=1.2e3# # in ohms\n",
+ "gm1=0.1# # in mho\n",
+ "C1=24.5e-12# # in farads\n",
+ "C_pi1=C1# # in farads\n",
+ "C2=0.5e-12# # in farads\n",
+ "C_mu1=C2# # in farads\n",
+ "r_pi2=2.4e3# # in ohms\n",
+ "gm2=0.05# # in mho\n",
+ "C3=19.5e-12# # in farads\n",
+ "C_pi2=C3# # in farads\n",
+ "C4=0.5e-12# # in farads\n",
+ "C_mu2=C4# # in farads\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "R11_0=parallel(RS,r_pi1)# # in ohms\n",
+ "R33_0=parallel(RC1,r_pi2)# # in ohms\n",
+ "R22_0=R11_0*(1+gm1*R33_0)+R33_0# # in ohms\n",
+ "R44_0=R33_0*(1+gm2*RC2)+RC2# # in ohms\n",
+ "a1=R11_0*C1+R22_0*C2+R33_0*C3+R44_0*C4# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"fH = %0.2f MHz \"%fH\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "R33_1=R33_0# # in ohms\n",
+ "R44_1=R44_0# # in ohms\n",
+ "# From Fig. 10.61(a)\n",
+ "R22_1=R33_0# # in ohms\n",
+ "# From Fig. 10.61(b)\n",
+ "R44_3=RC2# # in ohms\n",
+ "# From Fig. 10.61(c)\n",
+ "R33_2=parallel(parallel(r_pi2,RC2),parallel(1/gm1,R11_0))#\n",
+ "R44_2=R33_2*(1+gm2*RC2)+RC2# # in ohms\n",
+ "a2=R11_0*C1*R22_1*C2+R11_0*C1*R33_1*C3+R11_0*C1*R44_1*C4+R22_0*C2*R33_2*C3+R22_0*C2*R44_2*C4+R33_0*C3*R44_3*C4# # in seconds\n",
+ "p2=a1/a2#\n",
+ "f2=p2/(2*pi)# # in hertz\n",
+ "f2=f2*1e-6# # in Mega-hertz\n",
+ "print \"Approximate location of the closest non-dominant pole = %0.2f MHz \"%f2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.13: Page No 537"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "fH for cascode amplifier = 24.51 MHz \n",
+ "Part (b)\n",
+ "fH for common-emitter stage = 10.11 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "# (a) fH for cascode amplifier\n",
+ "# (b) fH for common -emitter stage\n",
+ "\n",
+ "RC1=1.5e3# # in ohms\n",
+ "RC2=RC1#\n",
+ "RS=300# # in ohms\n",
+ "r_pi=2e3# # in ohms\n",
+ "gm=0.05# # in mho\n",
+ "bta=100#\n",
+ "C_pi=19.5e-12# # in farads\n",
+ "C_mu=0.5e-12# # in farads\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "R_pi1=RS*r_pi/(RS+r_pi)# # in ohma\n",
+ "Ri2=r_pi/(1+bta)# # in ohms\n",
+ "RL1=RC1*Ri2/(RC1+Ri2)# # in ohms\n",
+ "a11=R_pi1*C_pi+(R_pi1*(1+gm*RL1)+RL1)*C_mu# # in seconds\n",
+ "a12=C_pi/gm+C_mu*RC2# # in seconds\n",
+ "a1=a11+a12# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"fH for cascode amplifier = %0.2f MHz \"%fH\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "a1=R_pi1*C_pi+(R_pi1*(1+gm*RC1)+RC1)*C_mu# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"fH for common-emitter stage = %0.2f MHz \"%fH"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.15: Page No 548"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "CB = 3.98 µF \n",
+ "CE = 406.11 µF \n",
+ "Part (b)\n",
+ "fE = 0.26 Hz \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "## (a) CB and CL\n",
+ "# (b) Zero introduced by CE\n",
+ "\n",
+ "RE=1.5e3# # in ohms\n",
+ "Rs=600# # in ohms\n",
+ "bta=100#\n",
+ "r_pi=1e3# # in ohms\n",
+ "fL=50# # in hertz\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "fLB=fL/2# # in hertz\n",
+ "fLE=fLB# # in hertz\n",
+ "CB=1/(2*pi*fLB*(Rs+r_pi))# # in farads\n",
+ "CB=CB*1e6# # in micro-farads\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)\n",
+ " return c\n",
+ "CE=1/(2*pi*fLE*parallel(RE,(Rs+r_pi)/(1+bta)))# # in farads\n",
+ "CE=CE*1e6# # in micro-farads\n",
+ "print \"CB = %0.2f µF \"%CB\n",
+ "print \"CE = %0.2f µF \"%CE\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "fE=1e6/(2*pi*RE*CE)# # in hertz\n",
+ "print \"fE = %0.2f Hz \"%fE"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.16: Page No 549"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Since p2/pi >> 8, therefore dominant-pole approximation holds good.\n",
+ "AVo = -93.75 \n",
+ "fH = 4.38 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "#AVo, fH\n",
+ "\n",
+ "RC=1.5e3# # in ohms\n",
+ "Rs=0.6e3# # in ohms\n",
+ "# From Fig. 10.69\n",
+ "C_pi=19.5e-12# # in farads\n",
+ "r_pi=1e3# # in ohms\n",
+ "C_mu=0.5e-12# # in farads\n",
+ "gm=0.1# # in mho\n",
+ "bta=r_pi*gm#\n",
+ "AVo=-bta*RC/(Rs+r_pi)#\n",
+ "R_pi=Rs*r_pi/(Rs+r_pi)# # in ohms\n",
+ "R_mu=R_pi+(1+gm*R_pi)*RC# # in ohms\n",
+ "a1=R_pi*C_pi+R_mu*C_mu# # in seconds\n",
+ "a2=R_pi*C_pi*R_mu*C_mu# # in seconds\n",
+ "p2_pi=a1**2/a2# # p2/p1\n",
+ "print \"Since p2/pi >> 8, therefore dominant-pole approximation holds good.\"\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"AVo = %0.2f \"%AVo\n",
+ "print \"fH = %0.2f MHz \"%fH"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.17: Page No 550"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a1 = 5.22 ns \n",
+ "a2 = 1.53e-21 sec square \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "#(b) a1, a2\n",
+ "\n",
+ "RS=0.3e3# # in ohms\n",
+ "r_pi=2e3# # in ohms\n",
+ "RC=0.6# # in ohms\n",
+ "gm=0.1e-3# # in mho\n",
+ "C_pi=19.5e-12# # in farads\n",
+ "C_mu=0.5e-12# # in farads\n",
+ "R_pi=RS*r_pi/(RS+r_pi)# # in ohms\n",
+ "a1=C_pi*R_pi+C_mu*(R_pi+RC+gm*R_pi*RC)# # in seconds\n",
+ "a1=a1*1e9# # in nano-seconds\n",
+ "a2=C_pi*R_pi*C_mu*RC# # in seconds square\n",
+ "print \"a1 = %0.2f ns \"%a1\n",
+ "print \"a2 = %0.2e sec square \"%a2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.18: Page No 552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Upper 3 dB frequency = 2.00 MHz \n",
+ "Bandwidth:\n",
+ "Stage 1 only = 3.99 MHz \n",
+ "Stage 2 only = 3.99 MHz \n",
+ "Cascade = 2.00 MHz \n",
+ "Gain:\n",
+ "Stage 1 only = 157.50 \n",
+ "Stage 2 only = 19.53 \n",
+ "Cascade = 3076.74 \n",
+ "Gain-bandwidth product:\n",
+ "Stage 1 only = 628781932.47 MHz \n",
+ "Stage 2 only = 78003472.90 MHz \n",
+ "Cascade = 6142182172.51 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "#Upper 3 dB frequency\n",
+ "\n",
+ "r_pi1=1.4e3# # in ohms\n",
+ "r_pi2=2.8e3# # in ohms\n",
+ "gm1=0.15# # in mho\n",
+ "gm2=0.05# # in mho\n",
+ "C_pi1=20e-12# # in farads\n",
+ "C_pi2=25e-12# # in farads\n",
+ "C_mu1=0.5e-12# # in farads\n",
+ "C_mu2=C_mu1 # in farads\n",
+ "bta1=gm1*r_pi1#\n",
+ "bta2=gm2*r_pi2#\n",
+ "# From Fig. 10.71\n",
+ "RS=600# # in ohms\n",
+ "RC1=1.5e3# # in ohms\n",
+ "RL2=600# # in ohms\n",
+ "# From ac model in Fig. 10.72\n",
+ "R_pi1=RS*r_pi1/(RS+r_pi1)# # in ohms\n",
+ "RL1=RC1*r_pi2/(RC1+r_pi2)# # in ohms\n",
+ "R_mu1=R_pi1+RL1+gm1*RL1*R_pi1# # in ohms\n",
+ "R_pi2=RL1# # in ohms\n",
+ "R_mu2=R_pi2+RL2+gm2*RL2*R_pi2# # in ohms\n",
+ "a11=C_pi1*R_pi1+C_mu1*R_mu1# # in seconds\n",
+ "a12=C_pi2*R_pi2+C_mu2*R_mu2# # in seconds\n",
+ "a1=a11+a12# # in seconds\n",
+ "fH1=1/(2*pi*a11)# # in hertz\n",
+ "fH2=1/(2*pi*a12)# # in hertz\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH1=fH1*1e-6# # in Mega-hertz\n",
+ "fH2=fH2*1e-6# # in Mega-hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "AV1=-bta1*RC1/(RS+r_pi1)# # Gain of first stage\n",
+ "AV2=-bta2*RL2/(RC1+r_pi2)# # Gain of second stage\n",
+ "AV=AV1*AV2# # Gain of cascade\n",
+ "print \"Upper 3 dB frequency = %0.2f MHz \"%fH\n",
+ "print \"Bandwidth:\"\n",
+ "print \"Stage 1 only = %0.2f MHz \"%fH1\n",
+ "print \"Stage 2 only = %0.2f MHz \"%fH2\n",
+ "print \"Cascade = %0.2f MHz \"%fH\n",
+ "print \"Gain:\"\n",
+ "print \"Stage 1 only = %0.2f \"%abs(AV1)\n",
+ "print \"Stage 2 only = %0.2f \"%abs(AV2)\n",
+ "print \"Cascade = %0.2f \"%AV\n",
+ "print \"Gain-bandwidth product:\"\n",
+ "print \"Stage 1 only = %0.2f MHz \"%(fH1*abs(AV1)*1e6)\n",
+ "print \"Stage 2 only = %0.2f MHz \"%(fH2*abs(AV2)*1e6)\n",
+ "print \"Cascade = %0.2f MHz \"%(fH*AV*1e6)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.19: Page No 554"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Approximate value of fH 435.86 kHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "#Approximate value of fH\n",
+ "\n",
+ "btaf=150#\n",
+ "VA=120# # in volts\n",
+ "fT=400e6# # in hertz\n",
+ "C_mu=0.5e-12# # in farads\n",
+ "ICQ=100e-6# # in amperes\n",
+ "RS=50e3# # in ohms\n",
+ "RC=250e3# # in ohms\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "gm=ICQ/VT# # in mho\n",
+ "r_pi=btaf/gm# # in ohms\n",
+ "ro=VA/ICQ# # in ohms\n",
+ "C_pi=btaf/(2*pi*fT*r_pi)-C_mu# # in farads\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "# From AC model in Fig. 10.73\n",
+ "Ri=r_pi+(1+btaf)*parallel(ro,r_pi)# # in ohms\n",
+ "R_mu1=parallel(RS,Ri)# # in ohms\n",
+ "# From Fig. 10.75(b)\n",
+ "R=(50+36.36)/(1+145)# # in ohms\n",
+ "R_pi1=parallel(r_pi,R)# # in ohms\n",
+ "R_pi2=parallel(r_pi,parallel((RS+r_pi)/(1+btaf),ro))# # in ohms\n",
+ "RL=parallel(ro,RC)# # in ohms\n",
+ "R_mu2=R_pi2*(1+gm*RL)+RL# # in ohms\n",
+ "a1=R_mu1*C_mu+R_pi1*C_pi+R_pi2*C_pi+R_mu2*C_mu# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-3# # in kilo-hertz\n",
+ "print \"Approximate value of fH %0.2f kHz \"%fH"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.20: Page No 556"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Low 3 dB frequency = 504.72 Hz \n",
+ "Part (b)\n",
+ "High 3 dB frequency = 12.27 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "# (a) Low 3 dB frequency\n",
+ "# (b) High 3 dB frequency\n",
+ "\n",
+ "# From Fig. 10.76\n",
+ "C_gd1=2e-12# # in farads\n",
+ "C_gs1=5e-12# # in farads\n",
+ "gm1=10e-3# # in mho\n",
+ "C1=1e-6# # in farads\n",
+ "C_gd2=2e-12# # in farads\n",
+ "C_gs2=5e-12# # in farads\n",
+ "gm2=10e-3# # in mho\n",
+ "C2=10e-6# # in farads\n",
+ "# From low-frequency equivalent cicuit in Fig. 10.77\n",
+ "RS=0.2e3# # in ohms\n",
+ "RG1=50e3# # in ohms\n",
+ "RS1=0.25e3# # in ohms\n",
+ "RS2=0.15e3# # in ohms\n",
+ "RD2=5e3# # in ohms\n",
+ "R=10e3# # in ohms\n",
+ "C3=5.3e-6# # in farads\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# From low-frequency equivalent cicuit in Fig. 10.77\n",
+ "tau1=C1*(RS+RG1)# # in seconds\n",
+ "R_22=RD2+R# # in ohms\n",
+ "tau2=C2*R_22# # in seconds\n",
+ "R_33=parallel(RS2,1/gm2)# # in ohms\n",
+ "tau3=C3*R_33# # in ohms\n",
+ "fL=(1/tau1+1/tau2+1/tau3)/(2*pi)# # in hertz\n",
+ "print \"Low 3 dB frequency = %0.2f Hz \"%fL\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# From high frequency equivalent cicuit in Fig. 10.78\n",
+ "R_gd1=parallel(RS,RG1)# # in ohms\n",
+ "# From Fig. 10.79\n",
+ "R_gs1=(R_gd1+RS1)/(1+gm1*RS1)# # in ohms\n",
+ "R_gs2=parallel(RS1,1/gm2)# # in ohms\n",
+ "R_gd2=R_gs2+parallel(RD2,R)+R_gs2*parallel(RD2,R)*gm2# # in ohms\n",
+ "a1=C_gd1*R_gd1+C_gs1*R_gs1+C_gs2*R_gs2+C_gd2*R_gd2# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"High 3 dB frequency = %0.2f MHz \"%fH"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.21: Page No 559"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "AVo = 160.00 \n",
+ "Approximate value of fH = 0.34 MHz \n",
+ "Part (b)\n",
+ "Frequency of the nearest non-dominant pole = 5.31 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "# (a) AVo, Approximate value of fH\n",
+ "# (b) Frequency of the nearest non-dominant pole\n",
+ "\n",
+ "gm=1e-3# # in mho\n",
+ "Rd=40e3# # in ohms\n",
+ "Cgs=5e-12# # in farads\n",
+ "Cgd=1e-12# # in farads\n",
+ "Cds=1e-12# # in farads\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "RS=5e3# # in ohms\n",
+ "RD1=40e3# # in ohms\n",
+ "RD2=10e3# # in ohms\n",
+ "# From AC model of cascade amplifier in Fig. 10.80\n",
+ "Rds1=40e3# # in ohms\n",
+ "Rds2=40e3# # in ohms\n",
+ "R11_0=RS# # in ohms\n",
+ "RL1=parallel(Rds1,RD1)# # in ohms\n",
+ "R22_0=RS+RL1+gm*RS*RL1# # in ohms\n",
+ "R33_0=RL1# # in ohms\n",
+ "RL2=parallel(Rds2,RD2)# # in ohms\n",
+ "R44_0=RL1+RL2+gm*RL1*RL2# # in ohms\n",
+ "R55_0=RL2# # in ohms\n",
+ "C1=Cgs# # in farads\n",
+ "C2=Cgd# # in farads\n",
+ "C3=Cds+Cgs# # in farads\n",
+ "C4=Cds# # in farads\n",
+ "C5=Cds# # in farads\n",
+ "a1=C1*R11_0+C2*R22_0+C3*R33_0+C4*R44_0+C5*R55_0# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "AVo=gm*RL1*gm*RL2#\n",
+ "print \"AVo = %0.2f \"%AVo\n",
+ "print \"Approximate value of fH = %0.2f MHz \"%fH\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "R22_1=RL1# # in ohms\n",
+ "R33_1=RL1# # in ohms\n",
+ "R44_1=R44_0# # in ohms\n",
+ "R55_1=RL2# # in ohms\n",
+ "R33_2=parallel(RL1,parallel(1/gm,RS))# # in ohms\n",
+ "R44_2=R33_2+RL2+gm*R33_2*RL2# # in ohms\n",
+ "R55_2=R55_0# # in ohms\n",
+ "R44_3=RL2# # in ohms\n",
+ "R55_3=RL2# # in ohms\n",
+ "R55_4=parallel(RL1,parallel(1/gm,RL2))# # in ohms\n",
+ "a2=R11_0*C1*(R22_1*C2+R33_1*C3+R44_1*C4+R55_1*C5)+R22_0*C2*(R33_2*C3+R44_2*C4+R55_2*C5)+R33_0*C3*(R44_3*C4+R55_3*C5)+R44_0*C4*R55_4*C5# # in seconds\n",
+ "p2=a1/a2#\n",
+ "f=p2/(2*pi)# # in hertz\n",
+ "f=f*1e-6# # in Mega-hertz\n",
+ "print\"Frequency of the nearest non-dominant pole = %0.2f MHz \"% f"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.23: Page No 563"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Value of fH for the cascade = 3.53 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "#Value of fH for the cascade\n",
+ "\n",
+ "bta=100#\n",
+ "r_pi1=0.5e3# # in ohms\n",
+ "r_pi2=0.5e3# # in ohms\n",
+ "r_pi3=1e3# # in ohms\n",
+ "fT=200e6# # in hertz\n",
+ "C_mu=1e-12# # in farads\n",
+ "# From Fig. 10.85\n",
+ "RS=2e3# # in ohms\n",
+ "RE1=5e3# # in ohms\n",
+ "RC2=2e3# # in ohms\n",
+ "RC3=1e3# # in ohms\n",
+ "RE3=100# # in ohms\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "# From Fig. 10.86\n",
+ "Ro1=parallel(RE1,(RS+r_pi1)/(1+bta))# # in ohms\n",
+ "gm2=bta/r_pi2# # in mho\n",
+ "gm3=bta/r_pi3# # in mho\n",
+ "C_pi2=bta/(2*pi*fT*r_pi2)-C_mu# # in farads\n",
+ "C_pi3=bta/(2*pi*fT*r_pi3)-C_mu# # in farads\n",
+ "\n",
+ "# From Fig. 10.87\n",
+ "C1=C_pi2# # in farads\n",
+ "C2=C_mu# # in farads\n",
+ "C3=C_pi3# # in farads\n",
+ "C4=C_mu# # in farads\n",
+ "R11_0=parallel(Ro1,r_pi1)# # in ohms\n",
+ "RL1=parallel(RC2,r_pi3+(1+bta)*RE3)# # in ohms\n",
+ "R22_0=R11_0+RL1*(1+gm2*R11_0)# # in ohms\n",
+ "\n",
+ "# From Fig. 10.88\n",
+ "R_dash=2.1e3/(1+10)# # in ohms\n",
+ "R33_0=parallel(RC2,R_dash)# # in ohms\n",
+ "\n",
+ "# From Fig. 10.89\n",
+ "R44_0=(3+2*98/13.1)*1e3# # in ohms\n",
+ "\n",
+ "a1=R11_0*C1+R22_0*C2+R33_0*C3+R44_0*C4# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"Value of fH for the cascade = %0.2f MHz \"%fH"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch11_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch11_2.ipynb
new file mode 100644
index 00000000..650de10d
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch11_2.ipynb
@@ -0,0 +1,1130 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 11 : Feedback Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.1: Page No 585"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Open-loop gain = 2525.24 \n",
+ "Return ratio = 49.49 \n",
+ "Reverse transmission β of the feedback circuit = 0.0196 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from numpy import mat\n",
+ "#Open-loop gain, Return ratio, Reverse transmission β of feedback circuit\n",
+ "\n",
+ "# Let A be open-loop gain and B be return ratio\n",
+ "# For A, B 10% higher, -1.1A + 55.11B = -50.1\n",
+ "# For A, B 10% lower, -0.9A + 44.91B = -49.9\n",
+ "# Solving the two equations\n",
+ "a=mat([[-1.1, 55.11],[-0.9, 44.91]])\n",
+ "b=mat([[-50.1],[-49.9]])\n",
+ "c=(a**-1)*b\n",
+ "A=c[0,0]\n",
+ "B=c[1,0]\n",
+ "print \"Open-loop gain = %0.2f \"%A\n",
+ "print \"Return ratio = %0.2f \"%B\n",
+ "print \"Reverse transmission β of the feedback circuit = %0.4f \"%(B/A)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.2: Page No 586"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Necessary amount of feedback = 0.01 \n",
+ "Gain without feedback = 145.89 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from numpy import mat\n",
+ "#Necessary amount of feedback, Gain without feedback\n",
+ "\n",
+ "# Let A be gain without feedback and b be necessary amount of feedback\n",
+ "# AOL can assume values A, 1.1A, 0.9A, i.e. 10% variation\n",
+ "# For AOL = 1.1A yields, 50.01 + 1.1A(50.01b -1) = 0\n",
+ "# When AOL = 0.9A, 49.99 + 0.9A(49.99b - 1) = 0 \n",
+ "# Solving the two equations\n",
+ "\n",
+ "a=mat([[1.1*50.01, -1.1],[0.9*44.99, -0.9]])\n",
+ "b=mat([[-50.01],[-49.99]])\n",
+ "c=(a**-1)*b#\n",
+ "d=c[0,0]# # A*b\n",
+ "A=c[1,0]#\n",
+ "b=d/A#\n",
+ "print \"Necessary amount of feedback = %0.2f \"%b\n",
+ "print \"Gain without feedback = %0.2f \"%A"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.3: Page No 595"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Fundamental output with feedback = 2.19 V\n",
+ "Second-harmonic distortion with feedback = 0.15 V\n",
+ "Part (b)\n",
+ "Input voltage = 0.20 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "# (a) Output voltage\n",
+ "# (b) Input voltage\n",
+ "\n",
+ "B1=36# # Fundamental output in volts\n",
+ "B2=7*B1/100# # Second-harmonic distortion in volts\n",
+ "Vs=0.028# # Input in volts\n",
+ "A=B1/Vs# # Gain\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "b=1.2/100# # Amount of feedback in volts\n",
+ "B1f=B1/(1+b*A)# # Fundamental output with feedback in volts\n",
+ "B2f=B2/(1+b*A)# # Second-harmonic distortion with feedback in volts\n",
+ "print \"Fundamental output with feedback = %0.2f V\"%B1f\n",
+ "print \"Second-harmonic distortion with feedback = %0.2f V\"%B2f\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "B1f=36# # Fundamental output with feedback in volts\n",
+ "B2f=1*B1f/100# # Second-harmonic distortion with feedback in volts\n",
+ "T=B2/B2f-1# # Return ratio\n",
+ "AF=A/(1+T)# # Feedback gain\n",
+ "Vs=B1f/AF# # Input voltage in volts\n",
+ "print \"Input voltage = %0.2f V\"%Vs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.4: Page No 599"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Closed loop parameters :\n",
+ "Gain = 90.91 \n",
+ "Input impedance = 11.00 kΩ\n",
+ "Output impedance = 38.18 Ω\n",
+ "Lower 3 dB frequency = 0.14 kHz\n",
+ "Upper 3 dB frequency = 5516.50 kHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Closed loop parameters\n",
+ "\n",
+ "Av=1000#\n",
+ "bta=0.01#\n",
+ "Zin=1# # in kilo-ohms\n",
+ "Zo=420# # in ohms\n",
+ "fL=1.5# # in kilo-hertz\n",
+ "fH=501.5# # in kilo-hertz\n",
+ "print \"Closed loop parameters :\"\n",
+ "T=Av*bta# # Return ratio\n",
+ "# From Fig. 11.18\n",
+ "Af=Av/(1+T)# # Closed loop gain\n",
+ "Zif=Zin*(1+T)# # Closed loop input impedance in kilo-ohms\n",
+ "Zof=Zo/(1+T)# # Closed loop output impedance in ohms\n",
+ "fLf=fL/(1+T)# # Closed loop lower 3 dB frequency in kilo-hertz\n",
+ "fHf=fH*(1+T)# # Closed loop upper 3 dB frequency in kilo-hertz\n",
+ "print \"Gain = %0.2f \"%Af\n",
+ "print \"Input impedance = %0.2f kΩ\"%Zif\n",
+ "print \"Output impedance = %0.2f Ω\"%Zof\n",
+ "print \"Lower 3 dB frequency = %0.2f kHz\"%fLf\n",
+ "print \"Upper 3 dB frequency = %0.2f kHz\"%fHf"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.5: Page No 603"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output signal voltage = 01 V\n",
+ "Output noise voltage = 0.01 V\n",
+ "Improvement in S/N ratio = 40.00 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from numpy import log10\n",
+ "#Output signal voltage, Output noise voltage, Improvement in S/N ratio\n",
+ "\n",
+ "A1=1#\n",
+ "Vs=1# # in volts\n",
+ "Vn=1# # in volts\n",
+ "A2=100#\n",
+ "bta=1#\n",
+ "Vos=Vs*A1*A2/(1+bta*A1*A2)# # Output signal voltage in volts\n",
+ "Von=Vn*A1/(1+bta*A1*A2)# # Output noise voltage in volts\n",
+ "SNRi=20*log10(Vs/Vn)# # Input S/N ratio in dB\n",
+ "SNRo=20*log10(Vos/Von)# # Output S/N ratio in dB\n",
+ "SNR=SNRo-SNRi# # Improvement in S/N raio in dB\n",
+ "print \"Output signal voltage = %02.f V\"%Vos\n",
+ "print \"Output noise voltage = %0.2f V\"%Von\n",
+ "print \"Improvement in S/N ratio = %0.2f dB\"%SNR"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.6: Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (b)\n",
+ "R2/R1 = 9.01 \n",
+ "Part (c)\n",
+ "Amount of feedback = 60.00 dB\n",
+ "Part (d)\n",
+ "Vo = 10.00 V\n",
+ "Vf = 1.00 V\n",
+ "Vi = 0.00 V\n",
+ "Part (e)\n",
+ "Percentage decrease in Af = 0.02 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from numpy import log10\n",
+ "# (b) R2/R1\n",
+ "# (c) Amount of feedback in decibels\n",
+ "# (d) Vo, Vf, Vi\n",
+ "# (e) Decrease in Af\n",
+ "\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "A=1e4#\n",
+ "Af=10#\n",
+ "bta=(A/Af-1)/A# # Feedback factor\n",
+ "R2_R1=1/bta-1# # R2/R1\n",
+ "print \"R2/R1 = %0.2f \"%R2_R1\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "dB=20*log10(1+A*bta)# # Amount of feedback in decibels\n",
+ "print \"Amount of feedback = %0.2f dB\"%dB\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "Vs=1# # in volts\n",
+ "Vo=Af*Vs# # in volts\n",
+ "Vf=bta*Vo# # in volts\n",
+ "Vi=Vs-Vf# # in volts\n",
+ "print \"Vo = %0.2f V\"%Vo\n",
+ "print \"Vf = %0.2f V\"%Vf\n",
+ "print \"Vi = %0.2f V\"%Vi\n",
+ "\n",
+ "print \"Part (e)\"\n",
+ "A=80*A/100# # Decreased A\n",
+ "Af_dash=A/(1+A*bta)# # Decreased Af\n",
+ "C=(Af-Af_dash)*100/Af# # Percentage decrease in Af\n",
+ "print \"Percentage decrease in Af = %0.2f %%\"%C"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.7: Page No 606"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "For closed loop amplifier :\n",
+ "Low frequency gain = 9.99 \n",
+ "Upper 3 dB frequency = 100.10 kHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Low frequency gain, Upper 3 dB frequency\n",
+ "\n",
+ "# Without feedback\n",
+ "AM=1e4# # Low frequency values of A\n",
+ "wH=100# # Upper 3 dB frequency in hertz\n",
+ "# With feedback\n",
+ "R1=1# # in kilo-ohms\n",
+ "R2=9# # in kilo-ohms\n",
+ "bta=R1/(R1+R2)# # Feedback factor\n",
+ "AfM=AM/(1+bta*AM)# # Low frequency gain\n",
+ "wHf=wH*(1+bta*AM)# # Upper 3 dB frequency in hertz\n",
+ "wHf=wHf*1e-3# # Upper 3 dB frequency in kilo-hertz\n",
+ "print \"For closed loop amplifier :\"\n",
+ "print \"Low frequency gain = %0.2f \"%AfM\n",
+ "print \"Upper 3 dB frequency = %0.2f kHz\"%wHf"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.9: Page No 615"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "RE = 0.98 kΩ\n",
+ "Part (b)\n",
+ "RL = 4.00 kΩ\n",
+ "Part (c)\n",
+ "R1F = 150.00 kΩ\n",
+ "Part (d)\n",
+ "IC = 3.82 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "# (a) RE\n",
+ "# (b) RL\n",
+ "# (c) R1F\n",
+ "# (d) Quiescent collector current\n",
+ "\n",
+ "GmF=1# # Transconductance gain in mili-amperes per volts\n",
+ "AVF=-4# # Voltage gain\n",
+ "D=50# # Desensitivity factor\n",
+ "RS=1# # in kilo-ohms\n",
+ "btao=150#\n",
+ "AoL=GmF*D# # Open loop mutual conductance in mili-amperes per volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "RE=(D-1)/AoL# # in kilo-ohms\n",
+ "print \"RE = %0.2f kΩ\"%RE\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RL=-AVF/GmF# # in kilo-ohms\n",
+ "print \"RL = %0.2f kΩ\"%RL\n",
+ "print \"Part (c)\"\n",
+ "r_pi=btao/AoL-RS-RE# # in kilo-ohms\n",
+ "R1F=RS+r_pi+(1+btao)*RE# # in kilo-ohms\n",
+ "print \"R1F = %0.2f kΩ\"%R1F\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "VT=26e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "IC=btao*VT/r_pi# # in mili-amperes\n",
+ "print \"IC = %0.2f mA\"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.11: Page No 621"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "It ia a CB-CE cascade, configuration. It has low input and high output impedance and hence corresponds to a current amplifier.\n",
+ "Part (b)\n",
+ "Input resistance = 9.90 Ω​\n",
+ "Output resistance = inf \n",
+ "Transfer ratio = 74.26 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from numpy import inf\n",
+ "# (a) Amplifier type\n",
+ "# (b) Input resistance, Output resistance, Transfer ratio\n",
+ "\n",
+ "r_pi=1e3# # in ohms\n",
+ "gm=0.1# # in mho\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "print \"It ia a CB-CE cascade, configuration. It has low input and high output impedance and hence corresponds to a current amplifier.\"\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# From low frequency equivalent circuit in Fig. 11.40\n",
+ "btao=gm*r_pi#\n",
+ "Rin=r_pi/(1+btao)# # Input resistance in ohms\n",
+ "Rout=inf# # Output resistance (= ro of Q2)\n",
+ "Ai=gm*gm*Rin*3e3*1e3/(3e3+1e3)# # Transfer ratio\n",
+ "print \"Input resistance = %0.2f Ω​\"%Rin\n",
+ "print \"Output resistance = %0.2f \"%Rout\n",
+ "print \"Transfer ratio = %0.2f \"%Ai"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.12: Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (b)\n",
+ "AF = 299.89 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#(b) AF\n",
+ "\n",
+ "AV=4000#\n",
+ "bta=1/300#\n",
+ "RS=2# # in kilo-ohms\n",
+ "RE=RS# # in kilo-ohms\n",
+ "RC=6# # in kilo-ohms\n",
+ "btao=200#\n",
+ "r_pi=4# # in kilo-ohms\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "x=-AV*-btao*RC/(r_pi+RS)#\n",
+ "AF=x/(1+x*bta)#\n",
+ "print \"AF = %0.2f \"%AF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.13: Page No 624"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Q1 is a common collector and Q2 is common emitter stage. Hence the given circuit is cascade of cc and CE stages. As the Rin of a CC is high and the Ro of the CE is low, therefore, the given circuit approximates a voltage amplifier. If RL is chosen a low resistance, the amplifier can be considered a voltage-to-current converter.\n",
+ "Part (b)\n",
+ "Input resistance = 76.75 Ω​\n",
+ "Output resistance = 0.60 \n",
+ "Transfer ratio = -59.22 \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Amplifier type\n",
+ "# (b) Input resistance, Output resistance, Transfer ratio\n",
+ "\n",
+ "r_pi=1e3# # in ohms\n",
+ "gm=0.1# # in mho\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "print \"Q1 is a common collector and Q2 is common emitter stage. Hence the given circuit is cascade of cc and CE stages. As the Rin of a CC is high and the Ro of the CE is low, therefore, the given circuit approximates a voltage amplifier. If RL is chosen a low resistance, the amplifier can be considered a voltage-to-current converter.\"\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)\n",
+ " return c\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# From the Fig. 11.42\n",
+ "RE1=3e3# # in ohms\n",
+ "RC2=0.6e3# # in ohms\n",
+ "btao=gm*r_pi#\n",
+ "Ri2=r_pi# # in ohms\n",
+ "Ri1=r_pi+(1+btao)*parallel(RE1,Ri2)# # Input resistance in ohms\n",
+ "Rout=RC2# # Output resistance (= ro of Q2)\n",
+ "AV1=(1+btao)*RE1/(r_pi+(1+btao)*RE1)#\n",
+ "Ro1=parallel(RE1,r_pi/(1+btao))# # in ohms\n",
+ "AV2=-btao*RC2/(Ro1+r_pi)#\n",
+ "AV=AV1*AV2#\n",
+ "Ri1=Ri1*1e-3# # in kilo-ohms\n",
+ "Rout=Rout*1e-3# # in kilo-ohms\n",
+ "print \"Input resistance = %0.2f Ω​\"%Ri1\n",
+ "print \"Output resistance = %0.2f \"%Rout\n",
+ "print \"Transfer ratio = %0.2f \"%AV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.15: Page No 625"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Small signal gain = -4.18 \n",
+ "Input resistance = 10.10 kΩ​\n",
+ "Output resistance = 0.52 kΩ​\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Small signal gain, Input resistance, Output resistance\n",
+ "\n",
+ "btao=100#\n",
+ "r_pi=1e3# # in ohms\n",
+ "ICQ=2.5e-3# # in amperes\n",
+ "VT=25e-3# # in volts\n",
+ "gm=ICQ/VT# # Transconductance in mho\n",
+ "r_pi=btao/gm# # Incremental resistance of emitter-base diode in ohms\n",
+ "# From ac model without feedback in Fig. 11.47\n",
+ "RS=10e3# # in ohms\n",
+ "RF=47e3# # in ohms\n",
+ "RC=4.7e3# # in ohms\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "AoL=-gm*parallel(RF,RC)*parallel(RS,parallel(RF,r_pi))# # in ohms\n",
+ "bta=1/RF#\n",
+ "T=-bta*AoL# # Return ratio\n",
+ "AF=AoL/(1+T)# # in ohms\n",
+ "AVF=AF/RS# # Small signal gain\n",
+ "RID=parallel(RF,r_pi)# # in ohms\n",
+ "RID_dash=parallel(RID,RS)# # in ohms\n",
+ "RIF_dash_I=RID_dash/(1+T)# # in ohms\n",
+ "RIF_I=RS*RIF_dash_I/(RS-RIF_dash_I)# # in ohms\n",
+ "RIF_dash_V=RS+RIF_I# # in ohms\n",
+ "RoD_dash=parallel(RF,RC)# # in ohms\n",
+ "RoF_dash=RoD_dash/(1+T)# # in ohms\n",
+ "RoF=RoF_dash*RC/(RC-RoF_dash)# # in ohms\n",
+ "RIF_dash_V=RIF_dash_V*1e-3# # in kilo-ohms\n",
+ "RoF=RoF*1e-3# # in kilo-ohms\n",
+ "print \"Small signal gain = %0.2f \"%AVF\n",
+ "print \"Input resistance = %0.2f kΩ​\"%RIF_dash_V\n",
+ "print \"Output resistance = %0.2f kΩ​\"%RoF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.16: Page No 631"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "AF = 57.10 \n",
+ "T = 9.68 \n",
+ "Part (b)\n",
+ "RIF = 204.81 kΩ​\n",
+ "RoF = 79.01 Ω​\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) AF, T\n",
+ "# (b) R1F, RoF\n",
+ "\n",
+ "btao=150#\n",
+ "ICQ=1.5e-3# # in amperes\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From circuit without feedback but with loading in Fig. 11.50\n",
+ "RS=2e3# # in ohms\n",
+ "RE1=0.1e3# # in ohms\n",
+ "RF=6.2e3# # in ohms\n",
+ "RC1=4.3e3# # in ohms\n",
+ "RC2=1.2e3# # in ohms\n",
+ "RL=4.7e3# # in ohms\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "gm=ICQ/VT# # Transconductance in mho\n",
+ "r_pi=btao/gm# # Incremental resistance of emitter-base diode in ohms\n",
+ "AV1=-btao*RC1/(RS+r_pi+(1+btao)*parallel(RE1,RF))#\n",
+ "AV2=-btao*parallel(RC2,parallel(RF+RE1,RL))/(RC1+r_pi)#\n",
+ "AoL=AV1*AV2#\n",
+ "bta=-RE1/(RE1+RF)#\n",
+ "T=-bta*AoL#\n",
+ "AF=AoL/(1+T)#\n",
+ "print \"AF = %0.2f \"%AF\n",
+ "print \"T = %0.2f \"%T\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RID=r_pi+(1+btao)*parallel(RE1,RF)# # in ohms\n",
+ "RID_dash=RS+RID# # in ohms\n",
+ "RIF_dash=RID_dash*(1+T)# # in ohms\n",
+ "RIF=RIF_dash-RS# # in ohms\n",
+ "RoD=parallel(RC2,RF+RE1)# # in ohms\n",
+ "RoD_dash=parallel(RoD,RL)# # in ohms\n",
+ "RoF_dash=RoD_dash/(1+T)# # in ohms\n",
+ "RoF=RL*RoF_dash/(RL-RoF_dash)# # in ohms\n",
+ "RIF=RIF*1e-3# # in kilo-ohms\n",
+ "print \"RIF = %0.2f kΩ​\"%RIF\n",
+ "print \"RoF = %0.2f Ω​\"%RoF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.17: Page No 633"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "T = 0.93 \n",
+ "AoL = 20.66 \n",
+ "AF = 10.72 \n",
+ "Part (b)\n",
+ "RoF = 2.68 kΩ\n"
+ ]
+ }
+ ],
+ "source": [
+ "#(a) T, AoL, AF\n",
+ "# (b) RoF\n",
+ "\n",
+ "gm=1e-3# # in mho\n",
+ "rd=20e3# # in ohms\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# From the ac equivalent circuit in Fig. 11.52\n",
+ "RF=10e3# # in ohms\n",
+ "RD1=10e3# # in ohms\n",
+ "RL=10e3# # in ohms\n",
+ "ro=20e3# # in ohms\n",
+ "RS=parallel(0.47e3,RF)# # in ohms\n",
+ "RL2=parallel(ro,parallel(10.47e3,RL))# # in ohms\n",
+ "mu=rd*gm# # Amplification factor\n",
+ "AV1=-mu*RD1/(RD1+rd+(1+mu)*RS)#\n",
+ "AV2=-gm*RL2#\n",
+ "AoL=AV1*AV2#\n",
+ "bta=-0.47/(10+0.47)# # Feedback factor\n",
+ "T=-bta*AoL#\n",
+ "AF=AoL/(1+T)#\n",
+ "print \"T = %0.2f \"%T\n",
+ "print \"AoL = %0.2f \"%AoL\n",
+ "print \"AF = %0.2f \"%AF\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RoD=parallel(ro,10.47e3)# # in ohms\n",
+ "TSC=0# # for RL=0, T=0\n",
+ "ToC=bta*AV1*gm*RoD#\n",
+ "# By Blackman's relation\n",
+ "RoF=RoD*(1+TSC)/(1+ToC)# # in ohms\n",
+ "RoF=RoF*1e-3# # in kilo-ohms\n",
+ "print \"RoF = %0.2f kΩ\"%RoF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.18: Page No 635"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "T = 7.10 \n",
+ "AoL = 180.34 \n",
+ "AF = 22.26 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#T, AoL, AF\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "ICQ1=0.25e-3# # in amperes\n",
+ "ICQ2=-0.5e-3# # in amperes\n",
+ "bta1=200#\n",
+ "VA1=125# # in volts\n",
+ "bta2=150#\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "gm1=ICQ1/VT# # in mho\n",
+ "gm2=abs(ICQ2)/VT# # in mho\n",
+ "r_pi1=bta1/gm1# # in ohms\n",
+ "r_pi2=bta2/gm2# # in ohms\n",
+ "ro1=VA1/ICQ1# # in ohms\n",
+ "# From ac equivalent circuit in Fig. 11.56\n",
+ "RC1=20e3# # in ohms\n",
+ "RS=1e3# # in ohms\n",
+ "bta=-0.82/(20+0.82)# # Feedback factor\n",
+ "RL1=parallel(RC1,ro1)# # in ohms\n",
+ "Ib2_IC1=RL1/(RL1+r_pi2+(1+bta2)*parallel(20e3,0.82e3))# # Ib2/IC1\n",
+ "Ib1_IS=parallel(RS,20.82e3)/(r_pi1+parallel(RS,20.82e3))# # Ib1/IS\n",
+ "AoL=bta2*Ib2_IC1*bta1*Ib1_IS# # Current gain without feedback\n",
+ "T=-bta*AoL#\n",
+ "AF=AoL/(1+T)#\n",
+ "print \"T = %0.2f \"%T\n",
+ "print \"AoL = %0.2f \"%AoL\n",
+ "print \"AF = %0.2f \"%AF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.19: Page No 638"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "AIF = 2.24 \n",
+ "Part (b)\n",
+ "R1F = 56.89 Ω\n",
+ "Part (c)\n",
+ "A1F = 1.92 \n",
+ "Part (d)\n",
+ "AVF = 22.36 \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) AIF\n",
+ "# (b) R1F\n",
+ "# (c) A1F'\n",
+ "# (d) AVF\n",
+ "\n",
+ "btao=50#\n",
+ "r_pi=2e3# # in ohms\n",
+ "# From equivalent circuit without feedback but taking loading effect in Fig. 11.58\n",
+ "RS=1e3# # in ohms\n",
+ "Rf=15e3# # in ohms\n",
+ "RE2=10e3# # in ohms\n",
+ "RC1=10e3# # in ohms\n",
+ "RC2=10e3# # in ohms\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "RS_dash=parallel(RS,Rf+RE2)# # in ohms\n",
+ "gm=btao/r_pi# # in mho\n",
+ "RE2_dash=parallel(RE2,Rf)# # in ohms\n",
+ "Rx=r_pi+(1+btao)*RE2_dash# # in ohms\n",
+ "I2_IS=-gm*parallel(RS_dash,r_pi)*RC1/(RC1+Rx)# # I2/IS\n",
+ "AI=-btao*I2_IS# # Open loop\n",
+ "If_IS=(1+btao)*I2_IS*RE2/(RE2+Rf)# # If/IS\n",
+ "bta=If_IS/AI# # Feedback factor\n",
+ "T=-bta*AI#\n",
+ "AIF=AI/(1+T)#\n",
+ "print \"AIF = %0.2f \"%AIF\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RID=parallel(RS,parallel(Rf+RE2,r_pi))#\n",
+ "R1F=RID/(1+T)# # in ohms\n",
+ "print \"R1F = %0.2f Ω\"%R1F\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "Ii_IS=RS/(RS+parallel(Rf+RE2,r_pi))# # Ii'/IS\n",
+ "AI_dash=AI*Ii_IS#\n",
+ "T=-bta*AI_dash#\n",
+ "A1F_dash=AI_dash/(1+T)#\n",
+ "print \"A1F = %0.2f \"%A1F_dash\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "AVF=AIF*RC2/RS#\n",
+ "print \"AVF = %0.2f \"%AVF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.20: Page No 641"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (b)\n",
+ "AIF = 59.99 \n",
+ "Part (a)\n",
+ "AVF = 59.99 \n",
+ "Part (c)\n",
+ "RIF = 158.17 Ω\n",
+ "Part (d)\n",
+ "ROF = 4.70 kΩ​\n"
+ ]
+ }
+ ],
+ "source": [
+ "#(a) AVF\n",
+ "# (b) AIF\n",
+ "# (c) RIF\n",
+ "# (d) ROF\n",
+ "\n",
+ "btao=50#\n",
+ "r_pi=1.1e3# # in ohms\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "# From equivalent circuit of amplifier without feedback in Fig. 11.60\n",
+ "RS=4.7e3# # in ohms\n",
+ "RF=15e3# # in ohms\n",
+ "RE2=0.1e3# # in ohms\n",
+ "RB1=parallel(91e3,10e3)# # in ohms\n",
+ "RC1=4.7e3# # in ohms\n",
+ "RC2=4.7e3# # in ohms\n",
+ "RB2=RB1# # in ohms\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RL1=parallel(RS,parallel(RF+RE2,RB1))# # in ohms\n",
+ "I1_IS=RL1/(RL1+r_pi)# # I1/IS\n",
+ "IC1_IS=btao*I1_IS# # IC1/IS\n",
+ "Ri2=r_pi+(1+btao)*parallel(RE2,RF)# # in ohms\n",
+ "I2_IS=-IC1_IS*parallel(RC1,RB2)/(parallel(RC1,RB2)+Ri2)# # in ohms\n",
+ "IC2_IS=btao*I2_IS# # IC2/IS\n",
+ "AID=-IC2_IS/2# # Open loop\n",
+ "IF_IS=IC2_IS*RE2/(RE2+RF)# # IF/IS\n",
+ "bta=IF_IS/AID# # Feedback factor\n",
+ "T=-bta*AID#\n",
+ "AIF=AID/(1+T)#\n",
+ "print \"AIF = %0.2f \"%AIF\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "AVF=AIF*RC2/RS#\n",
+ "print \"AVF = %0.2f \"%AVF\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "RID=parallel(parallel(RS,RE2+RF),parallel(RB1,r_pi))# # in ohms\n",
+ "RIF=RID/(1+T)# # in ohms\n",
+ "print \"RIF = %0.2f Ω\"%RIF\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "ROF=RC2*1e-3# # in kilo-ohms\n",
+ "print \"ROF = %0.2f kΩ​\"%ROF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.21: Page No 643"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (c)\n",
+ "T = 18.20 \n",
+ "AF = 0.29 \n",
+ "Part (d)\n",
+ "Voltage gain = -2835.20 \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (c) AF, T\n",
+ "# (d) Voltage gain\n",
+ "\n",
+ "ICQ1=0.25e-3# # in amperes\n",
+ "ICQ2=1e-3# # in amperes\n",
+ "ICQ3=0.5e-3# # in amperes\n",
+ "RC1=5e3# # in ohms\n",
+ "RC2=7.5e3# # in ohms\n",
+ "RC3=10e3# # in ohms\n",
+ "R1=0.2e3# # in ohms\n",
+ "R2=0.33e3# # in ohms\n",
+ "RS=0.6e3# # in ohms\n",
+ "RF=20e3# # in ohms\n",
+ "btao=200#\n",
+ "VA=125# # in volts\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "gm1=ICQ1/VT# # in mho\n",
+ "r_pi1=btao/gm1# # in ohms\n",
+ "ro1=VA/ICQ1# # in ohms\n",
+ "gm2=ICQ2/VT# # in mho\n",
+ "r_pi2=btao/gm2# # in ohms\n",
+ "ro2=VA/ICQ2# # in ohms\n",
+ "gm3=ICQ3/VT# # in mho\n",
+ "r_pi3=btao/gm3# # in ohms\n",
+ "ro3=VA/ICQ3# # in ohms\n",
+ "Rin1=r_pi1+(btao+1)*parallel(RF+R2,R1)# # in ohms\n",
+ "RL1=parallel(RC1,ro1)# # in ohms\n",
+ "RL2=parallel(RC2,ro2)# # in ohms\n",
+ "Rin2=r_pi2# # in ohms\n",
+ "Rin3=r_pi3+(btao+1)*parallel(R2,RF+R1)# # in ohms\n",
+ "Io_Ib3=btao# # Io/Ib3\n",
+ "Ib3_Ic2=-RL2/(RL2+Rin3)# # Ib3/Ic2\n",
+ "Ic2_Ib2=btao# # Ic2/Ib2\n",
+ "Ib2_Ic1=-RL1/(RL1+Rin2)# # Ib2/Ic1\n",
+ "Ic1_Ib1=btao# # Ic1/Ib1\n",
+ "Ib1_VS=1/(RS+Rin1)# # Ib1/VS in mho\n",
+ "AoL=Io_Ib3*Ib3_Ic2*Ic2_Ib2*Ib2_Ic1*Ic1_Ib1*Ib1_VS# # Open loop\n",
+ "bta=-R1*R2/(R1+R2+RF)# # Feedback factor\n",
+ "T=-bta*AoL#\n",
+ "AF=AoL/(1+T)#\n",
+ "print \"T = %0.2f \"%T\n",
+ "print \"AF = %0.2f \"%AF\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "Vo_VS=-AF*parallel(RC3,ro3)#\n",
+ "print \"Voltage gain = %0.2f \"%Vo_VS"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.22: Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AF = -92.84 \n",
+ "RoF = 214.70 Ω\n"
+ ]
+ }
+ ],
+ "source": [
+ "#AF, RoF\n",
+ "\n",
+ "gm=2e-3# # in mho\n",
+ "rd=20e3# # in ohms\n",
+ "RD=12e3# # in ohms\n",
+ "RG=500e3# # in ohms\n",
+ "Rs=50# # in ohms\n",
+ "RF=5e3# # in ohms\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "Ro=parallel(RD,rd)# # in ohms\n",
+ "AV1=-gm*parallel(RD,parallel(rd,RG))#\n",
+ "AV2=AV1#\n",
+ "AV3=-gm*parallel(RD,rd)#\n",
+ "AV=AV1*AV2*AV3#\n",
+ "RG_dash=parallel(RG,RF)# # in ohms\n",
+ "Vi_Vs=RG_dash/(RG_dash+Rs)# # Vi/Vs\n",
+ "AoL=AV*Vi_Vs*RF/(RF+Ro)# # Vo/Vs (Open loop)\n",
+ "bta=1/RF# # Feedback factor\n",
+ "RM=AoL*Rs# # in ohms\n",
+ "T=-bta*RM# # Return ratio\n",
+ "AF=AoL/(1+T)#\n",
+ "RoD=parallel(Ro,RF)# # in ohms\n",
+ "RoF=RoD/(1+T)# # in ohms\n",
+ "print \"AF = %0.2f \"%AF\n",
+ "print \"RoF = %0.2f Ω\"%RoF"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch12_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch12_2.ipynb
new file mode 100644
index 00000000..5164033e
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch12_2.ipynb
@@ -0,0 +1,172 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 12 : Oscillators"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.1: Page No 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "RD = 9.67 kΩ​ \n",
+ "Part (b)\n",
+ "Product RC = 8.12 µs \n",
+ "Part (c)\n",
+ "Reasonable value of R = 50.00 kΩ​ \n",
+ "Reasonable value of C = 162.44 pF \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "# (a) RD\n",
+ "# (b) Product RC\n",
+ "# (c) Reasonable value of R and C\n",
+ "\n",
+ "fo=8e3# # in hertz\n",
+ "mu=59#\n",
+ "rd=10# # in kilo-ohms\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "RD=29*rd/(mu-29)# # in kilo-ohms\n",
+ "print \"RD = %0.2f kΩ​ \"%RD\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RC=1/(2*pi*fo*sqrt(6))# # in seconds\n",
+ "RC=RC*1e6# # in micro-seconds\n",
+ "print \"Product RC = %0.2f µs \"%RC\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "R=50# # in kilo-ohms\n",
+ "C=RC/R# # in nano-farad\n",
+ "C=C*1e3# # in pico-farad\n",
+ "print \"Reasonable value of R = %0.2f kΩ​ \"%R\n",
+ "print \"Reasonable value of C = %0.2f pF \"%C"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.2: Page No 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1 = 10.00 kΩ​ \n",
+ "R2 = 10.00 kΩ​ \n",
+ "R3 = 20.00 kΩ​ \n",
+ "R4 = 10.00 kΩ​ \n",
+ "C1 = 7.96 nF \n",
+ "C2 = 7.96 nF \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#Designing a Wein Bridge Oscillator\n",
+ "\n",
+ "fo=2e3# # in hertz\n",
+ "R=10# # in kilo-ohms\n",
+ "C=1/(2*pi*fo*R*1e3)# # in farads\n",
+ "C=C*1e9# # in nano-farads\n",
+ "print \"R1 = %0.2f kΩ​ \"%R\n",
+ "print \"R2 = %0.2f kΩ​ \"%R\n",
+ "print \"R3 = %0.2f kΩ​ \"%(2*R)\n",
+ "print \"R4 = %0.2f kΩ​ \"%R\n",
+ "print \"C1 = %0.2f nF \"%C\n",
+ "print \"C2 = %0.2f nF \"%C"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.3: Page No 669"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Minimum value of C = 1.81 pF \n",
+ "Maximum value of C = 7.24 pF \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#Range of capacitance\n",
+ "\n",
+ "L1=2e-3# # in henry\n",
+ "L2=1.5e-3# # in henry\n",
+ "fmin=1000e3# # in hertz\n",
+ "fmax=2000e3# # in hertz\n",
+ "Cmin=1/((2*pi*fmax)**2*(L1+L2))# # in farads\n",
+ "Cmax=1/((2*pi*fmin)**2*(L1+L2))# # in farads\n",
+ "Cmin=Cmin*1e12# # in pico-farads\n",
+ "Cmax=Cmax*1e12# # in pico-farads\n",
+ "print \"Minimum value of C = %0.2f pF \"%Cmin\n",
+ "print \"Maximum value of C = %0.2f pF \"%Cmax"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch13_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch13_2.ipynb
new file mode 100644
index 00000000..0a0454a8
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch13_2.ipynb
@@ -0,0 +1,282 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 13 : Power amplifiers and voltage regulators"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.1: Page No 684"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "dc input power = 8.30 W \n",
+ "ac output power = 0.64 W \n",
+ "Efficiency = 7.71 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#dc input power, ac output power, Efficiency\n",
+ "\n",
+ "Ib=5e-3# # Base current in amperes\n",
+ "# From Fig. 13.8\n",
+ "RB=1.5e3# # in ohms\n",
+ "RC=16# # in ohms\n",
+ "bta=40#\n",
+ "VCC=18# # in volts\n",
+ "VBE=0.7# # in volts\n",
+ "IBQ=(VCC-VBE)/RB# # in amperes\n",
+ "ICQ=bta*IBQ# # in amperes\n",
+ "Pi_dc=VCC*ICQ# # dc input power in watts\n",
+ "Ic=bta*Ib# # in amperes\n",
+ "Po_ac=Ic**2*RC# # ac output power\n",
+ "eta=Po_ac*100/Pi_dc# # Efficiency in percentage\n",
+ "print \"dc input power = %0.2f W \"%Pi_dc\n",
+ "print \"ac output power = %0.2f W \"%Po_ac\n",
+ "print \"Efficiency = %0.2f %%\"%eta"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.2: Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Transformer turns ratio = 44.72 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi\n",
+ "#Transformer turns ratio\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "RL=parallel(parallel(16,16),parallel(16,16))# # in ohms\n",
+ "RL_dash=8e3# # in ohms\n",
+ "TR=sqrt(RL_dash/RL)# # Transformer turns ratio\n",
+ "print \"Transformer turns ratio = %0.2f \"%TR"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.3: Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Efficiency = 37.04 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Efficiency\n",
+ "\n",
+ "P_ac=2# # in watts\n",
+ "ICQ=150e-3# # in amperes\n",
+ "VCC=36# # in volts\n",
+ "P_dc=VCC*ICQ# # in watts\n",
+ "eta=P_ac*100/P_dc# # Efficiency in percentage\n",
+ "print \"Efficiency = %0.2f %%\"%eta"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.4: Page No 692"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Maximum input power = 17.90 W \n",
+ "Maximum ac output power = 14.06 W \n",
+ "Maximum conversion efficiency = 78.54 % \n",
+ "Maximum power dissipated by each transistor = 2.85 W \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "#Maximum input power, Maximum ac output power, Maximum conversion efficiency, Maximum power dissipated by each transistor\n",
+ "\n",
+ "VCC=15# # in volts\n",
+ "RL=8# # in ohms\n",
+ "P_dc=2*VCC**2/(pi*RL)# # Maximum input power in watts\n",
+ "P_ac=VCC**2/(2*RL)# # Maximum ac output power in watts\n",
+ "eta=P_ac*100/P_dc# # Maximum efficiency in percentage\n",
+ "PD=2*VCC**2/(pi**2*RL)# # Maximum power dissipated in watts\n",
+ "PD_each=PD/2# # Maximum power dissipated by each transistor in watts\n",
+ "print \"Maximum input power = %0.2f W \"%P_dc\n",
+ "print \"Maximum ac output power = %0.2f W \"%P_ac\n",
+ "print \"Maximum conversion efficiency = %0.2f %% \"%eta\n",
+ "print \"Maximum power dissipated by each transistor = %0.2f W \"%PD_each"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.5: Page No 693"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Supply voltage = 22.89 V \n",
+ "Peak current drawn from each supply = 2.24 A \n",
+ "Total supply power = 32.58 W \n",
+ "Power conversion efficiency = 61.38 % \n",
+ "Maximum power that each transistor can dissipate safely = 6.64 W \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "#Supply voltage, Peak current drawn from each supply, Total supply power, Power conversion efficiency, Maximum power that each transistor can dissipate safely\n",
+ "\n",
+ "P_ac=20# # Average power delivered in watts\n",
+ "RL=8# # Load in ohms\n",
+ "Vm=sqrt(2*P_ac*RL)# # Peak output voltage in volts\n",
+ "VCC=Vm+5# # Supply voltage in volts\n",
+ "Im=Vm/RL# # Peak current drawn from each supply in amperes\n",
+ "P_dc=2*Im*VCC/pi# # Total supply power in watts\n",
+ "eta=P_ac*100/P_dc# # Power conversion efficiency in percentage\n",
+ "PD=2*VCC**2/(pi**2*RL)# # Maximum power dissipated in watts\n",
+ "PD_each=PD/2# # Maximum power dissipated by each transistor in watts\n",
+ "print \"Supply voltage = %0.2f V \"%VCC\n",
+ "print \"Peak current drawn from each supply = %0.2f A \"%Im\n",
+ "print \"Total supply power = %0.2f W \"%P_dc\n",
+ "print \"Power conversion efficiency = %0.2f %% \"%eta\n",
+ "print \"Maximum power that each transistor can dissipate safely = %0.2f W \"%PD_each"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.6: Page No 697"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Thermal resistance = 0.62 °C/mW \n",
+ "Power rating at 70 °C = 128.00 mW \n",
+ "Junction temperature at 100 mW = 112.50 °C \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "\n",
+ "#Thermal resistance, Power rating at 70°C, Junction temperature at 100 mW\n",
+ "\n",
+ "TAo=25# # in °C\n",
+ "PDo=200# # in mili-watts\n",
+ "Tj_max=150# # Maximum junction temperature in °C\n",
+ "T=70# # in °C\n",
+ "P=100# # in mili-watts\n",
+ "TA=50# # Ambient temperature in °C\n",
+ "theta=(Tj_max-TAo)/PDo# # Thermal resistance in °C per mili-watts\n",
+ "PR=(Tj_max-T)/theta# # Power rating at 70 °C in mili-watts\n",
+ "Tj=TA+theta*P# # Junction temperature at 100 mW in °C\n",
+ "print \"Thermal resistance = %0.2f °C/mW \"%theta\n",
+ "print \"Power rating at 70 °C = %0.2f mW \"%PR\n",
+ "print \"Junction temperature at 100 mW = %0.2f °C \"%Tj"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch1_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch1_2.ipynb
new file mode 100644
index 00000000..94caa8a1
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch1_2.ipynb
@@ -0,0 +1,222 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 1 : Semiconductor Physics"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.1: Page No 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Electon concentration = 4.375e+21 cm**-3\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Electron concentration\n",
+ "V=0.1 # Voltage in volts\n",
+ "I=5e-3 # Current in ampere\n",
+ "l_a=7e8 # Length to cross-sectional area ratio in metre inverse\n",
+ "mu=0.05 # Electron mobility in metre square per volt second\n",
+ "q=1.6e-19 # Charge on an electron in coulombs\n",
+ "n=(l_a*I)/(V*q*mu)# #Electron concentration in inverse metres cube\n",
+ "n=n*1e-6# #Electron concentration in inverse centimetres cube\n",
+ "print \"Electon concentration = %0.3e cm**-3\"%n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.2: Page No 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Electic field intensity = 9.20e+06 V/m\n",
+ "Voltage across the bar = 27600.00 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Electric field intensity, Voltage\n",
+ "l=3e-3 # Length of the bar in metres\n",
+ "a=50*10*1e-12 # Cross-sectional area in metres square\n",
+ "I=2e-6 # Current in amperes\n",
+ "rho=2.3e3 # Resistivity in ohm metres\n",
+ "E=I*rho/a # Electric field intensity in volt per metres\n",
+ "V=E*l # Voltage across the bar in volt\n",
+ "print \"Electic field intensity = %0.2e V/m\"%E\n",
+ "print \"Voltage across the bar = %0.2f V\"%V\n",
+ "# ans wrong in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.3: Page No 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Electron concentration = 5e+14 cm**-3\n",
+ "Hole concentration = 4.20e+05 cm**-3\n",
+ "Conductivity of Si sample = 0.12 ohm**-1 cm**-1\n",
+ "Voltage across the bar = 0.10 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Electron concentration, Hole concentration, Conductivity, Voltage\n",
+ "\n",
+ "l=3e-3 # Length on Si sample in metres\n",
+ "a=5e-9 # Cross-sectional area of Si sample in metres square\n",
+ "ND=5e20 # Donor concentration in inverse metres cube\n",
+ "I=2e-6 # Current flowing through the bar in amperes\n",
+ "ni=1.45e16 # Intrinsic carrier concentration in inverse metres cube\n",
+ "mu_n=0.15 # Mobility of electrons in metres square per volt second\n",
+ "q=1.6e-19 # Charge on an electron in coulombs\n",
+ "n=ND # Electron concentration in inverese metres cube\n",
+ "p=ni*ni/n # Hole concentration in inverese metres cube\n",
+ "sigma=q*n*mu_n# # Conductivity of Si sample in inverse ohm metres\n",
+ "V=(I*l)/(a*sigma) # Voltage across the bar in volts\n",
+ "n=n*1e-6 # Electron concentration in inverese centimetres cube\n",
+ "p=p*1e-6 # Hole concentration in inverese centimetres cube\n",
+ "sigma=sigma*0.01 # Conductivity of Si sample in inverse ohm centimetres\n",
+ "print \"Electron concentration = %0.e cm**-3\"%n\n",
+ "print \"Hole concentration = %0.2e cm**-3\"%p\n",
+ "print \"Conductivity of Si sample = %0.2f ohm**-1 cm**-1\"%sigma\n",
+ "print \"Voltage across the bar = %0.2f V\"%V"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.4: Page No 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Contact difference of potential = 752.67 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log\n",
+ "#Contact difference of potential\n",
+ "N=5e22 # Number of acceptor or donor atoms per metres cube of step graded p-n junction\n",
+ "ni=1.45e16 # Intrinsic carrier concentration in inverse metres cube\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "Vo=VT*log(N**2/ni**2) # Contact difference of potential in volts\n",
+ "Vo=Vo*1e3 # Contact difference of potential in milivolts\n",
+ "print \"Contact difference of potential = %0.2f mV\"%Vo"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.7: Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Contact difference of potential = 594.03 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log\n",
+ "#Potential barrier\n",
+ "rho_p=0.05 # Resistivity of p side of step-graded junction in ohm metres\n",
+ "rho_n=0.025 # Resistivity of n side of step-graded junction in ohm metres\n",
+ "mu_p=475e-4 # Mobility of holes in metres square per volt second\n",
+ "mu_n=1500e-4 # Mobility of holes in metres square per volt second\n",
+ "ni=1.45e16 # Intrinsic carrier concentration in atoms per metres cube\n",
+ "q=1.6e-19 # Charge on an electron in coulombs\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "NA=1/(q*mu_p*rho_p) # Acceptor concentration in atoms per metres cube\n",
+ "ND=1/(q*mu_n*rho_n) # Donor concentration in atoms per metres cube\n",
+ "Vo=VT*log(NA*ND/ni**2) # Contact difference of potential in volts\n",
+ "Vo=Vo*1e3 # Contact difference of potential in milivolts\n",
+ "print \"Contact difference of potential = %0.2f mV\"%Vo"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch2_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch2_2.ipynb
new file mode 100644
index 00000000..cc9cc294
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch2_2.ipynb
@@ -0,0 +1,774 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 2 : The p-n junction diode"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.1: Page No 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Labelled current I = 0.38 mA\n",
+ "Labelled voltage Vo = 7.50 V\n",
+ "Part (b)\n",
+ "Labelled current I = 0.00 A\n",
+ "Labelled voltage Vo = -2.50 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#(a) I,Vo\n",
+ "#(b) I,Vo\n",
+ "print \"Part (a)\"\n",
+ "# Applying Thevnin's theorem at XX', in Fig. 2.5(a)\n",
+ "Vth=15*20e3/(10e3+20e3)# # Thevnin equivalent voltage in volts\n",
+ "Zth=10e3*20e3/(10e3+20e3)# # Thevnin equivalent resistance in ohms\n",
+ "# From the figure 2.5(c)\n",
+ "I=Vth/(Zth+20e3)# # Labelled current in amperes\n",
+ "Vo=I*20e3# # Labelled voltage in volts\n",
+ "I=I*1e3# # Labelled current in miliamperes\n",
+ "print \"Labelled current I = %0.2f mA\"%I\n",
+ "print \"Labelled voltage Vo = %0.2f V\"%Vo\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# Applying Thevnin's theorem at XX' and YY', in Fig. 2.5(b)\n",
+ "Vth1=15*10e3/(10e3+10e3)# # Thevnin equivalent voltage at XX' in volts\n",
+ "Zth1=10e3*10e3/(10e3+10e3)# # Thevnin equivalent resistance at YY' in ohms\n",
+ "Vth2=5# # Thevnin equivalent voltage at YY' in volts\n",
+ "Zth2=5e3# # Thevnin equivalent resistance at YY' in ohms\n",
+ "# From the figure 2.5(d)\n",
+ "I=0# # Labelled current in amperes\n",
+ "Vo=5-7.5# # Labelled voltage in volts\n",
+ "print \"Labelled current I = %0.2f A\"%I\n",
+ "print \"Labelled voltage Vo = %0.2f V\"%Vo\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.2: Page No 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Change in diode voltage (for Ge)= 67.70 mV\n",
+ "Change in diode voltage (for Si) = 135.40 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log\n",
+ "#Change in diode voltage\n",
+ "ID1=1# # Let the initial diode current be 1 A\n",
+ "ID2=15*ID1# # Final diode current\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "eta=1# # for Ge\n",
+ "deltaVD=eta*VT*log(ID2/ID1)# # Change in diode voltage in volts\n",
+ "deltaVD=deltaVD*1e3# # Change in diode voltage in milivolts\n",
+ "print \"Change in diode voltage (for Ge)= %0.2f mV\"%deltaVD\n",
+ "eta=2# # for Si\n",
+ "deltaVD=eta*VT*log(ID2/ID1)# # Change in diode voltage in volts\n",
+ "deltaVD=deltaVD*1e3# # Change in diode voltage in milivolts\n",
+ "print \"Change in diode voltage (for Si) = %0.2f mV\"%deltaVD"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.3: Page No 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Voltage = -59.55 mV\n",
+ "Part (b)\n",
+ "Ratio of current in forward bias to that in reverse bias = -6.91 \n",
+ "Part (c)\n",
+ "Forward current for 0.1 V = 467.83 μA\n",
+ "Forward current for 0.1 V = 22.82 mA\n",
+ "Forward current for 0.1 V (A) = 1.09 A\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import exp,log\n",
+ "#(a) Voltage\n",
+ "#(b) Ratio of current in forward bias to that in reverse bias\n",
+ "#(c) Forward current\n",
+ "print \"Part (a)\"\n",
+ "eta=1# # for Ge\n",
+ "T=300# # Room temperature in kelvins\n",
+ "VT=T/11600# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "IS=1# # Let reverse saturation current be 1 A\n",
+ "I=-0.9*IS# # Reverse current\n",
+ "V=eta*VT*log(1+(I/IS))# # Voltagei in volts\n",
+ "V=V*1e3# # Voltage in milivolts\n",
+ "print \"Voltage = %0.2f mV\"%V\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "V=0.05# # Voltage in volts\n",
+ "If_Ir=(exp(V/(eta*VT))-1)/(exp(-V/(eta*VT))-1)# # Ratio of current in forward bias to that in reverse bias\n",
+ "print \"Ratio of current in forward bias to that in reverse bias = %0.2f \"%If_Ir\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "IS=10e-6# # Reverse saturation current in amperes\n",
+ "V=0.1# # Voltage in volts\n",
+ "ID=IS*(exp(V/(eta*VT))-1)# # Forward current for 0.1 V in amperes\n",
+ "ID=ID*1e6# # Forward current for 0.1 V in micro-amperes\n",
+ "print \"Forward current for 0.1 V = %0.2f μA\"%ID\n",
+ "V=0.2# # Voltage in volts\n",
+ "ID=IS*(exp(V/(eta*VT))-1)# # Forward current for 0.1 V in amperes\n",
+ "ID=ID*1e3# # Forward current for 0.1 V in miliamperes\n",
+ "print \"Forward current for 0.1 V = %0.2f mA\"%ID\n",
+ "V=0.3# # Voltage in volts\n",
+ "ID=IS*(exp(V/(eta*VT))-1)# # Forward current for 0.1 V in amperes\n",
+ "print \"Forward current for 0.1 V (A) = %0.2f A\"%ID\n",
+ "# ans is wrong in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.4 : Page No 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Current = -10.00 μA\n",
+ "Part (b)\n",
+ "Current = -5.5067 μA\n",
+ "Part (c)\n",
+ "Current = 1.6275 A\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import exp\n",
+ "from __future__ import division\n",
+ "# (a) Current\n",
+ "# (b) Current\n",
+ "# (C) Current\n",
+ "\n",
+ "IS=10e-6# # Reverse saturation current in amperes\n",
+ "eta=1# # for Ge\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "VD=-24# # Reverse bias in volts\n",
+ "ID=IS*(exp(VD/(eta*VT))-1)# # Current in amperes\n",
+ "ID=ID*1e6# # Current in micro-amperes\n",
+ "print \"Current = %0.2f μA\"%ID\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "VD=-0.02# # Reverse bias in volts\n",
+ "ID=IS*(exp(VD/(eta*VT))-1)# # Current in amperes\n",
+ "ID=ID*1e6# # Current in micro-amperes\n",
+ "print \"Current = %0.4f μA\"%ID\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "VD=0.3# # Forward bias in volts\n",
+ "ID=IS*(exp(VD/(eta*VT))-1)# # Current in amperes\n",
+ "print \"Current = %0.4f A\"%ID"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.5 : Page No 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Change in diode voltage (for Ge) = 0 mV\n",
+ "Change in diode voltage (for Si) = 0 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log\n",
+ "#Change in diode voltage\n",
+ "\n",
+ "T=300# # Operating temperature in kelvins\n",
+ "VT=T/11600# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "ID1=1# # Let the initial diode current be 1 A\n",
+ "ID2=10*ID1# # Final diode current\n",
+ "eta=1# # for Ge\n",
+ "deltaVD=eta*VT*log(ID2/ID1)# # Change in diode voltage in volts\n",
+ "deltaVD=deltaVD*1e3# # Change in diode voltage in milivolts\n",
+ "print \"Change in diode voltage (for Ge) = %0.f mV\"%deltaVD\n",
+ "eta=2# # for Si\n",
+ "deltaVD=eta*VT*log(ID2/ID1)# # Change in diode voltage in volts\n",
+ "deltaVD=deltaVD*1e3# # Change in diode voltage in milivolts\n",
+ "print \"Change in diode voltage (for Si) = %0.f mV\"%deltaVD"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.6: Page No 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R = 20.81 Ω\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import exp,log\n",
+ "## R\n",
+ "\n",
+ "# In the circuit given in Fig. 2.7\n",
+ "V=50e-3# # Output voltage\n",
+ "VD1=0.7# # Voltage across diode 1 in volts\n",
+ "I1=10e-3# # Current through diode 1 at 0.7 V in amperes\n",
+ "VD2=0.8# # Voltage across diode 2 in volts\n",
+ "I2=100e-3# # Current through diode 2 at 0.8 V in amperes\n",
+ "eta_VT=(VD2-VD1)/log(I2/I1)# # Product of η and VT\n",
+ "I=10e-3/(exp(V/eta_VT)+1)# # Current through diode 1 in amperes\n",
+ "R=V/I#\n",
+ "print \"R = %0.2f Ω\"%R"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.7: Page No 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Diode current = 4.3000 mA\n",
+ "Diode voltage = 0.7633 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import exp,log\n",
+ "#Current, Diode voltage\n",
+ "VDD=5# # Applied voltage in volts\n",
+ "VD=0.7# # Diode voltage in volts\n",
+ "I1=1e-3# # Current in amperes at diode voltage = 0.7 V\n",
+ "R=1000# # R in ohms\n",
+ "deltaVD=0.1# # Change in diode voltage in volts for every decade change in current\n",
+ "ratioI=10# # Decade change in current\n",
+ "eta_VT=deltaVD/log(ratioI)# # Product of η and VT\n",
+ "ID=(VDD-VD)/R# # Diode current in amperes\n",
+ "VD2=VD+eta_VT*log(ID/I1)# # Diode voltage in volts\n",
+ "ID=ID*1e3# # Diode current in miliamperes\n",
+ "print \"Diode current = %0.4f mA\"%ID\n",
+ "print \"Diode voltage = %0.4f V\"%VD2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.8: Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Output voltage = 5.00 V Part (b)\n",
+ "Output voltage = 0.864 V\n",
+ "Part (c)\n",
+ "Output voltage = 0.736 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Output voltage\n",
+ "# (b) Output voltage\n",
+ "# (c) Output voltage\n",
+ "\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# Since both the diodes are in OFF state\n",
+ "Vo=5# # Output voltage in volts\n",
+ "print \"Output voltage = %0.2f V\"%Vo,\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "#Since diode D1 is in OFF state and diode D2 is in ON state\n",
+ "# From Fig. 2.16(C)\n",
+ "I=(5-0.6)/(4.7e3+300)# # Current flowing through the diode D2 in amperes\n",
+ "Vo=5-I*4.7e3# # Output voltage in volts\n",
+ "print \"Output voltage = %0.3f V\"%Vo\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "# Since both diodes are in ON state\n",
+ "# Applying KVL in Fig. 2.16(d)\n",
+ "I=(5-0.6)/(2*4.7e3+300)# # Current flowing through diode D1 or diode D2 in amperes\n",
+ "Vo=5-2*I*4.7e3# # Output voltage in volts\n",
+ "print \"Output voltage = %0.3f V\"%Vo"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.9 : Page No 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Output voltage = 2 V\n",
+ "Current through diode D1 = 0 A\n",
+ "Current through diode D2 = 0.62 mA \n",
+ "Part (b)\n",
+ "Output voltage = 4.00 V\n",
+ "Current through diode D1 = 0.63 mA\n",
+ "Current through diode D2 = 0.20 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Output voltage, Diode currents\n",
+ "# (b) Output voltage, Diode currents\n",
+ "\n",
+ "Vy=0.7# # Cut-in voltage in volts\n",
+ "# In the Fig. 2.17\n",
+ "R1=5e3#\n",
+ "R2=10e3#\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# Since diode D1 is OFF and diode D2 is ON\n",
+ "ID2=(5-Vy-(-5))/(R1+R2)# # Current through diode D2 in amperes\n",
+ "Vo=5-ID2*R1# # Output voltage\n",
+ "ID2=ID2*1e3# # Current through diode D2 in miliamperes\n",
+ "print \"Output voltage = %0.f V\"%Vo\n",
+ "print \"Current through diode D1 = %0.f A\"%0\n",
+ "print \"Current through diode D2 = %0.2f mA \"%ID2\n",
+ "print \"Part (b)\"\n",
+ "# Since both the diodes are ON\n",
+ "VA=4-Vy# # In the fig.\n",
+ "Vo=VA+Vy# # Output voltage\n",
+ "ID2=(5-Vo)/R1# # Current through diode D2 in amperes\n",
+ "IR2=(VA-(-5))/R2# # Current through diode R2 in amperes\n",
+ "ID1=IR2-ID2# # Current through diode D1 in amperes\n",
+ "ID1=ID1*1e3# # Current through diode D1 in miliamperes\n",
+ "ID2=ID2*1e3# # Current through diode D2 in miliamperes\n",
+ "print \"Output voltage = %0.2f V\"%Vo\n",
+ "print \"Current through diode D1 = %0.2f mA\"%ID1\n",
+ "print \"Current through diode D2 = %0.2f mA\"%ID2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.11 : Page No 62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Amplitude of alternating component of the voltage across load resistance = 0.20 V\n",
+ "Therefore, the alternating component of the voltage across load resistance is 0.199 sin ωt V\n",
+ "Part (b)\n",
+ "DC component of voltage across load resistance = 8.36 V\n",
+ "Therefore, total voltage across load resistance is (8.36 + 0.199 sin ωt) V\n",
+ "Part (C)\n",
+ "DC component of current across load resistance = 4.18 mA \n",
+ "Amplitude of alternating component of the current across load resistance = 0.10 mA\n",
+ "Therefore, total current across load resistance is (4.18 + 0.099 sin ωt) mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Alternating component of voltage acroos load resistance\n",
+ "# (b) Total voltage across load resistance\n",
+ "# (c) Total current\n",
+ "\n",
+ "T=293# # Operating temperature in kelvins\n",
+ "VT=T/11600# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# In the Fig. 2.21(a)\n",
+ "VAA=9# # in volts\n",
+ "Vm=0.2# # in volts\n",
+ "RL=2e3# # Load resistance in ohms\n",
+ "Vy=0.6# # Cut-in voltage in volts\n",
+ "Rf=10# # Forward resistance of diode in ohms\n",
+ "eta=2#\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# From DC model in Fig. 2.21(b)\n",
+ "IDQ=(VAA-Vy)/(RL+Rf)# # DC current through diode or load resistance in amperes\n",
+ "rd=eta*VT/IDQ# # Dynamic resistance in ohms\n",
+ "# This dynamic resistance is used in AC model in Fig. 2.21(c)\n",
+ "Vom=Vm*RL/(RL+rd)# # Amplitude of alternating component of the voltage across load resistance in volts\n",
+ "print \"Amplitude of alternating component of the voltage across load resistance = %0.2f V\"%Vom\n",
+ "print \"Therefore, the alternating component of the voltage across load resistance is 0.199 sin ωt V\"\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "VDQ=IDQ*RL# # DC component of voltage across load resistance in volts\n",
+ "print \"DC component of voltage across load resistance = %0.2f V\"%VDQ\n",
+ "print \"Therefore, total voltage across load resistance is (8.36 + 0.199 sin ωt) V\"\n",
+ "\n",
+ "print \"Part (C)\"\n",
+ "IDQ=IDQ*1e3# # DC current through load resistance in miliamperes\n",
+ "idm=Vm/(RL+rd)# # Amplitude of alternating component of the current across load resistance in amperes\n",
+ "idm=idm*1e3# # Amplitude of alternating component of the current across load resistance in miliamperes\n",
+ "print \"DC component of current across load resistance = %0.2f mA \"%IDQ\n",
+ "print \"Amplitude of alternating component of the current across load resistance = %0.2f mA\"%idm\n",
+ "print \"Therefore, total current across load resistance is (4.18 + 0.099 sin ωt) mA\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.12: Page No 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (b)\n",
+ "Vo for I= 1 mA = 0.476 mV\n",
+ "Vo for I= 0.1 mA = 3.33 mV\n",
+ "Vo for I= 1 μA = 9.804 mV\n",
+ "Part (c)\n",
+ "I = 50.00 μA\n"
+ ]
+ }
+ ],
+ "source": [
+ "## (b) Vo\n",
+ "#(c) I\n",
+ "\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# In the Fig. 2.22 (a)\n",
+ "vs=10e-3# # in volts\n",
+ "Rs=1e3# # in ohms\n",
+ "eta=2#\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "I=1e-3# # in amperes\n",
+ "Vo=vs*eta*VT/(eta*VT+I*Rs)# # in volts\n",
+ "Vo=Vo*1e3# # in milivolts\n",
+ "print \"Vo for I= 1 mA = %0.3f mV\"%Vo\n",
+ "I=0.1e-3# # in amperes\n",
+ "Vo=vs*eta*VT/(eta*VT+I*Rs)# # in volts\n",
+ "Vo=Vo*1e3# # in milivolts\n",
+ "print \"Vo for I= 0.1 mA = %0.2f mV\"%Vo\n",
+ "I=1e-6# # in amperes\n",
+ "Vo=vs*eta*VT/(eta*VT+I*Rs)# # in volts\n",
+ "Vo=Vo*1e3# # in milivolts\n",
+ "print \"Vo for I= 1 μA = %0.3f mV\"%Vo\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "Vo=vs/2# # in volts\n",
+ "I=eta*VT*(vs-Vo)/(Vo*Rs)# # in amperes\n",
+ "I=I*1e6# # in micro-amperes\n",
+ "print \"I = %0.2f μA\"%I"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.13: Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Barrier capacitance = 70.74 pF\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "#Barrier capacitance\n",
+ "A=1e-3*1e-3# # Area of p-n junction in metres square\n",
+ "W=2e-6# # Space charge thickness in metres\n",
+ "E=16# # Dielectric constant of Ge\n",
+ "Eo=1/(36*pi*1e9)# # Absolute permittivity of air\n",
+ "C=E*Eo*A/W# # Barrier capacitance in farads\n",
+ "C=C*1e12# # Barrier capacitance in pico-farads\n",
+ "print \"Barrier capacitance = %0.2f pF\"%C"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.14: Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Change in capacitance = -0.229 pF\n",
+ "Part (b)\n",
+ "Change in capacitance = 0.276 pF\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "# (a) Change in capacitance\n",
+ "# (b) Change in capacitance\n",
+ "C=4e-12# # Depletion capacitance in farads\n",
+ "V=4# # in volts\n",
+ "K=C*sqrt(V)# # a constant\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "V=4+0.5# # in volts\n",
+ "C_new=K/sqrt(V)# # in farads\n",
+ "deltaC=C_new-C# # Change in capacitande in farads\n",
+ "deltaC=deltaC*1e12# # Change in capacitande in pico-farads\n",
+ "print \"Change in capacitance = %0.3f pF\"%deltaC\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "V=4-0.5# # in volts\n",
+ "C_new=K/sqrt(V)# # in farads\n",
+ "deltaC=C_new-C# # Change in capacitande in farads\n",
+ "deltaC=deltaC*1e12# # Change in capacitande in pico-farads\n",
+ "print \"Change in capacitance = %0.3f pF\"%deltaC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.18: Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Diffusion length = 2.60 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "#Diffusion length\n",
+ "\n",
+ "I=1e-3# # Forward bias current in amperes\n",
+ "C=1e-6# # Diffusion capacitance in farads\n",
+ "Dp=13# # Diffusion constant for Si\n",
+ "eta=2# # for Si\n",
+ "VT=26e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "Lp=sqrt(C*Dp*eta*VT/I)# # Diffusion length in metres\n",
+ "Lp=Lp*1e2# # Diffusion length in centimetres\n",
+ "print \"Diffusion length = %0.2f cm\"%Lp"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.19 : Page No 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Vd1 = 0.0180 V\n",
+ "Vd2 = 4.9820 V\n",
+ "Part (b)\n",
+ "Current in the circuit = 229 μA\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log,exp\n",
+ "# (a) Vd1 and Vd2\n",
+ "# (b) Current in the circuit\n",
+ "\n",
+ "eta_VT=0.026# # Product of η and VT\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# From the Fig. 2.19(a)\n",
+ "Is=5e-6# # Reverse saturation current through diode D2 in amperes\n",
+ "Id1=Is# # Forward current through diode D1 in amperes\n",
+ "Vd1=eta_VT*log(1+(Id1/Is))# # in volts\n",
+ "Vd2=5-Vd1# # in volts\n",
+ "print \"Vd1 = %0.4f V\"%Vd1\n",
+ "print \"Vd2 = %0.4f V\"%Vd2\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# From the Fig. 2.19(b)\n",
+ "Vz=4.9# # Zener voltage in volts\n",
+ "Vd1=5-Vz# # in volts\n",
+ "I=Is*(exp(Vd1/eta_VT)-1)# # Current in the circuit in amperes\n",
+ "I=I*1e6# # Current in the circuit in micro-amperes\n",
+ "print \"Current in the circuit = %0.f μA\"%I"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch3_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch3_2.ipynb
new file mode 100644
index 00000000..6c9484cb
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch3_2.ipynb
@@ -0,0 +1,1724 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 3 : Applications of diodes"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.4: Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "DC load current = 1.20 A\n",
+ "Part (b)\n",
+ "DC power in load = 41.789 W\n",
+ "Part (c)\n",
+ "Rectification efficiency = 0.7836 \n",
+ "Part (d)\n",
+ "Percentage regulation = 3.45 %\n",
+ "Part (e)\n",
+ "PIV for each diode = 113.14 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "from __future__ import division\n",
+ "# (a) DC load current\n",
+ "# (b) DC power in load\n",
+ "# (c) Rectification efficiency\n",
+ "# (d) Percentage regulation\n",
+ "# (e) PIV of each diode\n",
+ "Vrms=40# # Input in volts\n",
+ "Rf=1# # Forward conduction resistance of diodes in ohms\n",
+ "RL=29# # Load resistance in ohms\n",
+ "Vmax=Vrms*sqrt(2)# # in volts\n",
+ "Imax=Vmax/(Rf+RL)# # in amperes\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "Idc=2*Imax/pi# # DC load current in amperes\n",
+ "print \"DC load current = %0.2f A\"%Idc\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "Pdc=Idc**2*RL# # DC power in load in watts\n",
+ "print \"DC power in load = %0.3f W\"%Pdc\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "Pac=Vrms**2/(Rf+RL)# # AC power in load\n",
+ "eta=Pdc/Pac# # Rectification efficiency\n",
+ "print \"Rectification efficiency = %0.4f \"%eta\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "reg=Rf*100/RL# # Percentage regulation\n",
+ "print \"Percentage regulation = %0.2f %%\"%reg\n",
+ "\n",
+ "print \"Part (e)\"\n",
+ "PIV=2*Vmax# # in volts\n",
+ "print \"PIV for each diode = %0.2f V\"%PIV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.5: Page No 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "DC voltage at load = 107.15 V\n",
+ "Part (b)\n",
+ "PIV rating of each diode = 169.71 V\n",
+ "Part (c)\n",
+ "Maximum current through each diode = 168.31 mA\n",
+ "Part (d)\n",
+ "Required power rating = 117.81 mW\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "from __future__ import division\n",
+ "\n",
+ "# (a) DC voltage at load\n",
+ "# (b) PIV rating of each diode\n",
+ "# (c) Maximum current through each diode\n",
+ "# (d) Required power rating\n",
+ "Vrms=120# # Input voltage in volts\n",
+ "RL=1e3# # Load resistance in ohms\n",
+ "Vy=0.7# # Cut-in voltage in volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "Vmax=Vrms*sqrt(2)# # in volts\n",
+ "Imax=(Vmax-2*Vy)/RL# # in amperes\n",
+ "Idc=2*Imax/pi# # in amperes\n",
+ "Vdc=Idc*RL# # in volts\n",
+ "print \"DC voltage at load = %0.2f V\"%Vdc\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "print \"PIV rating of each diode = %0.2f V\"%Vmax\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "Imax=Imax*1e3# # in miliamperes\n",
+ "print \"Maximum current through each diode = %0.2f mA\"%Imax\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "Pmax=Vy*Imax# # Required power rating in mili-watts\n",
+ "print \"Required power rating = %0.2f mW\"%Pmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.6: Page No 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Peak value of current = 0.2178 A\n",
+ "Part (b)\n",
+ "DC value of current = 0.13867 A\n",
+ "Part (C)\n",
+ "Ripple factor = 0.483 \n",
+ "Part (d)\n",
+ "Rectification efficiency = 0.803 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "from __future__ import division\n",
+ "\n",
+ "# (a) Peak value of current\n",
+ "# (b) DC value of current\n",
+ "# (c) Ripple factor\n",
+ "# (d) Rectification efficiency\n",
+ "# From the Fig. 2.16\n",
+ "RL=1e3# # Load resistance in ohms\n",
+ "rd=10# # Forward bias dynamic resistance of diodes in ohms\n",
+ "Vmax=220# # Amplitude of input voltage in volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "Imax=Vmax/(rd+RL)# # Peak value of current in amperes\n",
+ "print \"Peak value of current = %0.4f A\"%Imax\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "Idc=2*Imax/pi# # DC value of current in amperes\n",
+ "print \"DC value of current = %0.5f A\"%Idc\n",
+ "\n",
+ "print \"Part (C)\"\n",
+ "ripl=sqrt((Imax/(Idc*sqrt(2)))**2-1)#\n",
+ "print \"Ripple factor = %0.3f \"%ripl\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "eta=8/(pi**2*(1+(rd/RL)))# # Rectification efficiency\n",
+ "print \"Rectification efficiency = %0.3f \"%eta"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.7: Page No 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Full-scale deflection = 5.5647 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "#Full scale reading\n",
+ "Idc=1e-3# # in amperes\n",
+ "Rf=10# # in ohms\n",
+ "RL=5e3# # in ohms\n",
+ "Vrms=Idc*(RL+Rf)*pi/(2*sqrt(2))# # Full-scale deflection in volts\n",
+ "print \"Full-scale deflection = %0.4f V\"%Vrms"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.8: Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Full-scale deflection = 111.294 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Full-scale reading\n",
+ "Idc=5e-3# # in amperes\n",
+ "Rf=40# # in ohms\n",
+ "RL=20e3# # in ohms\n",
+ "Vrms=Idc*(RL+Rf)*pi/(2*sqrt(2))# # Full-scale deflection in volts\n",
+ "print \"Full-scale deflection = %0.3f V\"%Vrms"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.10: Page No 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Minimum value of zener diode current = 4.00 mA\n",
+ "Maximum value of zener diode current = 19.00 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Minimum and maximum value of zener diode current\n",
+ "# From the Fig. 3.33\n",
+ "Vsmin=120# # in volts\n",
+ "Vsmax=170# # in volts\n",
+ "Vz=50# # in volts\n",
+ "Rs=5e3# # in ohms\n",
+ "RLmin=5e3# # in ohms\n",
+ "RLmax=10e3# # in ohms\n",
+ "ILmin=Vz/RLmax# # in amperes\n",
+ "ILmax=Vz/RLmin# # in amperes\n",
+ "Izmin=((Vsmin-Vz)/Rs)-ILmax# # Minimum value of zener diode current in amperes\n",
+ "Izmin=Izmin*1e3# # Minimum value of zener diode current in miliamperes\n",
+ "Izmax=((Vsmax-Vz)/Rs)-ILmin# # Maximum value of zener diode current in amperes\n",
+ "Izmax=Izmax*1e3# # Maximum value of zener diode current in miliamperes\n",
+ "print \"Minimum value of zener diode current = %0.2f mA\"%Izmin\n",
+ "print \"Maximum value of zener diode current = %0.2f mA\"%Izmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.11: Page No 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "V = 75.00 V\n",
+ "Part (b)\n",
+ "Vmin = 71.67 V\n",
+ "Vmax = 91.67 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) V\n",
+ "# (b) Voltage range of V\n",
+ "\n",
+ "Vz=50# # Zener voltage in volts\n",
+ "Izmin=1e-3# # in amperes\n",
+ "Izmax=5e-3# # in amperes\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "ILmin=0#\n",
+ "Rs=5e3# # in ohms\n",
+ "V=Vz+Rs*(Izmax+ILmin)# # in volts\n",
+ "print \"V = %0.2f V\"%V\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "IL=(50/15)*1e-3# # in amperes\n",
+ "Vmin=Vz+Rs*(Izmin+IL)# # in volts\n",
+ "Vmax=Vz+Rs*(Izmax+IL)# # in volts\n",
+ "print \"Vmin = %0.2f V\"%Vmin\n",
+ "print \"Vmax = %0.2f V\"%Vmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.12: Page No 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Normal situation\n",
+ "Zener diode current = 22.00 mA\n",
+ "Power dissipation in zener diode = 149.60 mW\n",
+ "Power dissipation in resistor = 48.40 mW\n",
+ "Aberrant situation\n",
+ "Zener diode current = 82.00 mA\n",
+ "Power dissipation in zener diode = 557.60 mW\n",
+ "Power dissipation in resistor = 672.40 mW\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Zener diode current, Power dissipation in zener diode and resistor\n",
+ "# In the Fig. 3.35\n",
+ "Vz=6.8# # in volts\n",
+ "R=100# # in ohms\n",
+ "\n",
+ "print \"Normal situation\"\n",
+ "Vs=9# # in volts\n",
+ "I=(Vs-Vz)/R# # in amperes\n",
+ "Pzener=I*Vz# # in watts\n",
+ "Presistor=I**2*R# # in watts\n",
+ "I=I*1e3# # in miliamperes\n",
+ "Pzener=Pzener*1e3# # in miliwatts\n",
+ "Presistor=Presistor*1e3# # in miliwatts\n",
+ "print \"Zener diode current = %0.2f mA\"%I\n",
+ "print \"Power dissipation in zener diode = %0.2f mW\"%Pzener\n",
+ "print \"Power dissipation in resistor = %0.2f mW\"%Presistor\n",
+ "\n",
+ "print \"Aberrant situation\"\n",
+ "Vs=15# # in volts\n",
+ "I=(Vs-Vz)/R# # in amperes\n",
+ "Pzener=I*Vz# # in watts\n",
+ "Presistor=I**2*R# # in watts\n",
+ "I=I*1e3# # in miliamperes\n",
+ "Pzener=Pzener*1e3# # in miliwatts\n",
+ "Presistor=Presistor*1e3# # in miliwatts\n",
+ "print \"Zener diode current = %0.2f mA\"%I\n",
+ "print \"Power dissipation in zener diode = %0.2f mW\"%Pzener\n",
+ "print \"Power dissipation in resistor = %0.2f mW\"%Presistor"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.13: Page No 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ILmin = 52.63 mA\n",
+ "ILmax = 476.32 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Range of load current\n",
+ "Vz=5# # in volts\n",
+ "Izmin=50e-3# # in amperes\n",
+ "Izmax=1# # in amperes\n",
+ "Vmin=7.5# # in volts\n",
+ "Vmax=10# # in volts\n",
+ "Rs=4.75# # in ohms\n",
+ "ILmin=((Vmax-Vz)/Rs)-Izmax# # in amperes\n",
+ "ILmin=ILmin*1e3# # in miliamperes\n",
+ "ILmax=((Vmin-Vz)/Rs)-Izmin# # in amperes\n",
+ "ILmax=ILmax*1e3# # in miliamperes\n",
+ "print \"ILmin = %0.2f mA\"%ILmin\n",
+ "print \"ILmax = %0.2f mA\"%ILmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.14: Page No 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ILmin = 0.00 A\n",
+ "ILmax = 3.10 mA\n",
+ "Redesigned Part\n",
+ "Series resistance = 410.26 Ω\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "from __future__ import division\n",
+ "\n",
+ "## Load-current range, Series resistance in redesigned circuit\n",
+ "# In Fig. 3.37\n",
+ "Vz=6.8# # in volts\n",
+ "Izk=0.1e-3# # in amperes\n",
+ "Vs=10# # in volts\n",
+ "Rs=1e3# # in ohms\n",
+ "ILmax=((Vs-Vz)/Rs)-Izk# # in amperes\n",
+ "ILmax=ILmax*1e3# # in miliamperes\n",
+ "print \"ILmin = %0.2f A\"%0\n",
+ "print \"ILmax = %0.2f mA\"%ILmax\n",
+ "\n",
+ "print \"Redesigned Part\"\n",
+ "RL=1e3# # in ohms\n",
+ "Izk=Izk*10# # in amperes\n",
+ "I=Izk+(Vz/RL)# # in amperes\n",
+ "R=(Vs-Vz)/I# # in ohms\n",
+ "print \"Series resistance = %0.2f Ω\"%R"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.15: Page No 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Series resistance = 4.00 Ω\n",
+ "Part (b)\n",
+ "Power dissipation rating of zener diode = 6.00 W\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Series resistance\n",
+ "# (b) Power dissipation rating of zener diode\n",
+ "# In Fig. 3.38\n",
+ "Vz=6# # in volts\n",
+ "ILmin=0#\n",
+ "ILmax=0.5# # in amperes\n",
+ "Vmin=8# # in volts\n",
+ "Vmax=10# # in volts\n",
+ "Izmin=0#\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "Rs=(Vmin-Vz)/(ILmax+Izmin)# # Series resistance in ohms\n",
+ "print \"Series resistance = %0.2f Ω\"%Rs\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "Izmax=((Vmax-Vz)/Rs)-ILmin# # in amperes\n",
+ "Pzmax=Vz*Izmax# # in watts\n",
+ "print \"Power dissipation rating of zener diode = %0.2f W\"%Pzmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.16: Page No 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Series resistance = 116.36 Ω\n",
+ "Maximum zener current = 110.00 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Series resistance R, Maximum zener current\n",
+ "# In Fig. 3.39\n",
+ "Vz=7.2# # in volts\n",
+ "ILmin=12e-3# # in amperes\n",
+ "ILmax=100e-3# # in amperes\n",
+ "Vs=20# # in volts\n",
+ "Izmin=10e-3# # in amperes\n",
+ "Rs=(Vs-Vz)/(ILmax+Izmin)# # Series resistance in ohms\n",
+ "print \"Series resistance = %0.2f Ω\"%Rs\n",
+ "# For ILmin=0\n",
+ "Izmax=((Vs-Vz)/Rs)# # in amperes\n",
+ "Izmax=Izmax*1e3# # in miliamperes\n",
+ "print \"Maximum zener current = %0.2f mA\"%Izmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.17: Page No 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "R = 3.75 kΩ\n",
+ "Maximum possible value of load current = 35.00 mA\n",
+ "Part (b)\n",
+ "Minimum value of V = 162.50 V\n",
+ "Maximum value of V = 293.75 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) R, maximum possible value of load current\n",
+ "# (b) Range of V\n",
+ "Vz=50# # Diode voltage in volts\n",
+ "Izmin=5e-3# # in amperes\n",
+ "Izmax=40e-3# # in amperes\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "ILmin=0#\n",
+ "V=200# # Input voltage in volts\n",
+ "R=(V-Vz)/(Izmax-ILmin)# # in ohms\n",
+ "ILmax=((V-Vz)/R)-Izmin# # in amperes\n",
+ "Rk=R*1e-3# # in kilo-ohms\n",
+ "ILmax=ILmax*1e3# # in miliamperes\n",
+ "print \"R = %0.2f kΩ\"%Rk\n",
+ "print \"Maximum possible value of load current = %0.2f mA\"%ILmax\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "IL=25e-3#\n",
+ "Vmin=Vz+R*(Izmin+IL)# # in volts\n",
+ "Vmax=Vz+R*(Izmax+IL)# # in volts\n",
+ "print \"Minimum value of V = %0.2f V\"%Vmin\n",
+ "print \"Maximum value of V = %0.2f V\"%Vmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.18: Page No 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R = 400.00 Ω\n",
+ "ILmax = 30.00 mA\n",
+ "Power rating of zener diode = 240.00 mW\n"
+ ]
+ }
+ ],
+ "source": [
+ "#R, ILmax, Power rating of zener diode\n",
+ "# In Fig. 3.41\n",
+ "Vz=6# # in volts\n",
+ "V=22# # in volts\n",
+ "Izmin=10e-3# # in amperes\n",
+ "Izmax=40e-3# # in amperes\n",
+ "ILmin=0#\n",
+ "R=(V-Vz)/(Izmax-ILmin)# # in ohms\n",
+ "ILmax=((V-Vz)/R)-Izmin# # in amperes\n",
+ "P=Izmax*Vz# # Power rating of zener diode in watts\n",
+ "ILmax=ILmax*1e3# # in miliamperes\n",
+ "P=P*1e3# # Power rating of zener diode in mili-watts\n",
+ "print \"R = %0.2f Ω\"%R\n",
+ "print \"ILmax = %0.2f mA\"%ILmax\n",
+ "print \"Power rating of zener diode = %0.2f mW\"%P"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.19: Page No 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "VL = 10.00 V\n",
+ "IL = 55.56 mA\n",
+ "Iz = 12.63 mA\n",
+ "IR = 68.18 mA\n",
+ "Part (b)\n",
+ "RL for maximum power dissipation for zener diode = 354.84 Ω\n",
+ "Part (c)\n",
+ "Maximum value of RL for zener diode to remain ON = 155.81 Ω\n",
+ "If Izmin=0\n",
+ "Maximum value of RL for zener diode to remain ON = 147 Ω\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "from __future__ import division\n",
+ "# (a) VL,IL,Iz,IR\n",
+ "# (b) RL for maximum power dissipation for zener diode\n",
+ "# (c) Maximum value of RL for zener diode to remain ON\n",
+ "# From Fig. 3.42\n",
+ "Vs=25# # in volts\n",
+ "Rs=220# # in ohms\n",
+ "Vz=10# # in volts\n",
+ "Pzmax=400# # in mili-watts\n",
+ "Izmax=Pzmax/Vz# # in miliamperes\n",
+ "Izmin=Izmax*10/100# # in miliamperes\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "RL=180# # in ohms\n",
+ "VL=Vz# # in volts\n",
+ "IL=Vz/RL# # in amperes\n",
+ "IL=IL*1e3# # in miliamperes\n",
+ "IR=(Vs-Vz)/Rs# # in amperes\n",
+ "IR=IR*1e3# # in miliamperes\n",
+ "Iz=IR-IL# # in miliamperes\n",
+ "print \"VL = %0.2f V\"%VL\n",
+ "print \"IL = %0.2f mA\"%IL\n",
+ "print \"Iz = %0.2f mA\"%Iz\n",
+ "print \"IR = %0.2f mA\"%IR\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RL=Vz*1e3/(IR-Izmax)# # in ohms\n",
+ "print \"RL for maximum power dissipation for zener diode = %.2f Ω\"%RL\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "RL=Vz*1e3/(IR-Izmin)# # in ohms\n",
+ "print \"Maximum value of RL for zener diode to remain ON = %0.2f Ω\"%RL\n",
+ "print \"If Izmin=0\"\n",
+ "RL=Vz*1e3/IR# # in ohms\n",
+ "print \"Maximum value of RL for zener diode to remain ON = %0.f Ω\"%RL"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.20: Page No 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Rs <= 1.00 \n",
+ "Rs >= 3.00\n",
+ "To meet the load current variation from 1 A to 10 A a zener of specification Izmin = 0.01 A to Izmax = 5 A cannot meet the requirement for any value of Rs\n",
+ "Minimum value of Rs = 4.00 Ω\n",
+ "Maximum value of Rs = 500.00 Ω\n",
+ "Average wattage of Rs = 100.40 W\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Range and average watage of Rs\n",
+ "# From Fig. 3.43\n",
+ "Vsmin=20# # in volts\n",
+ "Vsmax=30# # in volts\n",
+ "RLmin=1# # in ohms\n",
+ "RLmax=10# # in ohms\n",
+ "Izmin=10e-3# # in amperes\n",
+ "Pzmax=50# # in watts\n",
+ "Vz=10# # in volts\n",
+ "ILmin=Vz/RLmax# # in amperes\n",
+ "ILmax=Vz/RLmin# # in amperes\n",
+ "Izmax=Pzmax/Vz# # in amperes\n",
+ "Rs1=(Vsmin-Vz)/(ILmax+Izmin)# # in ohms\n",
+ "Rs2=(Vsmax-Vz)/(ILmin+Izmax)# # in ohms\n",
+ "print \"Rs <= %0.2f \"%Rs1\n",
+ "print \"Rs >= %0.2f\"%Rs2\n",
+ "print \"To meet the load current variation from 1 A to 10 A a zener of specification Izmin = 0.01 A to Izmax = 5 A cannot meet the requirement for any value of Rs\"\n",
+ "# Let\n",
+ "RLmin=1e3# # in ohms\n",
+ "RLmax=10e3# # in ohms\n",
+ "ILmin=Vz/RLmax# # in amperes\n",
+ "ILmax=Vz/RLmin# # in amperes\n",
+ "Rsmin=(Vsmax-Vz)/(ILmin+Izmax)# # in ohms\n",
+ "Rsmax=(Vsmin-Vz)/(ILmax+Izmin)# # in ohms\n",
+ "print \"Minimum value of Rs = %0.2f Ω\"%Rsmin\n",
+ "print \"Maximum value of Rs = %0.2f Ω\"%Rsmax\n",
+ "Rs=4# # in ohms\n",
+ "W=Rs*(ILmax+Izmax)**2# # in watts\n",
+ "print \"Average wattage of Rs = %0.2f W\"%W"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.21: Page No 146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fc3a072d950>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n3W6OpzzBAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fc386dead10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fc386d47f10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\nRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fc386c7ba10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "from numpy import arange\n",
+ "from math import sin, pi\n",
+ "# (a) Transfer characteristics and output\n",
+ "# (b) Transfer characteristics and output\n",
+ "Vy=0.6# # in volts\n",
+ "Rf=100# # in ohms\n",
+ "\n",
+ "t=arange(-40,40,0.001)\n",
+ "vin=[]\n",
+ "for x in t:\n",
+ " vin.append(40*sin(2*pi*x/80)) # Input voltage in volts\n",
+ "\n",
+ "# Part (a)\n",
+ "# From Fig. 3.49(a)\n",
+ "# Sketching of transfer characteristics\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " \n",
+ " if vin[i]<5.6 :\n",
+ " vo.append(vin[i])# # in volts\n",
+ " else:\n",
+ " ID=(vin[i]-5.6)/(4.9e3+Rf)# # in amperes\n",
+ " vo.append(vin[i]-ID*4.9e3)# # in volts\n",
+ " \n",
+ "\n",
+ "plot(vin,vo)#\n",
+ "title(\"Part (a) - Transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()\n",
+ "\n",
+ "\n",
+ "# Sketching of output\n",
+ "plot(t,vin,\"--\")\n",
+ "plot(t,vo)#\n",
+ "title(\"Part (a) - Output voltage and input voltage\")\n",
+ "xlabel(\"omega_t\")\n",
+ "ylabel(\"vo,vin\")\n",
+ "show()\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Part (b)\n",
+ "# From Fig. 3.49(b)\n",
+ "# Sketching of transfer characteristics\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " \n",
+ " if vin[i]>-0.6:\n",
+ " vo.append(vin[i])# # in volts\n",
+ " else:\n",
+ " ID=(vin[i]+0.6)/(9.9e3+Rf)# # in amperes\n",
+ " vo.append(vin[i]-ID*9.9e3)# # in volts\n",
+ " \n",
+ "plot(vin,vo)#\n",
+ "title(\"Part (b) - Transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()\n",
+ "# Sketching of output\n",
+ "plot(t,vin,\"--\")\n",
+ "plot(t,vo)\n",
+ "title(\"Part (b) - Output voltage and input voltage\")\n",
+ "xlabel(\"omega_t\")\n",
+ "ylabel(\"vo,vin\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.22: Page No 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEZCAYAAAB2AoVaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGOlJREFUeJzt3XmUbWV95vHvc0GUSRFRQaFFWk3bKA5RvLYaCzGiHUxW\n1nIgGgc6XjutJPRtNQ1G2ittcLlW4pC2RdQ4hI5DRwPRNohKKMUhggpyEYwaIYBeBhUQcqOI99d/\n7F1wKKpujfsM+3w/a9W6Z9hnv++769xf7Xrf5+xKVSFJ6rcNo+6AJKl7FntJmgIWe0maAhZ7SZoC\nFntJmgIWe0maAhZ7AZDkS0ketYzt7p7ksiT7DaNfXUny20muSnLzcsa9hnYOTrIjSS/+ryW5JMmv\nreJ1L0xydhd90vL04g3YN0muSLK9LUTXJHl/kj1Xua/ZJL+3xDbPBm6qqm8utb+q+jnwPuCEVfbn\nhe24bm7HuGPg/k9Xs89V+lPgFVW193LG3QftsT5kLfuoqkdU1ReWaOcuP+Cq6q+q6qi1tK21sdiP\npwKOrqq9gccCjwNet5IdpLGh3ddSfh84fQW7/zDwkiR3W0mf4Pb/9Hu3Y3sW8IO5+1V1z8Ftuzob\nThLg3wCXrvL1u6xvj5bd7q7rsZshtr2qttQNi/2Yq6ofAp8GHpFknyT/L8l1SX6S5JNJHji3bXsW\n/8YkXwT+BfhL4CnAO9oz5z+fv/8kuwFHAJ8feOzwJF9JckOSHyb5X4OFvaquBm4AnrjG4d2pGCT5\nQJJTk/xdkluAmSS/keTCJDcluTLJ6we2nzuDfHGSf05yfZLXzhvH19rXXpPkT9vx3gzsAnwzyXfb\nbR+Q5OPtsf1+kj8Y2M+WJB9LcnqSm4CXLHAcd0/yZ+1vZTcmOS/J3Qc2+d2d9HHRY92O7xVtP/+x\nfezt7bG4qR3fkwe235DktUm+l+SnSS5IcmCSubPxb7bvhee22x+d5KK2/S8leeTAvq5I8kdJLgZu\nTrJL+9jTFju+7Uvn2rqx7cPGJC9Nct7Avg9N8tkkP25fe+Ii+/yzu7xrtDpV5deYfQGXA0e2tw8C\nLgHeAOwL/DZwD2Av4P8CZwy8bha4Ang4zQ/yXYFzgf+0k7YOBW6Z99hjgcPbfTyI5gz4+Hnb/C3w\nB2sc5wxw1cD9DwA3Ak9s798deCpwaHv/kcA1wG+19w8GdgCntdseBvwM+JX2+a8AL2xv7wE8YaCt\nHcAh7e0NwNdpfnvaFXgw8E/AM9rntwC3Ar/Z3r/HAmP538DfAwe0+9sI7LaMPu70WLevPRvYB7h7\n+9gLgXu3r/lvwDZgt/a51wAXAw9t7x8G7Dt/zO39xwDXAo+n+cH7Ypr33t3a568AvgE8cKDty4Gn\n7ez4tuPYAWwYaOulwHnt7b3bPm9uj9FewOOX+p75tbYvz+zHU4Azk9wAnEdTxE+pqp9U1RlV9bOq\nugU4haYYzingA1V1WVXtqKrbBva3mH1oznTv2EnVN6rq/HYf/wy8e147tK/ZZ7UDXEQBZ1bVV9p+\n/LyqPl9V32rvbwU+skBf3tBuezHwTWBuwfVW4KFJ9quq7VX11UXafTywX1W9sapuq6rLgfcCxwxs\n8+Wq+kTbj58NvridbjqWpkhva4/bP1TVrTvp46PbfS3nWL+pqm6sZr2EaqbCbmhf8xaaHyK/0m77\nMuCPq+q77bYXV9VPFhn3y4HTquqCavwl8HOaH1TQfD/+vKp+MNf2PIsd36Wmb44GflhVb62qW6vq\nlqq6YIl9ao0s9uOpaM5e711VB1fVcVX18yR7JDmt/VX6Jpqpl3u1c9Bzrlpkf4u5geZM63ZJHtZO\nF21r2/kT4D7zXrd3+9q7SHJLO1Xw0yQHLjHW+e7U/yRPSHJuO71yI/CfF+jLNQO3t9OcKQL8HvAw\n4LIk5yf5jUXafBDwgHYq44b2h+yJwP0Gtrl6J33ej+a3rX/ayTbz+7gnLPtYzz8mr05yaTtddANw\nr7YPAAcu0Y9BDwJeNW/cBwIPWKzteZZ7fOc7CPj+Ou9TS7DYT5ZX0fxHOLyq7kVzBhjufCY1v7Av\ntUD7PZo1ywMGHjuVZjrhIW07f8xd3ysPpzlDvYuq2qvaBddq5vfX4kPAmcCBVbUP8K4F+rKgqvpe\nVb2gqu4LvBn4WJLdF9j0SuDy9ofr3Nc9q+rouV2x8+P4I5qpmYcsc0yDlnOsb287yVNopmqeW1X7\nVNW9gZu44z1w1Qr6cSXwJ/PGvVdVfXShtufbyfFd6j13JbBgKmgF3zOtkMV+suwF/CtwU5J9gdcv\nsM38X6GvBf7tYjtspxo+RzN/PtjOzcD2JP8O+C93aqBZFN4X+IcV9n8pC/36vxdwQ1XdmuRw4AUs\nL2FEkt9Nct/27k3t63YssOn5NAuQf9QutO6S5BFJHreTft2uqnbQxFHfkuSA9vVPTLMYvJSdHusF\n7A3cBvwoyW5J/gcwmGJ6L/A/kzwkjcPa9wrc9b3wHuD320XRJNkzzYL4XizDTo7v9e2/i73vPgUc\nkOT4NJ/b2Lv93q7ke6YVsthPlrcBu9OcSX4ZOIulz+TfDjwnTXrnbYvs9zTgRQP3X01TVH9KM4f8\nkXn7fQHN2sAvVjOInfR3oTPoVwAnp8ngnwR8dN7zOyv8RwGXJLkZeCtwzMDc8+2va4v10TTz6N+n\nKVbv5o4iutSZPTTHbCtwAfBj4E3c8UNiZ69d6ljPf+2n26/v0Cyg/ivNmfKct9As3H+Gpli+h2aK\nCZqF5g+2UzbPqaqvA5uAdwA/Ab5Ls0i73D9yseDxrartNNNRX2rfd09g4BhW1c3ArwPPplmo/Q53\nnGzs7HumNUhVt3+8JMkVNG/kXwK/qKrDO21Qq5ImrvnKWuIDRmnihBcBT6mqHw2lc5LWbBjF/nLg\nV3eSCJAkdWxY0zh+kk6SRmgYxb6Az7Wfits0hPYkSfOsx7U2lvKkqtrWrrB/Nsm3q+q8JV8lSVo3\nnRf7qtrW/nt9kjNoPhp+HkCSbhcMJKmnqmpF0+OdTuO0n/jcu729J/AMmnja7VZ6fYdJ+nr9618/\n8j5M+vh++cti48bitNP6Ob6+f/8cWzdfq9H1mf39gTPaT/PvCvxVVX2m4zbVI+9+N2zYAC972ah7\nIk22Tot9NReUenSXbai/tm2Dk06Cc89tCr6k1fO/UIdmZmZG3YVOdT2+zZth0yZ4xCM6bWZRfv8m\nV5/Htlqdf6hqp40nNcr2Nb7OOguOOw62boU99hh1b6TxkoRa4QLtMKKX0ops3w6vfCWceqqFXlov\nntlr7JxwAlx5JXzoQ6PuiTSePLPXxNu6Fd73Prj44lH3ROoXF2g1NnbsgJe/HN74Rth//1H3RuoX\ni73Ghpl6qTvO2WssbNsGhx3WZOpHFbWUJsVq5uwt9hoLxxwDhxwCp5wy6p5I488FWk2ks86CCy5o\nFmYldcNir5EyUy8Nh9M4Gikz9dLKOY2jiWKmXhoeo5caCTP10nBZ7DUSZuql4XLOXkNnpl5aG3P2\nmghm6qW1cYFWY89MvTQaFnsNjZl6aXScxtHQmKmX1ofTOBpbZuql0TJ6qc6ZqZdGz2Kvzpmpl0bP\nOXt1yky9tP7M2WvsmKmX1p8LtBorZuql8WGxVyfM1EvjxWkcdcJMvdQdp3E0FszUS+PH6KXWlZl6\naTxZ7LWuzNRL48k5e60bM/XScJiz10iZqZeGwwVajYyZemm8Wey1ZmbqpfHnNI7WzEy9NFxjOY2T\nZBfga8DVVfXsrtvTcJmplybDMKKXxwOXAp7C94yZemlydFrskxwI/EfgvcCKfuXQ+DNTL02Orqdx\n3gq8Brhnx+1oyLZtg5NOajL1G/xonjT2Oiv2SY4GrquqC5PMLLbdli1bbr89MzPDzMyim2qMbN4M\nmzb54SlpGGZnZ5mdnV3TPjpL4yQ5BXgRcBtwD5qz+49X1YsHtjGNM4HOOguOO65ZnDVqKQ3f2H6C\nNslTgVfPT+NY7CfP9u3N2fypp8JRR426N9J0Wk2xH+Zsq1W9B04+GTZutNBLk8YPVWnZtm6FI49s\nMvVGLaXRGfcze00wM/XSZLPYa1nM1EuTzWkcLcnr1EvjZWzTOIs2brGfCF6nXhovY3khNE02r1Mv\n9YPFXovyOvVSfziNo0V5nXppPDmNo3XjdeqlfjF6qbswUy/1j8Ved2GmXuof5+x1J2bqpfFnzl5r\nZqZeGn8u0GpNzNRL/WWxF2CmXuo7p3EEmKmXJonTOFoVM/VS/xm9nHJm6qXpYLGfcmbqpengnP0U\nM1MvTSZz9loRM/XSZHKBVstmpl6aLhb7KWSmXpo+TuNMITP10mRzGkdLMlMvTSejl1PETL00vSz2\nU8RMvTS9nLOfEmbqpf4wZ69FmamX+sMFWi3ITL0ki33PmamXBE7j9J6Zeql/nMbRnZiplzTH6GVP\nmamXNMhi31Nm6iUNcs6+h8zUS/02djn7JPcAPg/cHdgN+NuqOnHgeYt9B8zUS/02dgu0VfWzJEdU\n1fYkuwJfTPLkqvpil+1OMzP1khbSeRqnqra3N3cDdgF+0nWb08pMvaTFdL5Am2RDkouAa4Fzq+rS\nrtucViefDBs3wlFHjbonksbNMM7sdwCPTnIv4OwkM1U123W708ZMvaSdGdqHqqrqpiSfAh4HzM49\nvmXLltu3mZmZYWZmZlhd6g0z9VK/zc7OMjs7u6Z9dJ3G2Q+4rapuTLI7cDbwhqo6p33eNM46eNe7\n4PTT4bzzmmy9pH4buzQOcADwwSQbaNYHTp8r9Fof27bBSSc1mXoLvaTF+KGqCWemXpo+43hmrw6Z\nqZe0XBb7CWWmXtJKOI0zobxOvTS9nMaZEmbqJa2U+Y0JY6Ze0mpY7CeM16mXtBrO2U8Qr1MvCcbw\nevZLNm6xXxEz9ZLABdpeM1MvaS0s9hPATL2ktXIaZwKYqZc0yGmcHjJTL2k9GL0cY2bqJa0Xi/0Y\nM1Mvab0sa84+yf7A44ECzq+q69alcefsF2WmXtJiVjNnv+SZfZLnAV8Fngs8Dzg/yXNX10Ut1+bN\nsGmThV7S+ljyzD7JxcDT587mk9wXOKeqDltz457ZL+iss+C445rFWaOWkubrKo0T4PqB+z9uH1MH\nzNRL6sJyiv2ngbOTfIimyD8fOKvTXk2xk0+GjRvhqKNG3RNJfbKcaZxXA9cBj24fOq+qzliXxp3G\nuZOtW+HII5tMvVFLSYvpahpnL+BY4Abgo8CXV9E3LcFMvaQuLZnGqaotVXUo8Epgf+ALSc7pvGdT\nxky9pC6t5HIJ1wHX0CzQ3reb7kynbdvgpJOaTP0GP+YmqQPLydm/IskscA6wH/Cy9Yhd6g5m6iV1\nbTln9gcB/7WqLuq6M9PI69RLGgYvcTxC27c3Z/OnnmrUUtLy+WcJJ4zXqZe0Gl7PfoJ4nXpJw2T2\nYwTM1EsaNov9CJiplzRsztkPmdepl7RWLtBOgGOOgUMOgVNOGXVPJE0qF2jHnJl6SaNisR8Sr1Mv\naZScxhkSM/WS1ovTOGPKTL2kUes0epnkoCTnJvlWkkuS/GGX7Y0jM/WSxkHXZ/a/ADZX1UVJ9gK+\nnuSzVXVZx+2ODTP1ksZBp8W+qq6huQY+VXVLksuABwBTUey9Tr2kcTG0EpTkYOAxwFeH1eaoeZ16\nSeNiKAu07RTOx4Djq+qWYbQ5ambqJY2Tzot9krsBHwf+T1WdOf/5LVu23H57ZmaGmZmZrrvUOTP1\nktbT7Owss7Oza9pHpzn7JAE+CPy4qjYv8Hwvc/Zm6iV1aeyujZPkycAXgIuBuYZOrKpPt8/3rthv\n3QpHHtlk6o1aSurC2BX7JRvvWbHfsQOe9CQ49tgmWy9JXVhNsTcQuI7M1EsaV57ZrxOvUy9pWJzG\nGSGvUy9pWLwQ2oiYqZc07iz2a2SmXtIkcBpnjczUSxo2p3GGzOvUS5oURi9XyevUS5okFvtVMlMv\naZI4Z78KZuoljZI5+yExUy9plFygHQIz9ZImkcV+BczUS5pUTuOsgJl6SePAaZwOmamXNMmMXi6D\nmXpJk85ivwxm6iVNOufsl2CmXtK4MWffATP1ksaNC7TrzEy9pL6w2C/CTL2kPnEaZxFm6iWNK6dx\n1omZekl9Y/RyHjP1kvrIYj+PmXpJfeSc/QAz9ZImgTn7NTJTL2kSuEC7BmbqJfWZxR4z9ZL6z2kc\nzNRLmixO46yCmXpJ02Cqo5dm6iVNi6ku9mbqJU2LqZ2zN1MvaVKZs18BM/WSJpULtMtkpl7StOl0\nzj7J+5Jcm2Rrl+2sxFym/p3vNFMvaXp0vUD7fuCZHbexIiefDBs3wlFHjbonkjQ8nU7jVNV5SQ7u\nso2VMFMvaVpNTfTSTL2kaTbyBdotW7bcfntmZoaZmZlO2jFTL2lSzc7OMjs7u6Z9dB69bKdxPllV\nj1zguaFEL83US+qT1UQvp2IaZ/Nm2LTJQi9penUdvfww8GXgYUmuSnJsl+0tZC5T/7rXDbtlSRof\nvf4E7fbtzdn8qacatZTUH14uYR6vUy+pj7xcwgAz9ZJ0h14u0Jqpl6Q762WxN1MvSXfWuzl7M/WS\n+s4FWrxOvaT+m/oFWq9TL0kL602xn7tO/amnep16SZqvN9M4ZuolTYupncYxUy9JOzfx0Usz9ZK0\ntIkv9mbqJWlpEz1nb6Ze0jSaupy9mXpJ02iqFmjN1EvS8k1ksTdTL0krM5HTOGbqJU2zqZjGMVMv\nSSs3UdFLM/WStDoTVezN1EvS6kzMnL2Zeklq9Dpnb6Zekhq9XaA1Uy9JazP2xd5MvSSt3dhP45ip\nl6Q76900jpl6SVofYxu9NFMvSetnbIu9mXpJWj9jOWdvpl6SFtebnL2ZeklaXC8WaM3US9L6G6ti\nb6ZekroxVtM4ZuolaWkTPY1jpl6SujMW0Usz9ZLUrU6LfZJnJvl2ku8m+e+LbWemXpK61VmxT7IL\n8A7gmcC/B34nycPnb7dtG5x0Epx2WlPw+2R2dnbUXeiU45tsfR5fn8e2Wl2W18OB71XVFVX1C+Aj\nwG/N32jzZti0qZ8fnur7G87xTbY+j6/PY1utLhdoHwhcNXD/auAJ8zcyUy9J3evyzH5Zmc53vtNM\nvSR1rbOcfZKNwJaqemZ7/0RgR1W9eWCb0YX8JWmCjc21cZLsCvwjcCTwQ+B84Heq6rJOGpQkLaqz\nOfuqui3JccDZwC7AX1joJWk0Rnq5BEnScIws2b7cD1xNiiTvS3Jtkq0Dj+2b5LNJvpPkM0n2GWUf\nVyvJQUnOTfKtJJck+cP28b6M7x5JvprkoiSXJnlT+3gvxjcnyS5JLkzyyfZ+b8aX5IokF7fjO799\nrE/j2yfJx5Jc1r5Hn7DS8Y2k2C/3A1cT5v004xl0AvDZqnoYcE57fxL9AthcVYcCG4FXtt+vXoyv\nqn4GHFFVjwYOA45I8mR6Mr4BxwOXckdSrk/jK2Cmqh5TVYe3j/VpfG8H/q6qHk7zHv02Kx1fVQ39\nC3gi8OmB+ycAJ4yiL+s8roOBrQP3vw3cv729P/DtUfdxncZ5JvD0Po4P2AO4ADi0T+MDDgQ+BxwB\nfLJ9rE/juxy4z7zHejE+4F7A9xd4fEXjG9U0zkIfuHrgiPrSpftX1bXt7WuB+4+yM+shycHAY4Cv\n0qPxJdmQ5CKacZxbVd+iR+MD3gq8Btgx8FifxlfA55J8Lcmm9rG+jO/BwPVJ3p/kG0nek2RPVji+\nURX7qVsVrubH70SPO8lewMeB46vq5sHnJn18VbWjmmmcA4FfS3LEvOcndnxJjgauq6oLgQWz2ZM8\nvtaTquoxwLNophmfMvjkhI9vV+CxwDur6rHAvzBvymY54xtVsf8BcNDA/YNozu775tok+wMkOQC4\nbsT9WbUkd6Mp9KdX1Zntw70Z35yqugn4FPCr9Gd8/wH4zSSXAx8GnpbkdPozPqpqW/vv9cAZNNfm\n6sv4rgaurqoL2vsfoyn+16xkfKMq9l8DHprk4CS7Ac8HPjGivnTpE8BL2tsvoZnrnjhJAvwFcGlV\nvW3gqb6Mb7+5JEOS3YFfBy6kJ+OrqtdW1UFV9WDgGODvq+pF9GR8SfZIsnd7e0/gGcBWejK+qroG\nuCrJw9qHng58C/gkKxnfCBcdnkXzCdvvASeOehFkHcbzYZpPCt9Ksx5xLLAvzaLYd4DPAPuMup+r\nHNuTaeZ6L6IpghfSJI/6Mr5HAt9ox3cx8Jr28V6Mb95Ynwp8ok/jo5nTvqj9umSunvRlfO1YHkUT\nHPgm8Dc0i7YrGp8fqpKkKdCzPxciSVqIxV6SpoDFXpKmgMVekqaAxV6SpoDFXpKmgMVemifJAUn+\netT9kNaTOXtJmgKe2WuqJXlTklcM3N+S5FVzf4QmyUuT/E2Ss9o/EvHm0fVWWj2LvabdR4HnDdx/\nLs3lmwc9qt3mkcDzk/Txctzquc7+4Lg0CarqoiT3a68aeD/gBu78txYAzqn2ks5JLqX5IzU/GGpH\npTWy2Evw18BzaP7az0cWeP7nA7d/CewyjE5J68liLzVTOe8F7gP8GrD7Etsv+AdApHHmnL2mXlVd\nCuxF8wci5v7MWw38Oz+yZoRNE8fopSRNAc/sJWkKWOwlaQpY7CVpCljsJWkKWOwlaQpY7CVpCljs\nJWkKWOwlaQr8f7mTno9OLf9JAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f400d614810>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f3ff3efe310>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "from numpy import arange\n",
+ "\n",
+ "# (a) Transfer characteristics\n",
+ "# (b) Transfer characteristics\n",
+ "\n",
+ "t=arange(0,20,0.1) # in mili-seconds\n",
+ "vin=[]\n",
+ "for x in t:\n",
+ " vin.append(30*x/10)# Input voltage in volts\n",
+ "# From Fig. 3.52(b)\n",
+ "# Part {a}\n",
+ "# Sketching of transfer characteristics\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]>25:\n",
+ " vo.append(5)# in volts\n",
+ " else:\n",
+ " IL=vin[i]/(200+50)# # in amperes\n",
+ " vo.append(IL*50) #in volts\n",
+ " \n",
+ "\n",
+ "#plot2d(vin,vo,rect=[0,0,60,6])#\n",
+ "plot(vin,vo)\n",
+ "title(\"Part (a) - Transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()\n",
+ "# Part (b)\n",
+ "# Sketching of transfer characteristics\n",
+ "Vy=0.5# # in volts\n",
+ "Rf=40# # in ohms\n",
+ "VA=5+0.5# # in volts\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]<27.5 :\n",
+ " IL=vin[i]/(200+50)# # in amperes\n",
+ " vo.append(IL*50)# # in volts\n",
+ " else:\n",
+ " IL=(vin[i]+27.5)/500# # in amperes\n",
+ " vo.append(IL*50)# # in volts\n",
+ " \n",
+ "\n",
+ "plot(vin,vo)#\n",
+ "title(\"Part (b) - Transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.23: Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f75418fcf10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\nAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f7527884ed0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Output voltage and transfer characteristic curve\n",
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "from numpy import arange,sin,pi\n",
+ "t=arange(-6,6,0.001)\n",
+ "vin=[]\n",
+ "for x in t:\n",
+ " vin.append(6*sin(2*pi*x/12)) #Input voltage in volts\n",
+ "# Sketching of output voltage\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]>=2:\n",
+ " # From Fig. 3.54(b), D1 ON and D2 OFF\n",
+ " I1=(vin[i]-2)/(10e3+10e3)# # in amperes\n",
+ " vo.append(vin[i]-I1*10e3) # in volts\n",
+ " elif vin[i]>=-4:\n",
+ " # both D1 and D2 OFF\n",
+ " vo.append(vin[i])#\n",
+ " else:\n",
+ " # From Fig. 3.54(c), D1 OFF and D2 ON \n",
+ " vo.append(-4)# # in volts\n",
+ " \n",
+ "\n",
+ "plot(t,vin,\"--\")\n",
+ "plot(t,vo)\n",
+ "title(\"Output voltage and input voltage\")\n",
+ "xlabel(\"omega_t\")\n",
+ "ylabel(\"vo,vin\")\n",
+ "show()\n",
+ "# Sketching of transfer characteristic curve\n",
+ "plot(vin,vo)\n",
+ "title(\"Transfer characteristic curve\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.24: Page No 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nmJOHmZlV7P8DzVRlD6v4PNkAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f2559ab05d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "from numpy import arange\n",
+ "\n",
+ "#Voltage transfer characteristics\n",
+ "vin=arange(-2.5,2.5,0.25)# # Input voltage in volts\n",
+ "# Obtaining thevnin's equivalent circuit on LHS of XX'\n",
+ "V_th=[]\n",
+ "for v in vin:\n",
+ " V_th.append(v*7.5e3/(7.5e3+15e3))# # in volts\n",
+ " \n",
+ "R_th=15e3*7.5e3/(15e3+7.5e3)# # in ohms\n",
+ "# Sketching of voltage transfer characteristics\n",
+ "# From thevnin's equivalent circuit in Fig. 3.55(b)\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]>1.8:\n",
+ " I1=(V_th[i]-0.6)/(5e3+R_th)# # in amperes\n",
+ " vo.append(I1*5e3)# in volts\n",
+ " elif vin[i]>-1.8:\n",
+ " vo.append(0)#\n",
+ " else:\n",
+ " I2=(V_th[i]+0.6)/(4e3+R_th)# # in amperes \n",
+ " vo.append(I2*5e3)# # in volts\n",
+ " \n",
+ "\n",
+ "plot(vin,vo)#\n",
+ "title(\"Voltage transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.25: Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7faeddb62f10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7faec3b05f10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "from numpy import arange,sin,pi\n",
+ "\n",
+ "# (a) Output voltage waveform\n",
+ "# (b) Transfer curve\n",
+ "t=arange(0,12,0.001)\n",
+ "vin=[]\n",
+ "for tt in t:\n",
+ " vin.append(15*sin(2*pi*tt/12)) # Input voltage in volts\n",
+ "# From Fig. 3.56(a)\n",
+ "\n",
+ "# Sketching of output voltage waveform\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]<16/3:\n",
+ " # D1 OFF and D2 ON\n",
+ " I2=(10-3)/(20e3+10e3)# # in amperes\n",
+ " vo.append(10-I2*20e3)# # in volts\n",
+ " elif vin[i]<=10:\n",
+ " # both D1 and D2 ON\n",
+ " vo.append(vin[i])#\n",
+ " else:\n",
+ " # D1 ON and D2 OFF \n",
+ " vo.append(10)# # in volts\n",
+ " \n",
+ "plot(t,vin,\"--\")\n",
+ "plot(t,vo)#\n",
+ "title(\"Output voltage and input voltage\")\n",
+ "xlabel(\"omega_t\")\n",
+ "ylabel(\"vo,vin\")\n",
+ "show()\n",
+ "# Sketching of transfer curve\n",
+ "plot(vin,vo)\n",
+ "title(\"Transfer characteristic curve\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.26: Page No 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f72317dabd0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f72312a2690>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "from numpy import arange\n",
+ "#Transfer characteristics and output and input voltage\n",
+ "T=60# # Let T = 60 seconds\n",
+ "t=range(0,T)#\n",
+ "vin=[]\n",
+ "for tt in t:\n",
+ " vin.append(120*tt/T) # Input voltage in volts\n",
+ "# From Fig. 3.57(a)\n",
+ "# Sketching of transfer characteristics\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]<=15:\n",
+ " # Both D1 and D2 OFF\n",
+ " vo.append(15)# # in volts\n",
+ " elif vin[i]<=105:\n",
+ " # D1 OFF and D2 ON\n",
+ " I2=(vin[i]-15)/(100e3+200e3)# # in amperes\n",
+ " vo.append(vin[i]-I2*100e3)# # in volts\n",
+ " else :\n",
+ " # Both D1 and D2 ON\n",
+ " vo.append(75)# # in volts\n",
+ " \n",
+ "plot(vin,vo)#\n",
+ "title(\"Transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()\n",
+ "# Sketching of output\n",
+ "plot(t,vin,\"--\")\n",
+ "plot(t,vo)#\n",
+ "title(\"Output voltage and input voltage\")\n",
+ "xlabel(\"omega_t\")\n",
+ "ylabel(\"vo,vin\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.27: Page No 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nrkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f723143c8d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "from numpy import arange\n",
+ "#vo vs vin\n",
+ "vin=range(0,500) # Input voltage in volts\n",
+ "# Sketching of vo vs vin\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]<3 :\n",
+ " # From Fig. 3.58(b), D1 ON, D2 and D3 OFF\n",
+ " I1=6/(5e3+5e3)# # in amperes\n",
+ " vo.append(I1*5e3) # in volts\n",
+ " elif vin[i]<9 :\n",
+ " # From Fig. 3.58(c), D1 and D3 ON, D2 OFF\n",
+ " # Applying Kirchoff's laws\n",
+ " vo.append(0.5*vin[i]+1.5) # in volts\n",
+ " elif vin[i]<30:\n",
+ " # From Fig. 3.58(d), D3 ON, D1 and D2 OFF\n",
+ " I3=vin[i]/(2.5e3+5e3) # in amperes \n",
+ " vo.append(I3*5e3) # in volts\n",
+ " else:\n",
+ " # From Fig. 3.58(e), D2 and D3 ON, D1 OFF\n",
+ " # Applying Kirchoff's laws\n",
+ " vo.append(4*vin[i]/7+20/7)# # in volts\n",
+ "\n",
+ "plot(vin,vo)#\n",
+ "title(\"Voltage transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.28: Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 60,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nA37jeq9o8Ir9AAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f7231474650>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "from numpy import arange\n",
+ "#Output voltage\n",
+ "t=range(0,5)# # in seconds\n",
+ "vs=[]\n",
+ "for tt in t:\n",
+ " vs.append(10*tt/5) # Input voltage in volts\n",
+ "# Output voltage\n",
+ "vo=[]\n",
+ "for i in range(0,len(vs)):\n",
+ " if vs[i]<6 :\n",
+ " # Diode is OFF\n",
+ " vo.append(6)# in volts\n",
+ " else:\n",
+ " # From Fig. 3.65(c), Diode is ON\n",
+ " I=(vs[i]-6)/(200+200)# # in amperes\n",
+ " vo.append(6+I*200)# in volts\n",
+ " \n",
+ "plot(t,vo)\n",
+ "title(\"Output voltage\")\n",
+ "xlabel(\"t in ms\")\n",
+ "ylabel(\"vo(t)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.29: Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f7231456890>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "from numpy import arange\n",
+ "#Output voltage\n",
+ "Vy=0.5# # in volts\n",
+ "Rf=50# # in ohms\n",
+ "t=range(0,5) # in seconds\n",
+ "vs=[]\n",
+ "for tt in t:\n",
+ " vs.append(10*tt/5) # Input voltage in volts\n",
+ "# Output voltage\n",
+ "vo=[]\n",
+ "for i in range(0,len(vs)):\n",
+ " if vs[i]<6.5:\n",
+ " # Diode is OFF\n",
+ " vo.append(6)# # in volts\n",
+ " else:\n",
+ " # From Fig. 3.66(a), Diode is ON\n",
+ " I=(vs[i]-6.5)/(200+Rf+200)# # in amperes\n",
+ " vo.append(6+I*2000) # in volts\n",
+ " \n",
+ "\n",
+ "plot(t,vo)\n",
+ "title(\"Output voltage\")\n",
+ "xlabel(\"t in ms\")\n",
+ "ylabel(\"vo(t)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.30: Page No 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 62,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f7231377510>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f722614d390>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "from numpy import arange,sin,pi\n",
+ "\n",
+ "# (a) Output waveform\n",
+ "# (b) Output waveform\n",
+ "t=arange(0,12,0.001)\n",
+ "vin =[]\n",
+ "for tt in t:\n",
+ " vin.append(15*sin(2*pi*tt/12))# # Input voltage in volts\n",
+ "\n",
+ "# Part (a), From Fig. 3.67(a)\n",
+ "vo=[]\n",
+ "for v in vin:\n",
+ " vo.append(v-15)# # in volts\n",
+ "plot(t,vo)#\n",
+ "title(\"Part (a) - Output voltage\")\n",
+ "xlabel(\"t\")\n",
+ "ylabel(\"vo\")\n",
+ "show()\n",
+ "\n",
+ "# Part(b), From Fig. 3.67(b)\n",
+ "vo=[]\n",
+ "for v in vin:\n",
+ " vo.append(v-10)# # in volts\n",
+ "plot(t,vo)#\n",
+ "title(\"Part (b) - Output voltage\")\n",
+ "xlabel(\"t\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.31: Page No 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f507d24a0d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "from numpy import arange,pi\n",
+ "from scipy.signal import square\n",
+ "#Output voltage\n",
+ "t=arange(0,9*pi,0.1)\n",
+ "vin =[]\n",
+ "for tt in t:\n",
+ " vin.append(15*square(tt)-5) # Input wave in volts\n",
+ "vo =[]\n",
+ "for v in vin:\n",
+ " vo.append(v+25) # in volts\n",
+ "plot(t,vo)\n",
+ "title(\"Output voltage\")\n",
+ "xlabel(\"t\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.32: Page No 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nKhdsAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f1272db4ed0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, xlabel, ylabel, show, title\n",
+ "#Output voltage\n",
+ "\n",
+ "t1=range(0,20)\n",
+ "vin1=range(0,20)\n",
+ "t2=range(20,60)\n",
+ "vin2 =[]\n",
+ "for t in t2:\n",
+ " vin2.append(40-t)\n",
+ "\n",
+ "t3=range(60,80)\n",
+ "vin3 =[]\n",
+ "for t in t3:\n",
+ " vin3.append(-80+t)\n",
+ "t=t1+t2+t3#\n",
+ "vin=vin1+vin2+vin3# Input wave in volts\n",
+ "vo=[]\n",
+ "for x in vin:\n",
+ " vo.append(x+25) # in volts\n",
+ "\n",
+ "plot(t,vo)#\n",
+ "title(\"Output voltage\")\n",
+ "xlabel(\"t\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.33: Page No 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f23fb2157d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#vo\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, xlabel, ylabel, show, title\n",
+ "from numpy import arange, sin, pi\n",
+ "t=arange(0,12,0.001)\n",
+ "vin =[]\n",
+ "for tt in t:\n",
+ " vin.append(10*sin(2*pi*tt/4)) # Input voltage in volts\n",
+ "# From Fig. 3.73\n",
+ "vint=[]\n",
+ "for v in vin:\n",
+ " vint.append(v+5)\n",
+ "vo =[]\n",
+ "for i in range(0,len(vint)):\n",
+ " if vint[i]>0 :\n",
+ " # Diode is OFF\n",
+ " vo.append(vint[i]) # in volts\n",
+ " else:\n",
+ " break#\n",
+ " \n",
+ "\n",
+ "for i in range(i,len(vint)):\n",
+ " if vint[i]==-5:\n",
+ " break#\n",
+ " else:\n",
+ " # Diode is ON\n",
+ " vo.append(0)#\n",
+ " \n",
+ "\n",
+ "for i in range(i,len(vint)):\n",
+ " # Capacitor is charged to 5 V\n",
+ " vo.append(vint[i]+5)# # in volts\n",
+ "\n",
+ "plot(t,vo)\n",
+ "title(\"Output voltage\")\n",
+ "xlabel(\"t\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch4_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch4_2.ipynb
new file mode 100644
index 00000000..fb235be8
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch4_2.ipynb
@@ -0,0 +1,441 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 4 : Biplolar Junction Transistors(BJTs)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.1: Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "New value of Ic = 1.10 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#New value of Ic\n",
+ "\n",
+ "VA=100# # Early voltage in volts\n",
+ "VCE_old=1# # in volts\n",
+ "Ic_old=1e-3# # in amperes\n",
+ "VCE_new=11# # in volts\n",
+ "ro=VA/Ic_old# # Output resistance in ohms\n",
+ "Ic_new=(VCE_new-VCE_old+Ic_old*ro)/ro# # in amperes\n",
+ "Ic_new=Ic_new*1e3# # in miliamperes\n",
+ "print \"New value of Ic = %0.2f mA\"%Ic_new"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.2: Page No 201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in active region.\n",
+ "VC = 5.05 V\n",
+ "VE = 3.30 V\n",
+ "VB = 4.00 V\n",
+ "IC = 0.99 mA\n",
+ "IE = 1.00 mA\n",
+ "IB = 0.0099 mA\n",
+ "Since the base is at 4 V and the collector is at 5.05 V, so the collector junction is reverse biased by 1.05 V. The transistor is indeed in forward active region as assumed.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Region of operation, All the node voltages and currents\n",
+ "\n",
+ "betaf=100# # Current gain\n",
+ "print \"Let us assume that the transistor is in active region.\"\n",
+ "VBE_active=0.7# # in volts\n",
+ "# From the equivalent circuit in Fig. 4.18(b)\n",
+ "VCC=10# # in volts\n",
+ "VBB=4# # in volts\n",
+ "RE=3.3e3# # in ohms\n",
+ "RC=5e3# # in ohms\n",
+ "VE=VBB-VBE_active# # in volts\n",
+ "# Writing KVL for base emitter loop and putting Ic= βF*Ib\n",
+ "IB=VE/((1+betaf)*RE)# # in amperes\n",
+ "IB=IB*1e3# # in miliamperes\n",
+ "IC=betaf*IB# # in miliamperes\n",
+ "IE=IB+IC# # in miliamperes\n",
+ "VC=VCC-IC*RC*1e-3# # in volts\n",
+ "print \"VC = %0.2f V\"%VC\n",
+ "print \"VE = %0.2f V\"%VE\n",
+ "print \"VB = %0.2f V\"%VBB\n",
+ "print \"IC = %0.2f mA\"%IC\n",
+ "print \"IE = %0.2f mA\"%IE\n",
+ "print \"IB = %0.4f mA\"%IB\n",
+ "print \"Since the base is at 4 V and the collector is at 5.05 V, so the collector junction is reverse biased by 1.05 V. The transistor is indeed in forward active region as assumed.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.3: Page No 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in active region.\n",
+ "VC = 7.15 V\n",
+ "VE = 2.88 V\n",
+ "VB = 5.00 V\n",
+ "IC = 1.42 mA\n",
+ "IE = 1.44 mA\n",
+ "IB = 0.01 mA\n",
+ "Since base voltage VB is 3.6 V and collector is at 7.2 V, so collector-base junction is reverse biased by 3.6 V. Thus our assumption that the transistor is in active region is valid.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Region of operation, Node currents and voltages\n",
+ "\n",
+ "betaf=100# # Current gain\n",
+ "print \"Let us assume that the transistor is in active region.\"\n",
+ "VBE_active=0.7# # in volts\n",
+ "# From Fig. 4.19\n",
+ "VCC=10# # in volts\n",
+ "VBB=5# # in volts\n",
+ "RB=100e3# # in ohms\n",
+ "RE=2e3# # in ohms\n",
+ "RC=2e3# # in ohms\n",
+ "# Writing KVL to the base circuit and putting Ic= βF*Ib\n",
+ "IB=(VBB-VBE_active)/(RB+(1+betaf)*RE)# # in amperes\n",
+ "IB=IB*1e3# # in miliamperes\n",
+ "IC=betaf*IB# # in miliamperes\n",
+ "IE=IB+IC# # in miliamperes\n",
+ "VB=VBB-IB*RB*1e-3# # in volts\n",
+ "VE=IE*RE*1e-3# # in volts\n",
+ "VC=VCC-IC*RC*1e-3# # in volts\n",
+ "print \"VC = %0.2f V\"%VC\n",
+ "print \"VE = %0.2f V\"%VE\n",
+ "print \"VB = %0.2f V\"%VBB\n",
+ "print \"IC = %0.2f mA\"%IC\n",
+ "print \"IE = %0.2f mA\"%IE\n",
+ "print \"IB = %0.2f mA\"%IB\n",
+ "print \"Since base voltage VB is 3.6 V and collector is at 7.2 V, so collector-base junction is reverse biased by 3.6 V. Thus our assumption that the transistor is in active region is valid.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.4: Page No 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in saturation region.\n",
+ "Minimum IB required to saturate the transistor = 0.049 mA\n",
+ "IB in the circuit = 0.084 mA\n",
+ "Since IB in the circuit is calculated as 0.084 mA, so it is greater than IB,min. Thus the transistor is indeed in saturation mode.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Region of operation\n",
+ "\n",
+ "betaf=100# # Current gain\n",
+ "print \"Let us assume that the transistor is in saturation region.\"\n",
+ "VBE_sat=0.8# # in volts\n",
+ "VCE_sat=0.2# # in volts\n",
+ "# From Fig. 4.21\n",
+ "VCC=10# # in volts\n",
+ "VBB=5# # in volts\n",
+ "RB=50e3# # in ohms\n",
+ "RC=2e3# # in ohms\n",
+ "# From the base loop\n",
+ "IB=(VBB-VBE_sat)/RB# # in amperes\n",
+ "IB=IB*1e3# # in miliamperes\n",
+ "IC_sat=(VCC-VCE_sat)/RC# # in amperes\n",
+ "IC_sat=IC_sat*1e3# # in miliamperes\n",
+ "IB_min=IC_sat/betaf# # in miliamperes\n",
+ "print \"Minimum IB required to saturate the transistor = %0.3f mA\"%IB_min\n",
+ "print \"IB in the circuit = %0.3f mA\"%IB\n",
+ "print \"Since IB in the circuit is calculated as 0.084 mA, so it is greater than IB,min. Thus the transistor is indeed in saturation mode.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.5: Page No 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Value of RB so as to drive the transistor into saturation = 2.14 kΩ\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Value of RB so as to drive the transistor into saturation\n",
+ "\n",
+ "bta=50# # Current gain\n",
+ "VBE_sat=0.8# # in volts\n",
+ "VCE_sat=0.2# # in volts\n",
+ "# From Fig. 4.22\n",
+ "VCC=10# # in volts\n",
+ "VBB=5# # in volts\n",
+ "RC=1e3# # in ohms\n",
+ "IC_sat=(VCC-VCE_sat)/RC# # in amperes\n",
+ "IB_min=IC_sat/bta# # Minimum base current in amperes to saturate the transistor\n",
+ "# Then base current can be taken as\n",
+ "IB=10*IB_min# # in amperes\n",
+ "RB=(VBB-VBE_sat)/IB# # in ohms\n",
+ "RB=RB*1e-3# # in kilo-ohms\n",
+ "print \"Value of RB so as to drive the transistor into saturation = %0.2f kΩ\"%RB"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.6: Page No 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in active region.\n",
+ "Vo1 = -1.36 V\n",
+ "Vo2 = 4.06 V\n",
+ "Voltage at base = 3.36 V\n",
+ "As base voltage, VB is 3.36 V and voltage at collector is -1.4 V, collector base junction is reverse biased. Thus the transistor is indeed in active region as assumed.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Vo1, Vo2\n",
+ "\n",
+ "betaf=100# # Current gain\n",
+ "print \"Let us assume that the transistor is in active region.\"\n",
+ "VBE_active=-0.7# # in volts\n",
+ "# From Fig. 4.23\n",
+ "VCC=-10# # in volts\n",
+ "VEE=10# # in volts\n",
+ "VBB=2.5# # in volts\n",
+ "RE=6.8e3# # in ohms\n",
+ "RB=100e3# # in ohms\n",
+ "RC=10e3# # in ohms\n",
+ "# Writing KVL for base-emitter circuit and putting Ic= βF*Ib\n",
+ "IB=(VEE-VBB+VBE_active)/(RB+(1+betaf)*RE)# # in amperes\n",
+ "\n",
+ "IC=betaf*IB# # in amperes\n",
+ "IE=IB+IC# # in amperes\n",
+ "Vo1=VCC+IC*RC# # in volts\n",
+ "Vo2=VEE-IE*RE# # in volts\n",
+ "VB=VBB+IB*RB# # in volts\n",
+ "print \"Vo1 = %0.2f V\"%Vo1\n",
+ "print \"Vo2 = %0.2f V\"%Vo2\n",
+ "print \"Voltage at base = %0.2f V\"%VB\n",
+ "print \"As base voltage, VB is 3.36 V and voltage at collector is -1.4 V, collector base junction is reverse biased. Thus the transistor is indeed in active region as assumed.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.7: Page No 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in active region.\n",
+ "When current gain = 50\n",
+ "Value of RC to obtain VC = +5 V = 1.08 kΩ When current gain = 100\n",
+ "Collector voltage = 10.00 V\n",
+ "Since collector voltage is greater than the base voltage, the transistor goes into saturation as collector junction gets forward biased.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Value of RC to obtain VC = +5 V\n",
+ "\n",
+ "betaf=50# # Current gain\n",
+ "print \"Let us assume that the transistor is in active region.\"\n",
+ "print \"When current gain = 50\"\n",
+ "VBE_active=-0.7# # in volts\n",
+ "# From Fig. 4.24\n",
+ "VC=5# # in volts\n",
+ "VEE=10# # in volts\n",
+ "RB=100e3# # in ohms\n",
+ "# Writing KVL for base circuit and putting Ic= βF*Ib\n",
+ "IB=(VEE+VBE_active)/RB# # in amperes\n",
+ "IC=IB*betaf# # in amperes\n",
+ "RC=VC/IC# # in ohms\n",
+ "RC=RC*1e-3# # in kilo-ohms\n",
+ "print \"Value of RC to obtain VC = +5 V = %0.2f kΩ\"%RC,\n",
+ "print \"When current gain = 100\"\n",
+ "IC=IB*100# # in amperes\n",
+ "VC=IC*RC*1e3# # in volts\n",
+ "print \"Collector voltage = %0.2f V\"%VC\n",
+ "print \"Since collector voltage is greater than the base voltage, the transistor goes into saturation as collector junction gets forward biased.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.8: Page No 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in active region.\n",
+ "IC = 0.85 mA\n",
+ "IE = 0.86 mA\n",
+ "IB = 0.01 mA\n",
+ "I1 = 0.04 mA\n",
+ "I2 = 0.04 mA\n",
+ "VC = -1.49 V\n",
+ "VE = 4.16 V\n",
+ "VB = 2.50 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#:Labelled voltages and currents\n",
+ "\n",
+ "betaf=100# # Current gain\n",
+ "print \"Let us assume that the transistor is in active region.\"\n",
+ "VBE_active=-0.7# # in volts\n",
+ "# From Fig. 4.25(a)\n",
+ "VCC=-10# # in volts\n",
+ "VEE=10# # in volts\n",
+ "RE=6.8e3# # in ohms\n",
+ "RC=10e3# # in ohms\n",
+ "R1=300e3# # in ohms\n",
+ "R2=180e3# # in ohms\n",
+ "# Applying Thevnin's theorem at point B\n",
+ "R_th=R1*R2/(R1+R2)# # in ohms\n",
+ "V_th=VEE-(R2*(VEE-VCC)/(R1+R2))# # in volts\n",
+ "# From the Thevnin equivalent circuit in Fig. 4.25(b)\n",
+ "# Writing KVL for base-emitter circuit and putting Ic= βF*Ib\n",
+ "IB=(VEE-V_th+VBE_active)/(R_th+(1+betaf)*RE)# # in amperes\n",
+ "IB=IB*1e3# # in miliamperes\n",
+ "IC=betaf*IB# # in miliamperes\n",
+ "IE=IB+IC# # in miliamperes\n",
+ "VC=VCC+IC*RC*1e-3# # in volts\n",
+ "VE=VEE-IE*RE*1e-3# # in volts\n",
+ "VB=V_th+IB*R_th*1e-3# # in volts\n",
+ "I1=(VEE-VB)/R2# # in amperes\n",
+ "I1=I1*1e3# # in miliamperes\n",
+ "I2=I1+IB# # in miliamperes\n",
+ "print \"IC = %0.2f mA\"%IC\n",
+ "print \"IE = %0.2f mA\"%IE\n",
+ "print \"IB = %0.2f mA\"%IB\n",
+ "print \"I1 = %0.2f mA\"%I1\n",
+ "print \"I2 = %0.2f mA\"%I2\n",
+ "print \"VC = %0.2f V\"%VC\n",
+ "print \"VE = %0.2f V\"%VE\n",
+ "print \"VB = %0.2f V\"%VBB\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.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch5_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch5_2.ipynb
new file mode 100644
index 00000000..cde23915
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch5_2.ipynb
@@ -0,0 +1,859 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 5 : BJT biasing (Q point) and stability"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.1: Page No 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "RB = 282.50 kΩ \n",
+ "RC = 1.875 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#RB, RC\n",
+ "\n",
+ "IB=40e-6# # in amperes\n",
+ "VCE=6# # in volts\n",
+ "VCC=12# # in volts\n",
+ "betaf=80#\n",
+ "VBE=0.7# # in volts\n",
+ "RB=(VCC-VBE)/IB# # in ohms\n",
+ "RC=(VCC-VCE)/(betaf*IB)# # in ohms\n",
+ "RB=RB*1e-3# # in kilo-ohms\n",
+ "RC=RC*1e-3# # in kilo-ohms\n",
+ "print \"RB = %0.2f kΩ \"%RB\n",
+ "print \"RC = %0.3f kΩ \"%RC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.2: Page No 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VCEQ = 4.50 V \n",
+ "ICQ = 1.98 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#VCEQ, ICQ\n",
+ "\n",
+ "VBE=0.7# # in volts\n",
+ "betaf=50#\n",
+ "# From Fig. 5.11(a)\n",
+ "VCC=18# # in volts\n",
+ "R1=82e3# # in ohms\n",
+ "R2=22e3# # in ohms\n",
+ "RC=5.6e3# # in ohms\n",
+ "RE=1.2e3# # in ohms\n",
+ "# Using Thevnin's theorem to obtain equivalent circuit given in Fig. 5.11(b)\n",
+ "VBB=R2*VCC/(R1+R2)# # in volts\n",
+ "RB=R1*R2/(R1+R2)# # in ohms\n",
+ "IB=(VBB-VBE)/(RB+(1+betaf)*RE)# # in amperes\n",
+ "IC=betaf*IB# # in amperes\n",
+ "VCE=VCC-IC*(RC+RE)-IB*RE# # in volts\n",
+ "IC=IC*1e3# # in mili-amperes\n",
+ "print \"VCEQ = %0.2f V \"%VCE\n",
+ "print \"ICQ = %0.2f mA \"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.3: Page No 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1 = 80.00 kΩ \n",
+ "R2 = 40.00 kΩ \n",
+ "RC = 4.00 kΩ \n",
+ "RE = 3.30 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#R1, R2, RC, RE\n",
+ "\n",
+ "IC=1e-3# # in amperes\n",
+ "VCC=12# # in volts\n",
+ "betaf=100#\n",
+ "VBE=0.7# # in volts\n",
+ "# As suggested in the design constraints, allocate 1/3VCC to RC, another 1/3VCC to R2 leaving 1/3VCC for VCEQ.\n",
+ "VB=4# # in volts\n",
+ "VE=VB-VBE# # in volts\n",
+ "# Neglecting base current,\n",
+ "RE=VE/IC# # in ohms\n",
+ "# Select the current through R1R2 equal to 0.1IC\n",
+ "R1_plus_R2=VCC/(0.1*IC)# # in ohms\n",
+ "R2=VB*R1_plus_R2/VCC# # in ohms\n",
+ "R1=R1_plus_R2-R2# # in ohms\n",
+ "RC=VCC/(3*IC)# # in ohms\n",
+ "R1=R1*1e-3# # in kilo-ohms\n",
+ "R2=R2*1e-3# # in kilo-ohms\n",
+ "RC=RC*1e-3# # in kilo-ohms\n",
+ "RE=RE*1e-3# # in kilo-ohms\n",
+ "print \"R1 = %0.2f kΩ \"%R1\n",
+ "print \"R2 = %0.2f kΩ \"%R2\n",
+ "print \"RC = %0.2f kΩ \"%RC\n",
+ "print \"RE = %0.2f kΩ \"%RE"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.4: Page No 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VCEQ = 4.52 V \n",
+ "ICQ = 3.735 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#VCEQ, ICQ\n",
+ "\n",
+ "VBE=0.7# # in volts\n",
+ "betaf=45#\n",
+ "# From Fig. 5.14\n",
+ "VEE=9# # in volts\n",
+ "RB=100e3# # in ohms\n",
+ "RC=1.2e3# # in ohms\n",
+ "# Applying KVL in the clockwise direction base emitter loop\n",
+ "IB=(VEE-VBE)/RB# # in amperes\n",
+ "IC=betaf*IB# # in amperes\n",
+ "# Writing KVL for the collector loop\n",
+ "VCE=VEE-IC*RC# # in volts\n",
+ "IC=IC*1e3# # in mili-amperes\n",
+ "print \"VCEQ = %0.2f V \"%VCE\n",
+ "print \"ICQ = %0.3f mA \"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.5: Page No 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VCEQ = 20.84 V \n",
+ "ICQ = 4.24 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#VCEQ, ICQ\n",
+ "\n",
+ "VBE=0.7# # in volts\n",
+ "betaf=120#\n",
+ "# From Fig. 5.15\n",
+ "VCC=20# # in volts\n",
+ "VEE=20# # in volts\n",
+ "R1=8.2e3# # in ohms\n",
+ "R2=2.2e3# # in ohms\n",
+ "RC=2.7e3# # in ohms\n",
+ "RE=1.8e3# # in ohms\n",
+ "# Using Thevnin's theorem to obtain equivalent circuit given in Fig. 5.16(b)\n",
+ "RB=R1*R2/(R1+R2)# # in ohms\n",
+ "# From Fig. 5.16(a)\n",
+ "I=(VCC+VEE)/(R1+R2)# # in amperes\n",
+ "VBB=I*R2-VEE# # in volts\n",
+ "# Writing KVL for the base emitter loop and putting Ic= βF*Ib gives\n",
+ "IB=(VEE+VBB-VBE)/(RB+(1+betaf)*RE)# # in amperes\n",
+ "IC=betaf*IB# # in amperes\n",
+ "# KVL for the collector loop gives\n",
+ "VCE=VCC+VEE-IC*(RC+RE)-IB*RE# # in volts\n",
+ "IC=IC*1e3# # in mili-amperes\n",
+ "print \"VCEQ = %0.2f V \"%VCE\n",
+ "print \"ICQ = %0.2f mA \"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.6: Page No 233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "RF so that IE=+2 mA = 106.53 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#RF so that IE=+2 mA\n",
+ "\n",
+ "IE=2e-3# # in amperes\n",
+ "VBE=0.7# # in volts\n",
+ "betaf=49#\n",
+ "# From Fig. 5.17\n",
+ "VCC=12# # in volts\n",
+ "RB=25e3# # in ohms\n",
+ "RC=2e3# # in ohms\n",
+ "I1=VBE/RB# # in amperes\n",
+ "IB=IE/(1+betaf)# # in amperes\n",
+ "# KVL for the indicated loop gives\n",
+ "RF=(VCC-RC*(I1+(1+betaf)*IB)-VBE)/(I1+IB)# # in ohms\n",
+ "RF=RF*1e-3# # in kilo-ohms\n",
+ "print \"RF so that IE=+2 mA = %0.2f kΩ \"%RF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.7: Page No 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "RC = 0.587 kΩ \n",
+ "RE = 0.292 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#RCQ, RE\n",
+ "\n",
+ "VCEQ=3# # in volts\n",
+ "VBE=0.7# # in volts\n",
+ "betaf=200#\n",
+ "# From Fig. 5.18(a)\n",
+ "VCC=6# # in volts\n",
+ "VEE=6# # in volts\n",
+ "R1=90e3# # in ohms\n",
+ "R2=90e3# # in ohms\n",
+ "# Using Thevnin's theorem to obtain equivalent circuit given in Fig. 5.18(b)\n",
+ "RB=R1*R2/(R1+R2)# # in ohms\n",
+ "VBB=R2*(VCC+VEE)/(R1+R2)# # in volts\n",
+ "# In the output loop\n",
+ "x=VEE-VCEQ# # x = (IC+IB)RE in volts\n",
+ "# Applying KVL in the base emitter loop\n",
+ "IB=(VEE-VBE-x)/RB# # in amperes\n",
+ "IC=betaf*IB# # in amperes\n",
+ "# In the output loop\n",
+ "RC=VCC/IC# # in ohms\n",
+ "RE=x/(IC+IB)# # in ohms\n",
+ "RC=RC*1e-3# # in kilo-ohms\n",
+ "RE=RE*1e-3# # in kilo-ohms\n",
+ "print \"RC = %0.3f kΩ \"%RC\n",
+ "print \"RE = %0.3f kΩ \"%RE"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.8: Page No 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VCEQ = -10.7 V \n"
+ ]
+ }
+ ],
+ "source": [
+ "#VCEQ\n",
+ "\n",
+ "VBE=-0.7# # in volts\n",
+ "betaf=120#\n",
+ "# From Fig. 5.19(a)\n",
+ "VCC=18# # in volts\n",
+ "R1=47e3# # in ohms\n",
+ "R2=10e3# # in ohms\n",
+ "RC=2.4e3# # in ohms\n",
+ "RE=1.1e3# # in ohms\n",
+ "# Using Thevnin's theorem to obtain equivalent circuit given in Fig. 5.19(b)\n",
+ "VBB=R2*VCC/(R1+R2)# # in volts\n",
+ "RB=R1*R2/(R1+R2)# # in ohms\n",
+ "# Applying KVL in the base emitter loop and putting Ic= βF*Ib\n",
+ "IB=(VBB+VBE)/(RB+(1+betaf)*RE)# # in amperes\n",
+ "IC=betaf*IB# # in amperes\n",
+ "# In the collector emitter loop\n",
+ "VCE=-VCC+IC*(RC+RE)+IB*RE# # in volts\n",
+ "print \"VCEQ = %0.1f V \"%VCE"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.9 : Page No 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "RB = 121.19 kΩ \n",
+ "Part (ii)\n",
+ "Stability factor = 10.23 \n",
+ "Part (iii)\n",
+ "IC at 100°C = 1.77 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (i) RB\n",
+ "# (ii) Stability factor\n",
+ "# (iii) IC at 100°C\n",
+ "\n",
+ "bta=50#\n",
+ "VBE=0.7# # in volts\n",
+ "VCE=5# # in volts\n",
+ "# From Fig. 5.21\n",
+ "VCC=24# # in volts\n",
+ "RC=10e3# # in ohms\n",
+ "RE=500# # in ohms\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "# Applying KVL to the collector emitter circuit and putting Ic= βF*Ib\n",
+ "IB=(VCC-VCE)/((RC+RE)*(bta+1))# # in amperes\n",
+ "IC=bta*IB# # at 25°C in amperes\n",
+ "RB=(VCE-VBE)/IB# # in ohms\n",
+ "RB=RB*1e-3# # in kilo-ohms\n",
+ "print \"RB = %0.2f kΩ \"%RB\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "S=(1+bta)/(1+bta*(RC+RE)/(RC+RE+RB*1e3))# # Stability factor\n",
+ "print \"Stability factor = %0.2f \"%S\n",
+ "\n",
+ "print \"Part (iii)\"\n",
+ "# From Table 5.1\n",
+ "del_ICO=(20-0.1)*1e-9# # in amperes\n",
+ "del_IC=S*del_ICO# # in amperes\n",
+ "IC=IC+del_IC# # at 100°C in amperes\n",
+ "IC=IC*1e3# # at 100°C in mili-amperes\n",
+ "print \"IC at 100°C = %0.2f mA \"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.10: Page No 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "S(ICO) for RB/RE=10, 10.0\n",
+ "Change in IC = 0.199 μA \n",
+ "Part (ii)\n",
+ "S(VBE) for (RB = 240 kΩ, RE = 1 kΩ) = -2.933e-04 \n",
+ "Change in IC = 50 μA \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (i) S(ICO) for RB/RE=10 and change in IC\n",
+ "# (ii) S(VBE) for RB = 240 kΩ, RE = 1 kΩ and change in IC\n",
+ "\n",
+ "bta=100#\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "RB_RE=10# # RB/RE\n",
+ "S_ICO=(1+bta)*(1+RB_RE)/(1+bta+RB_RE)#\n",
+ "# From Table 5.1\n",
+ "del_ICO=(20-0.1)*1e-9# # in amperes\n",
+ "del_IC=S_ICO*del_ICO# # in amperes\n",
+ "del_IC=del_IC*1e6# # in micro-amperes\n",
+ "print \"S(ICO) for RB/RE=10, \",round(S_ICO,2)\n",
+ "print \"Change in IC = %0.3f μA \"%del_IC\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "RB=240e3# # in kilo-ohms\n",
+ "RE=1e3# # in kilo-ohms\n",
+ "S_VBE=-bta/(RB+(1+bta)*RE)#\n",
+ "# From Table 5.1\n",
+ "del_VBE=0.48-0.65# # in volts\n",
+ "del_IC=S_VBE*del_VBE# # in amperes\n",
+ "del_IC=del_IC*1e6# # in micro-amperes\n",
+ "print \"S(VBE) for (RB = 240 kΩ, RE = 1 kΩ) = %0.3e \"%S_VBE\n",
+ "print \"Change in IC = %0.f μA \"%del_IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.11: Page No 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "S(β) = 4.84e-06 \n",
+ "IC at 100°C = 2.145 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#S(β), IC at 100°C\n",
+ "\n",
+ "IC=2e-3# # at 25°C in amperes\n",
+ "# From Table 5.1\n",
+ "bta1=50# # at 25°C\n",
+ "bta2=80# # at 100°C\n",
+ "RB_RE=10# # RB/RE\n",
+ "S=IC*(1+RB_RE)/(bta1*(1+bta2+RB_RE))#\n",
+ "del_bta=bta2-bta1#\n",
+ "del_IC=S*del_bta# # in amperes\n",
+ "IC=IC+del_IC# # at 100°C in amperes\n",
+ "IC=IC*1e3# # at 100°C in mili-amperes\n",
+ "print \"S(β) = %0.2e \"%S\n",
+ "print \"IC at 100°C = %0.3f mA \"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.12: Page No 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "IC at -65°C = 1.803 mA \n",
+ "IC at 175°C = 2.15 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Variation of IC over the temperature range -65°C to 175°C\n",
+ "\n",
+ "RB_RE=2# # RB/RE\n",
+ "RE=4.7e3# # in ohms\n",
+ "IC=2e-3# # at 25°C in amperes\n",
+ "# From Table 5.1\n",
+ "bta=50# # at 25°C\n",
+ "S_ICO=(1+bta)*(1+RB_RE)/(1+bta+RB_RE)#\n",
+ "S_VBE=-bta/(RE*(1+bta+RB_RE))#\n",
+ "# From Table 5.1\n",
+ "bta1=20# # at -65°C\n",
+ "bta2=120# # at 175°C\n",
+ "S_bta1=IC*(1+RB_RE)/(bta*(1+bta1+RB_RE))# # For 25°C to -65°C\n",
+ "S_bta2=IC*(1+RB_RE)/(bta*(1+bta2+RB_RE))# # For 25°C to 175°C\n",
+ "# From Table 5.1\n",
+ "\n",
+ "# For 25°C to -65°C\n",
+ "del_ICO=(0.2e-3-0.1)*1e-9# # in amperes\n",
+ "del_VBE=0.85-0.65# # in volts\n",
+ "del_bta=bta1-bta#\n",
+ "del_IC=S_ICO*del_ICO+S_VBE*del_VBE+S_bta1*del_bta# # in amperes\n",
+ "IC1=IC+del_IC# # at -65°C in amperes\n",
+ "IC1=IC1*1e3# # at -65°C in mili-amperes\n",
+ "print \"IC at -65°C = %0.3f mA \"%IC1\n",
+ "\n",
+ "# For 25°C to 175°C\n",
+ "del_ICO=(3.3e3-0.1)*1e-9# # in amperes\n",
+ "del_VBE=0.30-0.65# # in volts\n",
+ "del_bta=bta2-bta#\n",
+ "del_IC=S_ICO*del_ICO+S_VBE*del_VBE+S_bta2*del_bta# # in amperes\n",
+ "IC2=IC+del_IC# # at 175°C in amperes\n",
+ "IC2=IC2*1e3# # at 175°C in mili-amperes\n",
+ "print \"IC at 175°C = %0.2f mA \"%IC2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.13: Page No 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "R1 = 9.15 kΩ \n",
+ "Part (ii)\n",
+ "R1 for (IC = 10 μA) = 915 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (i) R1\n",
+ "# (ii) R1 for IC = 10 μA\n",
+ "\n",
+ "IC=1e-3# # in amperes\n",
+ "VCC=10# # in volts\n",
+ "bta=125#\n",
+ "VBE=0.7# # in volts\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "R1=bta*(VCC-VBE)/((bta+2)*IC)# # in ohms\n",
+ "R1=R1*1e-3# # in kilo-ohms\n",
+ "print \"R1 = %0.2f kΩ \"%R1\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "IC=10e-6# # in amperes\n",
+ "R1=bta*(VCC-VBE)/((bta+2)*IC)# # in ohms\n",
+ "R1=R1*1e-3# # in kilo-ohms\n",
+ "print \"R1 for (IC = 10 μA) = %0.f kΩ \"%R1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.14: Page No 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1 = 9.30 kΩ \n",
+ "RE = 11.51 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log\n",
+ "#R1, RE\n",
+ "\n",
+ "Io=10e-6# # in amperes\n",
+ "VCC=10# # in volts\n",
+ "bta=125#\n",
+ "VBE=0.7# # in volts\n",
+ "VT=25e-3# # in volts\n",
+ "# Let\n",
+ "I_ref=1e-3# # in amperes\n",
+ "R1=(VCC-VBE)/I_ref# # in ohms\n",
+ "R1=R1*1e-3# # in kilo-ohms\n",
+ "RE=VT*log(I_ref/Io)/((1+1/bta)*Io)# # in ohms\n",
+ "RE=RE*1e-3# # in kilo-ohms\n",
+ "print \"R1 = %0.2f kΩ \"%R1\n",
+ "print \"RE = %0.2f kΩ \"%RE"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.15: Page No 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "IC1 = 0.270 mA \n",
+ "IC2 = 0.270 mA \n",
+ "IC3 = 0.0280 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "from numpy import arange,log\n",
+ "#IC1, IC2, IC3\n",
+ "\n",
+ "bta=125#\n",
+ "VBE=0.7# # in volts\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 5.27\n",
+ "VC=9# # in volts\n",
+ "RC=30# # in kilo-ohms\n",
+ "RE=1.94# # in kilo-ohms\n",
+ "I_ref=(VC-VBE)/RC# # in mili-amperes\n",
+ "IC=I_ref*bta/(3+bta)# # in mili-amperes\n",
+ "\n",
+ "for i in arange(0.01,0.5,0.001):\n",
+ " if abs(VT*log(IC/i)/(i*(1+1/bta))-RE)<=0.1:\n",
+ " break#\n",
+ " \n",
+ "\n",
+ "print \"IC1 = %0.3f mA \"%IC\n",
+ "print \"IC2 = %0.3f mA \"%IC\n",
+ "print \"IC3 = %0.4f mA \"%i"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.16: Page No 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Io = 0.46 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Io\n",
+ "\n",
+ "bta=100#\n",
+ "VBE=0.7# # in volts\n",
+ "# From Fig. 5.30\n",
+ "# Writing KVL for the indicated loop\n",
+ "I_ref=(10-VBE)/10# # in mili-amperes\n",
+ "Io=bta*I_ref/(2*(1+bta))# # in mili-amperes\n",
+ "print \"Io = %0.2f mA \"%Io"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.17: Page No 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "IC1 = 0.50 mA \n",
+ "IC2 = 0.50 mA \n",
+ "Part (ii)\n",
+ "RC so that (Vo = 6 V) = 12.04 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (i) IC1 and IC2\n",
+ "# (ii) RC so that Vo = 6 V\n",
+ "\n",
+ "bta=200#\n",
+ "# From Fig. 5.31\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "I_ref=(12-0.7)/15# # in amperes\n",
+ "I1=0.7/2.8# # in amperes\n",
+ "IC=(I_ref-I1)*bta/(bta+2)# # in mili-amperes\n",
+ "print \"IC1 = %0.2f mA \"%IC\n",
+ "print \"IC2 = %0.2f mA \"%IC\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "Vo=6# # in volts\n",
+ "RC=(12-Vo)/IC# # in kilo-ohms\n",
+ "print \"RC so that (Vo = 6 V) = %0.2f kΩ \"%RC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.18: Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Emitter current in transistor Q3 = 0.98 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Emitter current in transistor Q3\n",
+ "\n",
+ "bta=100#\n",
+ "VBE=0.75# # in volts\n",
+ "# From Fig. 5.32\n",
+ "I=(10-VBE)/4.7# # in mili-amperes\n",
+ "IE=I/2# # in mili-amperes\n",
+ "print \"Emitter current in transistor Q3 = %0.2f mA \"%IE"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch6_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch6_2.ipynb
new file mode 100644
index 00000000..50ac03c1
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch6_2.ipynb
@@ -0,0 +1,502 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 6 : BJT amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.2: Page No 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "rπ = 3.29 kΩ \n",
+ "gm = 31.62 mA/V \n"
+ ]
+ }
+ ],
+ "source": [
+ "#rπ, gm\n",
+ "\n",
+ "IBQ=7.6e-6 # in amperes\n",
+ "bta=104#\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "ICQ=IBQ*bta # in amperes\n",
+ "gm=ICQ/VT # in ampere per volt\n",
+ "gm=gm*1e3 # in mili-ampere per volt\n",
+ "r_pi=bta/gm # in kilo-ohms\n",
+ "print \"rπ = %0.2f kΩ \"%r_pi\n",
+ "print \"gm = %0.2f mA/V \"%gm"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.3: Page No 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AI = -90.91 \n",
+ "Ri = 0.91 kΩ \n",
+ "AV = -500.00 \n",
+ "AVs = -238.10 \n",
+ "Ro = 100.00 kΩ \n",
+ "Ro'' = 4.76 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#AI, Ri, AV, AVs, Ro, Ro'\n",
+ "\n",
+ "hie=1e3 # in ohms\n",
+ "hfe=100#\n",
+ "hre=2e-4#\n",
+ "hoe=20e-6 # in amperes per volt\n",
+ "RC=5e3 # in ohms\n",
+ "Rs=1e3 # in ohms\n",
+ "# From Table 6.3\n",
+ "AI=-hfe/(1+hoe*RC)#\n",
+ "Ri=hie+hre*AI*RC # in ohms\n",
+ "AV=AI*RC/Ri#\n",
+ "AVs=AV*Ri/(Ri+Rs)#\n",
+ "Yo=hoe-hfe*hre/(hie+Rs) # in ohms inverse\n",
+ "Ro=1/Yo # in ohms\n",
+ "Ro_dash=Ro*RC/(Ro+RC) # in ohms\n",
+ "Ri=Ri*1e-3 # in kilo-ohms\n",
+ "Ro=Ro*1e-3 # in kilo-ohms\n",
+ "Ro_dash=Ro_dash*1e-3 # in kilo-ohms\n",
+ "print \"AI = %0.2f \"%AI\n",
+ "print \"Ri = %0.2f kΩ \"%Ri\n",
+ "print \"AV = %0.2f \"%AV\n",
+ "print \"AVs = %0.2f \"%AVs\n",
+ "print \"Ro = %0.2f kΩ \"%Ro\n",
+ "print \"Ro'' = %0.2f kΩ \"%Ro_dash"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.4: Page No 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AI'' = -37.34 \n",
+ "AVs = -51.78 \n",
+ "Ri,eff = 1.61 kΩ \n",
+ "Ro = 57.97 kΩ \n",
+ "Ro'' = 4.60 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#AI', AVs, Ri,eff, Ro, Ro'\n",
+ "\n",
+ "hie=2e3 # in ohms\n",
+ "hfe=50#\n",
+ "hre=2e-4#\n",
+ "hoe=20e-6 # in amperes per volt\n",
+ "# From Fig. 6.22(a)\n",
+ "Rs=2e3 # in ohms\n",
+ "R1=90e3 # in ohms\n",
+ "R2=10e3 # in ohms\n",
+ "RC=5e3 # in ohms\n",
+ "# From the Table 6.3\n",
+ "RB=R1*R2/(R1+R2) # in ohms\n",
+ "AI=-hfe/(1+hoe*RC)#\n",
+ "Ri=hie+hre*AI*RC # in ohms\n",
+ "Ri_eff=RB*Ri/(RB+Ri) # in ohms\n",
+ "AI_dash=AI*RB/(RB+Ri)#\n",
+ "AVs=AI*RC*Ri_eff/(Ri*(Rs+Ri_eff))#\n",
+ "Rs_eff=Rs*RB/(Rs+RB) # in ohms\n",
+ "Yo=hoe-hfe*hre/(hie+Rs_eff) # in ohms inverse\n",
+ "Ro=1/Yo # in ohms\n",
+ "Ro_dash=Ro*RC/(Ro+RC) # in ohms\n",
+ "Ri_eff=Ri_eff*1e-3 # in kilo-ohms\n",
+ "Ro=Ro*1e-3 # in kilo-ohms\n",
+ "Ro_dash=Ro_dash*1e-3 # in kilo-ohms\n",
+ "print \"AI'' = %0.2f \"%AI_dash\n",
+ "print \"AVs = %0.2f \"%AVs\n",
+ "print \"Ri,eff = %0.2f kΩ \"%Ri_eff\n",
+ "print \"Ro = %0.2f kΩ \"%Ro\n",
+ "print \"Ro'' = %0.2f kΩ \"%Ro_dash"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.5: Page No 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AI = -8.41 \n",
+ "AVs = -3.09 \n",
+ "Ri = 205.00 kΩ \n",
+ "Ro'' = 5.00 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#AI, AVs, Ri, Ro'\n",
+ "\n",
+ "hie=4e3 # in ohms\n",
+ "hfe=200#\n",
+ "# From Fig. 6.27(a)\n",
+ "Rs=5e3 # in ohms\n",
+ "R1=90e3 # in ohms\n",
+ "R2=10e3 # in ohms\n",
+ "RC=5e3 # in ohms\n",
+ "RE=1e3 # in ohms\n",
+ "# From Fig 6.27(b)\n",
+ "RB=R1*R2/(R1+R2) # in ohms\n",
+ "Ri=hie+(1+hfe)*RE # in ohms\n",
+ "Ri_eff=RB*Ri/(RB+Ri) # in ohms\n",
+ "AI=-hfe*RB/(RB+Ri)#\n",
+ "AVs=-hfe*RC*Ri_eff/(Ri*(Rs+Ri_eff))#\n",
+ "Ro_dash=RC # in ohms\n",
+ "Ri=Ri*1e-3 # in kilo-ohms\n",
+ "Ro_dash=Ro_dash*1e-3 # in kilo-ohms\n",
+ "print \"AI = %0.2f \"%AI\n",
+ "print \"AVs = %0.2f \"%AVs\n",
+ "print \"Ri = %0.2f kΩ \"%Ri\n",
+ "print \"Ro'' = %0.2f kΩ \"%Ro_dash"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.6: Page No 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AI = -100.00 \n",
+ "Ri = 101.09 kΩ \n",
+ "AVs = -2.97 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#AI, Ri, AVs\n",
+ "\n",
+ "bta=100#\n",
+ "VBE=0.7 # Cut-in voltage in volts\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 6.33\n",
+ "RB=100e3 # in ohms\n",
+ "RC=3e3 # in ohms\n",
+ "VBB=3 # in volts\n",
+ "\n",
+ "# DC analysis\n",
+ "# From dc equivalent circuit in Fig. 6.34(a)\n",
+ "IBQ=(VBB-VBE)/RB # in amperes\n",
+ "ICQ=bta*IBQ # in amperes\n",
+ "gm=ICQ/VT # in ampere per volt\n",
+ "r_pi=bta/gm # in ohms\n",
+ "\n",
+ "# AC analysis\n",
+ "# From ac equivalent circuit using approximate hybrid-Ï€ model in Fig. 6.34(b)\n",
+ "AI=-bta#\n",
+ "Ri=RB+r_pi # in ohms\n",
+ "AVs=-bta*RC/(RB+r_pi)#\n",
+ "Ri=Ri*1e-3 # in kilo-ohms\n",
+ "print \"AI = %0.2f \"%AI\n",
+ "print \"Ri = %0.2f kΩ \"% Ri\n",
+ "print \"AVs = %0.2f \"%AVs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.7: Page No 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "RE = 3.96 kΩ \n",
+ "Part (b)\n",
+ "Ro = 52.08 Ω \n",
+ "Ro'' = 51.41 Ω \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Load resistance RE to make Ri ≥ 500 kΩ\n",
+ "# (b) AV, Ro, Ro'\n",
+ "\n",
+ "IC=2e-3 # in amperes\n",
+ "Rs=5e3 # Source resistance in ohms\n",
+ "bta=125#\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "Ri=500e3 # in ohms\n",
+ "gm=IC/VT # in mho\n",
+ "r_pi=bta/gm # in ohms\n",
+ "RE=(Ri-r_pi)/(1+bta) # in ohms\n",
+ "REk=RE*1e-3 # in kilo-ohms\n",
+ "print \"RE = %0.2f kΩ \"%REk\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "AV=(1+bta)*RE/(Rs+Ri)#\n",
+ "Ro=(Rs+r_pi)/(1+bta) # in ohms\n",
+ "Ro_dash=Ro*RE/(Ro+RE) # in ohms\n",
+ "print \"Ro = %0.2f Ω \"%Ro\n",
+ "print \"Ro'' = %0.2f Ω \"%Ro_dash"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.8: Page No 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ri = 28.2 kΩ \n",
+ "AVs = -20.7 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Ri, AVs\n",
+ "\n",
+ "IC=0.2e-3 # in amperes\n",
+ "bta=125#\n",
+ "Rs=2e3 # in ohms\n",
+ "RE=100 # in ohms\n",
+ "RC=5e3 # in ohms\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "gm=IC/VT # in mho\n",
+ "r_pi=bta/gm # in ohms\n",
+ "Ri=r_pi+(1+bta)*RE # in ohms\n",
+ "AVs=-bta*RC/(Rs+r_pi+(1+bta)*RE)#\n",
+ "Ri=Ri*1e-3 # in kilo-ohms\n",
+ "print \"Ri = %0.1f kΩ \"%Ri\n",
+ "print \"AVs = %0.1f \"%AVs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.9: Page No 314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "rπ = 1.81 kΩ \n",
+ "AI = -200.00 \n",
+ "AVs = -218.41 \n",
+ "Ro = inf \n",
+ "Ro'' = 1.98 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "from numpy import inf\n",
+ "#rπ, AI, Ri, AVs, Ro, Ro'\n",
+ "\n",
+ "bta=200#\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 6.39\n",
+ "VBE=0.7 # Cut-in voltage in volts\n",
+ "VCC=9 # in volts\n",
+ "RB=200e3 # in ohms\n",
+ "RC=2e3 # in ohms\n",
+ "\n",
+ "# DC analysis\n",
+ "# From dc equivalent circuit in Fig. 6.40(a)\n",
+ "# Writing KVL from collector to base loop\n",
+ "IB=(VCC-VBE)/(RB+(1+bta)*RC) # in amperes\n",
+ "ICQ=bta*IB# # in amperes\n",
+ "gm=ICQ/VT # in mho\n",
+ "r_pi=bta/gm # in ohms\n",
+ "\n",
+ "# AC analysis\n",
+ "# From ac equivalent circuit using Miller's theorem in Fig. 6.40(b)\n",
+ "# Assuming AV >> 1\n",
+ "RL=RB*RC/(RB+RC) # Effective load resistance in ohms\n",
+ "# Using hybrid-Ï€ model and approximate resulta given in Table 6.5 for CE amplifier stage, we have\n",
+ "AI=-bta#\n",
+ "AV=-bta*RL/r_pi#\n",
+ "Ro=inf#\n",
+ "r_pi=r_pi*1e-3 # in kilo-ohms\n",
+ "RL=RL*1e-3 # in kilo-ohms\n",
+ "print \"rπ = %0.2f kΩ \"%r_pi\n",
+ "print \"AI = %0.2f \"%AI\n",
+ "print \"AVs = %0.2f \"%AV\n",
+ "print \"Ro = %0.2f \"%Ro\n",
+ "print \"Ro'' = %0.2f kΩ \"%RL"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.10: Page No 323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ri,eff = 8.46 kΩ \n",
+ "Ro = inf \n",
+ "AI = -12.08 \n",
+ "AVs = -3.24 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Ri,eff, Ro, AV, AI\n",
+ "\n",
+ "bta=200#\n",
+ "ro=50e3 # in ohms\n",
+ "VBE=0.7 # Cut-in voltage in volts\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 6.44\n",
+ "VCC=16 # in volts\n",
+ "R1=90e3 # in ohms\n",
+ "R2=10e3 # in ohms\n",
+ "RC=2.2e3 # in ohms\n",
+ "RE=0.68e3 # in ohms\n",
+ "\n",
+ "# DC analysis\n",
+ "# From the Thevnin's equivalent circuit in Fig. 6.45(a)\n",
+ "RB=R1*R2/(R1+R2) # in ohms\n",
+ "VBB=VCC*R2/(R1+R2) # in volts\n",
+ "# From the base loop\n",
+ "IB=(VBB-VBE)/(RB+(1+bta)*RE) # in amperes\n",
+ "IE=(1+bta)*IB # in amperes\n",
+ "re=VT/IE # in ohms\n",
+ "\n",
+ "# AC analysis\n",
+ "Ri=bta*re+(1+bta)*RE # in ohms\n",
+ "Ri_eff=RB*Ri/(RB+Ri) # in ohms\n",
+ "AI=-bta*RB/(RB+bta*(re+RE))#\n",
+ "AV=-RC/RE#\n",
+ "Ri_eff=Ri_eff*1e-3 # in kilo-ohms\n",
+ "print \"Ri,eff = %0.2f kΩ \"%Ri_eff\n",
+ "print \"Ro = %0.2f \"%inf\n",
+ "print \"AI = %0.2f \"%AI\n",
+ "print \"AVs = %0.2f \"%AV"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch7_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch7_2.ipynb
new file mode 100644
index 00000000..05cfcb52
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch7_2.ipynb
@@ -0,0 +1,504 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 7 : Field effect transistors - characteristics and biasing"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.1: Page No 346"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9925b9ecd0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from numpy import arange\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "\n",
+ "#Transfer curve\n",
+ "\n",
+ "IDSS=12# # in mili-amperes\n",
+ "VP=-5# # in volts\n",
+ "# Plotting transfer curve\n",
+ "VGS=arange(0, VP,-0.01) # Gate source voltage in volts\n",
+ "# Using Shockley's equation\n",
+ "ID=[]\n",
+ "for vgs in VGS:\n",
+ " ID.append(IDSS*(1-vgs/VP)**2) # Drain current in mili-amperes\n",
+ "\n",
+ "plot(VGS,ID)\n",
+ "title(\"Transfer Curve\")\n",
+ "xlabel(\"VGS (V)\")\n",
+ "ylabel(\"ID (mA)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.2: Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VGS - VT = 1.00 V\n",
+ "Part (a)\n",
+ "VDS = 0.50 V \n",
+ "Since VDS < VGS - VT, therefore transistor is in ohmic region.\n",
+ "Part (b)\n",
+ "VDS = 1 V \n",
+ "Since VDS = VGS - VT, therefore transistor is in saturation region.\n",
+ "Part (c)\n",
+ "VDS 5 V \n",
+ "Since VDS > VGS - VT, therefore transistor is in saturation region.\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Region of operation\n",
+ "# (b) Region of operation \n",
+ "# (c) Region of operation\n",
+ "\n",
+ "VT=2# # in volts\n",
+ "VGS=3# # in volts\n",
+ "print \"VGS - VT = %0.2f V\"%(VGS-VT)\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "print \"VDS = %0.2f V \"%(0.5)\n",
+ "print \"Since VDS < VGS - VT, therefore transistor is in ohmic region.\"\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "print \"VDS = %0.f V \"%1\n",
+ "print \"Since VDS = VGS - VT, therefore transistor is in saturation region.\"\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "print \"VDS %0.f V \"%5\n",
+ "print \"Since VDS > VGS - VT, therefore transistor is in saturation region.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.3: Page No 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "IDQ = 4.7 mA \n",
+ "VDSQ = 6.38 V \n"
+ ]
+ }
+ ],
+ "source": [
+ "#IDQ, VDSQ\n",
+ "\n",
+ "IDSS=12# # in mili-amperes\n",
+ "VP=-4# # in volts\n",
+ "# From Fig. 7.28\n",
+ "VDD=12# # in volts\n",
+ "RD=1.2# # in kilo-ohms\n",
+ "# Since IG=0\n",
+ "VGS=-1.5# # in volts\n",
+ "# Using Shockley's equation\n",
+ "ID=IDSS*(1-VGS/VP)**2# # Drain current in mili-amperes\n",
+ "VDS=VDD-ID*RD# # in volts\n",
+ "print \"IDQ = %0.1f mA \"%ID\n",
+ "print \"VDSQ = %0.2f V \"%VDS"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.4: Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEZCAYAAABsPmXUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XecVNX9//HXRxQVRRRsQURRbFFR+SqxoK6CBkTF+lM0\nxpoYC4k1xkrRoEZjwASxIWgUG0YQjQFFB8WCYiMWEo0UiagUo6t09vP749yFYd0yuzN37pT38/GY\nx+7MvXPv52757NnzOedcc3dERKS0rJV0ACIikntK7iIiJUjJXUSkBCm5i4iUICV3EZESpOQuIlKC\nlNwlcWa2hZm9ZGbfmtkteTrnTDPrlo9zxc3MhpnZNU14X3szqzQziyMuSZaSe5kzs++iX/BKM6sy\ns0Vpz/vkKYxfAl+5+0bufnkuDmhmG5nZYDObFV3LJ2b2JzNrE+3i0SNRZpYys7OzOYa7n+fuN2Rw\nrplmdmja+2a7e0vXZJeSpORe5tx9w+gXvCUwCziy+rm7P1y9n5mtHWMY2wAfNeWNtcVlZs2BicAu\nwE+ja9sPmA/sk0WctZ3fsmz5ZpVYzawxv8MOqJVeLtxdDz1wd4AZwKHR5xXAHOC3wFzgfmBj4Gng\nK2AhMA7YKu39KWAgMBn4FhgPtIm2rQc8SEiwXwNvAJsDI4FlwFKgEjiUkIB+B3wS7f8osEl0nG2B\nKuAswh+jVC3XcQ7wBdCigWu9FHgP+B/wCLButC2T67wBeAVYBGwPnAl8GF33f4Bf1jhfb+Bd4Jvo\nun4K/B5YASyOrv32aN+dgeeABcB04MS044wEhgF/B74DukWvXR9t3zSK/evo/S9FX8+/AiujeCuB\ny9K+lmtF720NjAD+G133k/UdM+mfVz0a+H1OOgA9CufBD5P7cuBGYJ0oObcGjo0+3xB4rDoBRO9J\nAR8DHaN9XgRujLadCzwVvW7AXkDLaNsIYGDacX4DvAq0jc59JzAq2ladkEYC61cn5BrX8QgwooFr\nnQm8DmwJbBIl5nOjbZlc50zCfwZrAWsDRwAdou0HAd8De0XPuxD+gHSLnrcFdoo+fxE4K+3YGwCf\nAadHx94TmAfsEm0fGR1rv+j5uulfv+j7NQxoFj0OqO37W+NrWZ3cnwEeBlpF13RgQ8fUo3Af6paR\n+lQB/dx9ubsvcfeF7v5k9Pl3wCDg4LT9nZBUP3H3JYSkuGe0bRnQBtjBg3fcvTLtvendBecC17j7\n5+6+HBgAnFCjC6K/uy9296W1xN2a8N9GfZzQUv7C3b8mtM73BMjwOke6+0fuXuXuK9z97+4+I3r/\nS8AE4MBo/7OB4e4+Mdr+ubv/q45rPxKY4e73R8d+F/gbcGLaPmPc/bXoWDWvfxnwI2Bbd1/p7q80\n8HUIAZj9COgB/Mrdv4mu6eVsjinJUnKX+sxz92XVT8yshZndFRXmvgEmAa1q9Dl/kfb5YkLLF0K3\nwHjgETP7r5ndXE8//rbAk2b2tZl9TWhVrwC2SNvns3riXkBoHTek1lgzvM41zm9mPc3sdTNbEMV8\nBOGPGUA7QldNXdL73bcBflJ97dGxTmH1tXvNc1eHEH28hdDtM8HM/mNmV9Rz3nRbAwvd/ZtatjX1\nmJIgJXepT81i36XAjkAXd29FaM0aGRTpopbgQHffFdif0EL9eR27zwZ6uPsmaY8W7p7eGq+vEPk8\n8FMza9FQXHXI5DpXnd/M1gWeAP4AbO7umxD6xKv3/4zQVVWbmtcxG5hU49pbuvsFmQTu7t+5+2Xu\nvj1wNHCJmR1Sx7nSfQa0NrNWGR7z0B8cQQqKkrs0xoaEFu43ZtYa6FfLPrUmejM7xMx2N7NmhILe\nckKBr7b33AkMMrP20Xs3M7OjGxHnXwnJ6gkz28nM1jKzNmZ2lZn1zOD9jb3O5tFjPlAVnePwtO3D\ngTPN7NAolq3MbKdo25eEgmy1p4EdzexnZrZO9NjHzHau5bw/iMXMjjSzjtF/Gd8SvsZVdZxrlegP\n57PAHWa2cXTeA6Nj9qrlmCtrO44UDiV3qU/Nlt5gQhFzPqHg+Wwt+3iNz6ufbwE8Thgt8iGhKPnX\nWvYDGEIovk4ws2+B1whFybriWjOA0JXUnTDS5LnonFMIffGv1/W2tOM26jqj2sGvCTWGhUAfYGza\n9jcJo2n+RCiGpoD2add6gpktNLPBUR//4cDJhFErcwkFzea1xFlb7B2ja66MYh/q7pOibTcC10Td\nPZfUvA7gNMIf3emEPwS/iV7foZ5jSoEy9/jmL5jZxsC9wK6EH6Kz3L2uXy4REcmROCemQGiV/N3d\nT4iKZxvEfD4RESHGlntUmHnH3beL5QQiIlKnOPvcOwDzzGyEmb1tZvdkMXpBREQaIc7kvjbQGbjD\n3TsTZuz9LsbziYhIJM4+9znAnGikAMBoaiR3M9NqdCIiTeDu9c4via3l7u5fAJ+Z2Y7RS92BD2rZ\nr2Qf/fr1SzwGXZ+urxyvrxSvbdky54ADnBtuyKxNHPc4977AQ2b2HtCJsEaHiIg00lVXwUYbwZVX\nZrZ/rEMh3f09crx+tohIuRk7Fh57DN5+G9bKsEke9zj3slZRUZF0CLHS9RW3Ur6+Urq2Tz+FX/wi\nJPg2bRrev1qsM1QbPLmZJ3l+EZFCtmQJdO0KP/sZXHTR6tfNDG+goKrkLiJSoM4/H776Ch5/HNIX\nnM4kuatbRkSkAI0aBRMmwFtvrZnYM6WWu4hIgfnoIzjoIHjuOdhzzx9uz6TlriV/RUQKyPffw4kn\nwqBBtSf2TKnlLiJSINzhjDPCx/vvr7s7Rn3uIiJFZPhwmDoV3nijaf3s6dRyFxEpAFOnQs+e8NJL\nsMsu9e+rPncRkSIwfz6ccAIMG9ZwYs+UWu4iIglauTK02PfYA265JbP3qOUuIlLg+vWD5cvhxhtz\ne1wVVEVEEjJ2LDzwQOhvXzvH2VjJXUQkAR9/HBYEe+op2Hzz3B9f3TIiInn2/fdw3HEwcCDsu288\n51BBVUQkj9zh1FOheXMYMaKJ68ZoEpOISGG5/fawdsyrr2Y/Uak+armLiOTJyy+H8eyvvw4dOjT9\nOBoKKSJSIObOhZNPhpEjs0vsmVJyFxGJ2fLlYaXHc88NE5byQd0yIiIxu+ACmD07jGvP9AbX9VFB\nVUQkYffeCxMnwpQpuUnsmVLLXUQkJq+9Br17h0LqTjvl7rgqqIqIJOTzz8PImBEjcpvYM6XkLiKS\nY0uWhBmo558PvXolE4O6ZUREcsgdzj4bKivhscfimaikgqqISJ4NHRpWeYx7BmpD1HIXEcmRVCpM\nVHr1Vdhuu/jOUxAtdzObCXwLrASWu3uXuM8pIpJvs2ZBnz7w4IPxJvZM5aNbxoEKd1+Yh3OJiOTd\nokVwzDFw+eXQvXvS0QSxd8uY2Qxgb3dfUMs2dcuISFFzh1NOCXdSeuCB/PSzF0S3DKHl/ryZrQTu\ncvd78nBOEZG8uOWWcFell19OtoBaUz6S+wHuPtfMNgOeM7Pp7v5yHs4rIhKrceNgyJCwhO/66ycd\nzZpiT+7uPjf6OM/MngS6AKuSe//+/VftW1FRQUVFRdwhiYhk7Z//hLPOCgl+663jPVcqlSKVSjXq\nPbH2uZtZC6CZu1ea2QbABGCAu0+ItqvPXUSKzrx50KUL/P73ob893wqhz30L4EkLHVFrAw9VJ3YR\nkWK0dGlYWuCUU5JJ7JnSJCYRkQxVLy3wv//B6NH5XcI3XSG03EVESsZtt8Hbb8Pkyckl9kwpuYuI\nZOCZZ0Jyf+012HDDpKNpmJK7iEgDPvgAzjwTnnoK2rdPOprMFPg/FiIiyZo3D446Cv70J9h336Sj\nyZwKqiIidVi2LKwV07UrDBqUdDSrZVJQVXIXEamFO5xzDixcCE88UVgFVI2WERFpoltvhbfeKo6R\nMbVRchcRqWH0aLj99uIZGVMbJXcRkTRTpoQbW48fD+3aJR1N0xXhPxsiIvGYMQOOPRbuuw/22ivp\naLKj5C4iQlhSoFcvuOoqOPLIpKPJnkbLiEjZW7YMevaE3XeHwYOTjqZhGgopItKA6iGP8+bBk09C\ns2ZJR9QwDYUUEWnATTfBu+/CpEnFkdgzpeQuImXr0UfhzjuLe8hjXZTcRaQsvfIK9O0Lzz8Pbdsm\nHU3uabSMiJSdTz6B44+HBx6ATp2SjiYeSu4iUlbmz4cjjoD+/aFHj6SjiY9Gy4hI2Vi0CA49NDwK\naZXHxtJQSBGRyIoVoStm441h5EiwelNjYdNQSBERwlj2Cy+ExYvh8ceLO7FnSsldREreoEHwxhth\nLHvz5klHkx9K7iJS0kaOhHvvhVdfhZYtk44mf9TnLiIla/x4OP10SKVg552TjiZ31OcuImXrrbfg\ntNNgzJjSSuyZ0jh3ESk5M2bA0UfD3XfD/vsnHU0ylNxFpKTMnx8mJ11zDRxzTNLRJEd97iJSMhYt\ngu7doaKiuCcpNUSTmESkbCxfHlrqm25a/JOUGpJJco+9W8bMmpnZO2Y2Lu5ziUh5qqqCM8+EtdYK\nwx5LObFnKh+jZX4DfAiU0QhTEckXd7jkEpg1CyZMgHXWSTqiwhBry93M2gFHAPcC+lsqIjk3aBC8\n+CKMGwfrr590NIUj7pb7n4DLgY1iPo+IlKG77oL77oPJk8OCYLJabMndzI4EvnL3d8ysoq79+vfv\nv+rziooKKirq3FVEZJXRo2HgQHjpJfjRj5KOJl6pVIpUKtWo98Q2WsbMBgGnASuA9Qit9yfc/edp\n+2i0jIg02vPPw6mnhj72PfZIOpr8K5ihkGZ2MHCZux9V43UldxFplDffhF694Ikn4MADk44mGQUx\nFDKNsriIZGX69LCswPDh5ZvYM6VJTCJSFGbPDgl94MCw0mM5K7SWu4hIk3zxRVhW4OKLldgzpeQu\nIgVtwQI47LCwfO9FFyUdTfFQt4yIFKxvv4Vu3eCQQ+Dmm7WsQLWCGS1T58nN3Kuq9B0TkR9YtCgs\n3bvbbjB0qNJEuuLoc+/UCYYNg8rKpCMRkQKxdCkcdxxsuy385S9K7E2RfHIfMiTMSNhmG+jbFz78\nMOmIRCRBK1ZAnz6wwQZhaYG1ks9SRSn5L9uhh4bZCNOmwSabhA626teWL086OhHJo6oqOOssWLwY\nRo2CtXWX5yZLvs+95vmXLYMnnwydbJ9+Cr/8JfziF6W/eIRImXOH888P/7w/+yy0aJF0RIWrOPrc\na2reHE46KawG9Pe/w+efw49/vPo1ja4RKTnucMUV8NZbYeleJfbsFV7LvTbffAMPPAB33BH+Tzv/\nfPjZz6Cl7v8hUgquvRbGjg3rsrdpk3Q0ha84hkI25vzu4bs/dGj4eOqpcN55oWUvIkVp4EB47LHw\nK73ZZklHUxyKs1umPmYqwIqUkEGD4OGHYeJEJfZcK66We21UgBUpSn/4Q1jdMZXSr2tjlV7LvTYq\nwIoUndtug7vvhhdeUGKPS0YtdzPbANiasCb7HHf/Picnj2ttGRVgRQrW7bfD4MEwaRJsvXXS0RSn\nrAqqZtYS+AVwMrAp8CVgwBbAAuAh4B53/y6LAONdOEwFWJGCcscdoTsmlQpLC0jTZNstMwaoBI5y\n9+3cfT9339fdOwBHAt8DY3MXbgxUgBUpGHffDTfdFLpilNjjV/wF1cZSAVYk70aMgOuuC/9Ad+yY\ndDTFL+cFVTPraGbXmtkH2YWWIBVgRfJq+HC45pqwPqASe/40mNzNbCszu8TM3gTeB5oR+uGLX6dO\ncOedMHMmdO0K556rJYhFcuiuu6B//9Bi32mnpKMpL/UVVM8F+gCbA6OBx4Gnoj733Jy80O7EpAKs\nSM4MHRqKpy+8ANtvn3Q0pSXbbpm/EAqqfdz9Onf/Z06jK0QqwIrkxODBcOutYVSMEnsy6mu5bwqc\nSOiCqW69n+nu7XJ28kJruddGBViRRrn11tCz+cIL4R48kntZtdzdfb67D3P3g4HDgW+AL81supkN\nynGshUsFWJGM3XRT6GefNEmJPWmNHgppZjsCJ7v7wKxPXgwt99poBqzID1x/PTz0UGixt22bdDSl\nLSdL/prZ2kAvYFvCSBkDcPc/5iDA4kzu1WoWYE85JSR6FWCljLiHETGPPx4S+5ZbJh1R6cvVOPdx\nwOlAa6AlsGH0kJoF2NatVYCVsuIexrD/7W+heKrEXjgyablPc/dOsZy82FvutVEBVspEVRVcfHEo\nPU2YoPXY8ylXLfcJZvbTJgawnplNMbN3zexDM7uxKccpKirAShlYuRLOOQemTtUdlApVJi3344AH\nCX8IqvsZ3N03yugEZi3cfVHUdz8ZuMzdJ0fbSq/lXhsVYKWELFsWfnwXLgz3Pd1gg6QjKj+5arnf\nBuwLtHD3ltEjo8QO4O6Lok+bEwqyCzN9b8lo1Qr69oUPP4QhQ8IiG9tsAxdeGF4TKRKLF8Oxx4YE\n//TTSuyFLJPkPhv4wN2rmnICM1vLzN4lrAf/oruXbzZTAVaKWGUlHHEEbLxxGBmz3npJRyT1yaRb\n5n6gA/AssCx62d39tkadyKwVMB74nbunote8X79+q/apqKigoqKiMYctfirAShFYuBB69oQ99wy9\ni82aJR1ReUmlUqRSqVXPBwwYkJNx7v2jT9fY0d0HNDZAM7sWWOzut0bPy6PPPVPTpoXfnEcfhcMP\nhwsugAMPDC1+kYR8+WX4cTzsMLjlFv04FoKcTGLKMoBNgRXu/j8zW5/Qch/g7hOj7UrutVEBVgrE\n7NnQvXv48bv2WiX2QpFVQdXM7jOzferZ/hMzG9FADD8CXoj63KcA46oTu9RDBVgpANOnw0EHhVWv\nr7tOib3Y1Lcq5O7A5YSRMv8C5hKWHtgS2Al4FbjV3d9v8snVcs/cnDnhJpT33AO77BK6bI4+GtZZ\nJ+nIpARNmQK9e4f12H/+86SjkZpytbbMusBewDaEfvdZwHvuviQHASq5N9ayZWGu9x13qAArsRg/\nHk47Ldz3tFevpKOR2iTe594QJfcsqQArOTZqFFxySWg/7L9/0tFIXZTcy4UKsJIDQ4bAH/8Izz4L\nu+6adDRSHyX3cqMliKUJ3OHqq0NrfcIEaN8+6YikIblafkCKhWbASiOtWBFKNhMnwuTJSuylpN6W\nu5mdAfwa2Dl66UPgz+5+f05OrpZ7/FSAlTosXgx9+sCSJTB6NGyouzQUjWzHuZ8O/Aa4FGgLbAX8\nFvi1mWlwVLFo3hxOPllLEMsaFi6En/4UWrSAp55SYi9F9Y1zn0K4V+qMGq9vCzzq7j/J+uRquSdD\nBdiyNmNGWCfm6KPDDa3XUuds0cm2z71lzcQO4O4zCbfbk2KlGbBla+pUOOCA8O3/wx+U2EtZfd/a\n+iYpZT2BSQpAfQXY0aNVgC0x48aFJXvvvDNMiZDSVl+3zGLgkzret727t8j65OqWKTwqwJakYcPg\n+uthzBjo0iXpaCRbWY1zj/rW6xR1z2RFyb3AaQZs0auqgiuvDEn92Wdhu+2SjkhyQZOYJDdUgC1K\nS5bAGWeENefGjoU2bZKOSHIl25b7d9S4QUeajG+QXe/JldyLi2bAFo2FC+GYY2DLLcPfZd0Sr7Rk\nNVrG3TdMuyF2zUfWiV2KkAqwReHjj2G//ULf+iOPKLGXK3XLSHZUgC0oqVSYszZwYPhWSGnS2jIS\nP82ALRj33hu+7KNGKbGLWu4SBxVg82rlSrjiirCMwNNPw447Jh2RxE2jZSRZKsDGrrIyfFm//z6U\nPVq3TjoiyQd1y0iyVICN1ezZ0LVrKG+MH6/ELmtSy13ySwXYnHj9dTj+eLjsMrjoIs0rKzdquUvh\nUQE2aw88EFZ0vOsuuPhiJXapnVrukjwVYDOyYgVcfnkomo4Zo/ucljMVVKW4qABbpwULwj83zZqF\niUmbbJJ0RJIkdctIcVEBtlbTpsE++0DnzqEnS4ldMqGWuxS2Mi/Ajh4N550X7qlyyilJRyOFQt0y\nUlrKaAniqiq49lp46KHwt61z56QjkkKi5C6lqcQLsN98A6eeGiYoPf44bL550hFJoUm8z93Mtjaz\nF83sAzN738x+Hef5pEyU8D1gp02DvfeGDh3CZSmxS1PFXVBdDlzs7rsC+wIXmNkuMZ9TykWJFWD/\n+tcQfv/+8Oc/wzrrJB2RFLO8dsuY2Rjgz+4+MXqubhnJrSIswC5dGmaZTpwY/k7tvnvSEUmhS7xb\npkYw2wJ7AVPydU4pQ0U2A3b27FAT/uormDpViV1yJy8tdzPbEEgBN7j7mLTXvV+/fqv2q6iooKKi\nIvZ4pMwUaAF2/Hg4/fSwPsyll5bkoB/JkVQqRSqVWvV8wIAByY+WMbN1gKeBZ919cI1t6paR/CmQ\nGbBVVXDDDWFtmFGj4OCD83p6KQGJD4U0MwPuBxa4+8W1bFdyl2TMmQN33w333AO77BKSfO/esVcx\n580LrfXKSnjssYIuBUgBK4Tk3hV4CZgGVJ/oSnf/R7RdyV2SlccC7KRJoTfo1FPh+us1GkaaLvHk\n3hAldykoMc2AXbkSfv97GDYMRoyAHj1yFK+ULSV3kabIYQF27tzQUncPSwm0bRtDvFJ2CmoopEjR\nyNEM2PHjw5owFRXhEErskk9quYtkohEF2OXL4brrwozTBx8MyV0kl9QtI5JrDRRgZ84M3TCtWsH9\n98NmmyUbrpQmdcuI5FodM2D9pJOYcM1LdNnHOfbYcCs8JXZJklruIln636xvGHPcAxz4/h20bb82\n619SGDNgpXSp5S4Ss0mTYI+DWvHW/n1p+/WHrH9XaS1BLMVLLXeRJli2DPr1C/3q994LRxxRY4eE\nZsBKeVBBVSQG06eHomnbtjB8eAM31CjCJYil8KlbRiSHqqpCju7aFc45B556KoM7JRXZEsRSOtRy\nF8nArFlw9tlhwa/774edd87iYAW6BLEUD7XcRbLkHvrU994buneHV17JMrFDSd8DVgqHWu4idZgz\nJ3SPf/llaGjvtlvMJ6suwO68c1i0TAVYqYNa7iJN4B6SeefOsN9+MGVKzIkdoF07GDgw9P+cey7c\nfjt06BBemzs35pNLKVLLXSTNF1+EAS0zZ4a+9b32SjCYmJYgluKnlrtIhtxDMt9jD+jUKdysOtHE\nDiGQO+8Mf2m6dg0t+k6dwsLwlZUJByeFTi13KXuffhry5oIFoXjauXPSEdWhQO4BK8lTy12kHitW\nwB//CF26hF6PN94o4MQOoTvm0EPhiSdCl03r1tCtGxxyCIweHdYaFomo5S5l6b33wkSkjTaCu+6C\njh2TjqiJqmfADh0KM2ZoBmyZUMtdpIbFi+Gqq+Cww+C888IQ86JN7LB6BuzLL2sGrKxBLXcpGxMn\nhoS+555hpOGWWyYdUUw0A7bkaeEwEUJj9tJL4fXXQ1I/6qikI8oTFWBLlrplpKytWAGDB4fRg9tt\nBx98UEaJHVSALXNquUtJevXV0AWz2Wbwl7/kYD2YUqECbElQy13Kzrx5YfXGE0+EK6+E555TYl+D\nCrBlQ8ldSsLKlWEy5667huGNH30Ucphm6tdDM2BLmrplpOi98AJcdBFsskkomO6xR9IRFSkVYIuG\nRstISfv0U7jsMnjnHbjlFjj+eLXUc0ZLEBe0xPvczew+M/vSzP4Z53mkvFRWhv70Ll3CTTQ++ghO\nOEGJPadqLkE8ZIiWIC4ycfe5jwB6xHwOKRNVVTByJOy0U6gDTpsWZpuut17SkZUwFWCLVuzdMma2\nLTDO3XevZZu6ZSQjzz8Pv/0trLtuaER26ZJ0RGVMM2ATVxB97kruko1334Urrgj96zfeqH71gqIC\nbGIS73MXaapZs+C006BHDzj66HDfaPWrFxjNgC1oibfc+/Xrt+p5RUUFFRUVscYjhW3hQhg0CEaM\ngAsvDKNh9N9+EdEM2FikUilSqdSq5wMGDFC3jBSH776DP/8ZbrstdL3066d8UPRq3gP2/PPhoIP0\n71cOJN4tY2YPA68CO5rZZ2Z2Zpznk+KzeHG4G1LHjiEXTJ4cJk0qsZeAmjNgf/UrzYDNI01ikkQs\nXRrmx9x4I+y7LwwYALvtlnRUEisVYHMm8Za7SE3Ll4ekvsMO8I9/wLhxoR6nxF4GVIDNK7XcJS+W\nLg1Do2+6Kaytfv31ocUuZU4F2CZRy10St2hRWMyrY8fQYBs5MizDq8QuQP0zYCdN0gzYLKjlLrH4\n9ttQNxs8OCTyq68O68CINEgzYBtUEDNU6z25knvJWbgwtNSHDoXDDgtrv6g/XZpEBdg6qVtG8mbG\nDPjNb0L3y2efhdvcjRqlxC5ZUAE2K2q5S1beeANuvRUmToRzzoG+fcNqsSKxUAEWUMtdYlJVBWPH\nhsmGJ54I++8f5qncfLMSu8RMBdiMqeUuGaushAcfDEXSjTYK674cf3yoeYkkpgwLsCqoSk5Mnx5+\nbx58ECoqQt+6lgiRguMebqh7xx0lX4BVt4w02cqVoevlsMPg4INDS/2990J358EHK7FLATILBVcV\nYAG13KWGefNg+PAwRr1t27Ds7gknhDsgiRSdEi3AquUuGVm5Ep59NiTxHXaAf/87/D689hqceqoS\nuxSxMi7AquVexmbODDfFuO++0JA5++zwe9CqVdKRicSoBAqwKqjKDyxZEvrShw+Ht98OLfOzzw7L\nbIuUlSIuwCq5CxDGpU+aFEa7PPkkdO4cJhwdcwyst17S0YkUgDlz4O67w3rUO+8MF1wAvXvDOusk\nHVmtlNzL3LRpIaGPGgWbbhr+8+zTB7baKunIRApUkRRgldzL0KefwmOPwUMPhZUZTzkldL1ojReR\nRirge8AquZeJf/0rDO0dPTr8d3nssSGhd+0Ka2k8lEh2CrAAq+Reotzhww9DMh89GhYsgOOOC0MZ\nu3bVcgAisSigAqySewlZvhxeeQWeeSbcd3TRorCuywknwH77qYUuklcJF2CV3Ivc/PlhctHTT4db\n022/PRx5JPTqBf/3fwXR9SdS3hIqwCq5F5kVK+Ctt+D558NkuvffD0tjHHkk9OxZcAV7EUmXxwKs\nknuBcw8rLk6cGBL6pEnQvn1I6D17hp8LTf0XKTJ5KMAquRcYd/jkE5g8GVKpkNDXXjusvNitW7ij\n2BZbJB13eG8XAAAHvklEQVSliOREjAVYJfeELV8O77wTkvnkyaEg2rw5HHhgaJV37x760dV3LlLi\nclyAVXLPI3eYNQumTg2PKVPgzTdD8u7aFQ44IHxs3z7pSEUkMTkqwCq5x8QdPvssFD+rk/nUqaF/\nfO+9w2OffcIQxY03TjpaESlIWRRgE0/uZtYDGAw0A+5195trbC/45D5/fhi1UvORnsj33jsMTWzb\nNuloRaToNKEAm2hyN7NmwL+A7sB/gTeBPu7+Udo+BZHcFy0Ka7J88snqx8cfwwcfhCVyd9ttzceu\nu8JmmzV83FQqRUVFRezxJ0XXV9xK+fqK8toaUYDNJLnHOVG9C/CJu8+MgnkE6A18VN+bcs0dvv46\ndKPMmRM+Vj9mzw6JfP586NAh3IWoY8ewtvlxx4Wv6VZbNb3gWZQ/YI2g6ytupXx9RXlt1feA7dZt\ndQG2W7cmF2DjTO5bAZ+lPZ8D/CSbA65YAZWVYbXD6o/ffhuS87x54fHVV2t+nDs3fD3atYOttw6P\ndu3CPXPbtw/JvF07aNYsq2sVEcmddu1g4EC45ppQgB0yBC66aHUBNgNxJveM+lt69Qo3k6iqgqVL\nw2PZsjU/Ll0akvmSJaEbaqONVj9atoQ2bWDzzUNXSZcuqz/fbDPYcsuwn4hI0am+B+zJJ68uwGY4\nTj7OPvd9gf7u3iN6fiVQlV5UNbPkO9xFRIpQkgXVtQkF1W7A58Ab1CioiohIPGLrlnH3FWZ2ITCe\nMBRyuBK7iEh+JDqJSURE4lEQt3gws75m9pGZvW9mNzf8juJhZv3NbI6ZvRM9eiQdUxzM7FIzqzKz\n1knHkktmdr2ZvWdm75rZRDPbOumYcsXMbol+794zs7+ZWaukY8olMzvRzD4ws5Vm1jnpeHLFzHqY\n2XQz+9jMrqhrv8STu5kdAhwNdHL33YBbEw4p1xy4zd33ih7/SDqgXIsS3mHArKRjicEf3H0Pd98T\nGAP0SzqgHJoA7OruewD/Bq5MOJ5c+ydwLPBS0oHkSjQ59C9AD+DHQB8z26W2fRNP7sB5wI3uvhzA\n3eclHE8cSn3dx9uA3yYdRBzcvTLt6YbA/KRiyTV3f87dq6KnU4B2ScaTa+4+3d3/nXQcObZqcmiU\nM6snh/5AIST3HYCDzOx1M0uZ2d5JBxSDvtG/vsPNrKSWEjOz3sAcd5+WdCxxMbPfm9ls4HTgpqTj\niclZwN+TDkIaVNvk0K1q2zHOSUyrmNlzwJa1bLo6imETd9/XzPYBHgO2y0dcudLA9Q0DBkbPrwf+\nCJydp9ByooHruxI4PH33vASVQ/Vc31XuPs7drwauNrPfAX8CzsxrgFlo6Nqifa4Glrn7qLwGlwOZ\nXF+JyXgETF6Su7sfVtc2MzsP+Fu035tRUa6Nuy/IR2y5UN/1pTOze4Gi+4Gr6/rMbDegA/CehQV4\n2gFvmVkXd/8qjyFmJdPvHzCKImvdNnRtZnYGcARhPkrRacT3rlT8F0gv6m9NaL3/QCF0y4wBDgUw\nsx2B5sWU2BtiZumr8B9LKPKUBHd/3923cPcO7t6B8EPWuZgSe0PMbIe0p72Bd5KKJdeikVuXA73d\nfUnS8cSs6P6jrMNUYAcz29bMmgMnAU/VtmPi49zNbB3gPmBPYBlwqbunEg0qh8zsAcK1OTADONfd\nv0w2qniY2afA3u6+MOlYcsXMRgM7ASuB/wDnlcofLzP7GGgOVH+/XnP38xMMKafM7FjgdmBT4Bvg\nHXfvmWxU2TOznqy+T8Zwd7+x1v2STu4iIpJ7hdAtIyIiOabkLiJSgpTcRURKkJK7iEgJUnIXESlB\nSu4iIiVIyV1Kipm9YGaH13jtIjO7I/p8BzN72sw+MbOp0f4HRtu2iLa9Gy0V+0wd51jXzCaZ2Vpm\n9mk0+S59+2Az+62ZdTKz4XFdq0h9lNyl1DwMnFzjtZOAUWa2HvAMcKe7d3T3vYG+rF7LaCAw3t33\ndPddgbrWyj4VeDpaUXGN85nZWsDxwMPRYmrbm9nmObo2kYwpuUupeQLoFd3DFzPbFmjr7pMJSfkV\nd3+6emd3/8Dd74+ebklYu6N62/t1nKMPMDb6/GHCH49qBwGz3L165b5ngROzuSCRplByl5ISLX3w\nBmExLAit6kejz38MvF3P24cCw6OumqtqrAsErLpZwm7V64RHfwCqzKxT2vnSV1d8g5DwRfJKyV1K\nUXpXyUnR82qrFpAysyfN7J9m9gSAu08gdNHcA+wMvGNmm9Y49qZAZY3XHgZOjhJ/b+DxtG1zgW2z\nuhqRJlByl1L0FNDNzPYCWrh79UqOHwCr7qXp7scCZwCt01772t0fdvefA29Se6u75gqDjwD/D+gO\nTKtxNzGjEWtwi+SKkruUHHf/DngRGMGaXSSjgAPM7Ki01zYgSr5mdoiZtYg+bwlszw/vCzufcLu9\n9PN9Gr1+U43zAfyolmOIxE7JXUrVw8DupHXJRGuWHwn8ysz+Y2avEu4mdUO0y/8Bb5rZe8CrwD3u\n/lb6Qd19JfC+me1Uy/l2IrrxTJoulNANmqV4aMlfkUaK7l60hbvfnMG+KeD/lcoa8FI81HIXabxR\nhOGW9d7dJxpB84kSuyRBLXcRkRKklruISAlSchcRKUFK7iIiJUjJXUSkBCm5i4iUICV3EZES9P8B\ncRzt6jqQasIAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f3974048f50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VDSQ = 5.41 V \n",
+ "IDQ = 1.73 mA \n",
+ "VD = 8.19 V \n",
+ "VS = 2.77 V \n"
+ ]
+ }
+ ],
+ "source": [
+ "from sympy import symbols, solve\n",
+ "from numpy import arange\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "\n",
+ "#VDSQ, IDSQ, VD, VS\n",
+ "\n",
+ "IDSS=6e-3# # in amperes\n",
+ "VP=-6# # in volts\n",
+ "# From Fig. 7.31\n",
+ "VDD=12# # in volts\n",
+ "RD=2.2e3# # in ohms\n",
+ "RS=1.6e3# # in ohms\n",
+ "# Plotting transfer characteristics\n",
+ "VGS=arange(0, VP, -0.01) # Gate source voltage in volts\n",
+ "# Using Shockley's equation\n",
+ "ID = []\n",
+ "for vgs in VGS:\n",
+ " ID.append(IDSS*(1-vgs/VP)**2*1e3) # Drain current in mA\n",
+ "\n",
+ "plot(VGS,ID)#\n",
+ "title(\"Transfer Characteristics\")\n",
+ "xlabel(\"VGS (V)\")\n",
+ "ylabel(\"ID (mA)\")\n",
+ "# Plotting bias line\n",
+ "# From gate source circuit\n",
+ "ID=[]\n",
+ "for vgs in VGS:\n",
+ " ID.append(-vgs/RS*1e3) # Source current in mA\n",
+ "plot(VGS,ID,\"RED\")\n",
+ "show()\n",
+ "\n",
+ "# Intersection of transfer characteristics with the bias curve\n",
+ "# Putting VGS = -ID*RS in Shockley's equation and solving, we get ID**2*RS**2 + (2*RS*VP - VP**2/IDSS)*ID + VP**2\n",
+ "# Solving the equation\n",
+ "ID = symbols('ID')\n",
+ "expr = ID**2*RS**2 + (2*RS*VP - VP**2/IDSS)*ID + VP**2\n",
+ "IDQ = solve(expr, ID)[0] # A\n",
+ "# Writing the KVL for the output loop\n",
+ "VDSQ=VDD-IDQ*(RD+RS)# # in volts\n",
+ "VS=IDQ*RS# # in volts\n",
+ "VD=VDSQ+VS# # in volts\n",
+ "IDQ=IDQ*1e3# # in mili-amperes\n",
+ "print \"VDSQ = %0.2f V \"%VDSQ\n",
+ "print \"IDQ = %0.2f mA \"%IDQ\n",
+ "print \"VD = %0.2f V \"%VD\n",
+ "print \"VS = %0.2f V \"%VS"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.5: Page No 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VDSQ = 6.83 V \n",
+ "IDQ = 2.79 mA \n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\nQB0AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fbd49a0f590>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from numpy import arange\n",
+ "from sympy import symbols, solve\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "\n",
+ "#Operating point\n",
+ "\n",
+ "VP=-5# # in volts\n",
+ "IDSS=12e-3# # in amperes\n",
+ "# From Fig. 7.34(a)\n",
+ "VDD=18# # in volts\n",
+ "R1=400# # in kilo-ohms\n",
+ "R2=90# # in kilo-ohms\n",
+ "RD=2e3# # in ohms\n",
+ "RS=2e3# # in ohms\n",
+ "# Applying Thevnin's theorem to obtain simplified circuit in Fig. 7.34(b)\n",
+ "VGG=VDD*R2/(R1+R2)# # in volts\n",
+ "# Plotting transfer characteristics\n",
+ "VGS=arange(VGG, VP,-0.01) # Gate source voltage in volts\n",
+ "# Using Shockley's equation\n",
+ "ID=[]\n",
+ "for vgs in VGS:\n",
+ " ID.append(IDSS*(1-vgs/VP)**2*1e3) # Drain current in mA\n",
+ "plot(VGS,ID)\n",
+ "title(\"Transfer Characteristics\")\n",
+ "xlabel(\"VGS (V)\")\n",
+ "ylabel(\"ID (mA)\")\n",
+ "# Plotting bias line\n",
+ "# From the KVL for the gate-loop\n",
+ "ID=[]\n",
+ "for vgs in VGS:\n",
+ " ID.append((-vgs+VGG)/RS*1e3)# # Source current in mA\n",
+ "plot(VGS,ID,\"RED\")\n",
+ "# Intersection of transfer curve with the bias curve\n",
+ "# Putting VGS = VGG-ID*RS in Shockley's equation and solving, we get\n",
+ "# ID**2*RS**2 + (2*RS*VP - 2*VGG*RS - VP**2/IDSS)*ID + (VGG-VP)**2\n",
+ "# Solving the equation\n",
+ "ID = symbols('ID')\n",
+ "expr = ID**2*RS**2 + (2*RS*VP - 2*VGG*RS - VP**2/IDSS)*ID + (VGG-VP)**2\n",
+ "IDQ=solve(expr)[0] # in amperes\n",
+ "# Writing the KVL for the drain source loop\n",
+ "VDSQ=VDD-IDQ*(RD+RS)# # in volts\n",
+ "IDQ=IDQ*1e3# # in mili-amperes\n",
+ "print \"VDSQ = %0.2f V \"%VDSQ\n",
+ "print \"IDQ = %0.2f mA \"%IDQ"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.6: Page No 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VDSQ = 6.41 V \n",
+ "IDQ = 2.79 mA \n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9902d9f350>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from numpy import arange\n",
+ "from sympy import symbols, solve\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "\n",
+ "#VDSQ, IDQ\n",
+ "\n",
+ "ID=6e-3# # in amperes\n",
+ "VGS=8# # in volts\n",
+ "VT=3# # in volts\n",
+ "# From Fig. 7.37(a)\n",
+ "VDD=12# # in volts\n",
+ "RD=2e3# # in ohms\n",
+ "# Plotting transfer curve\n",
+ "k=ID/(VGS-VT)**2# # in amperes per volt square\n",
+ "from numpy import arange\n",
+ "VGS=arange(3, VDD,0.01) # Gate source voltage in volts\n",
+ "ID=[]\n",
+ "for x in VGS:\n",
+ " ID.append(k*(x-VT)**2*1e3) # Drain current in mA ............ (i)\n",
+ "plot(VGS,ID)#\n",
+ "title(\"Transfer Curve\")\n",
+ "xlabel(\"VGS (V)\")\n",
+ "ylabel(\"ID (mA)\")\n",
+ "# Plotting bias line\n",
+ "# From the simplified dc equivalent circuit in Fig. 7.37(b)\n",
+ "VGS=arange(0, VDD,0.01) # Gate source voltage in volts\n",
+ "ID=[]\n",
+ "for x in VGS:\n",
+ " ID.append((VDD-x)/RD*1e3)# # Source current in mA\n",
+ "plot(VGS,ID,\"RED\")\n",
+ "# Intersection of transfer curve with the bias curve\n",
+ "# Putting VGS = VDD-ID*RD in equation (i) and solving, we get ID**2*RD**2 + (2*RD*VT - 2*VDD*RD - 1/k)*ID + (VDD-VT)**2\n",
+ "# Solving the equation\n",
+ "from sympy import symbols, solve\n",
+ "ID = symbols('ID')\n",
+ "expr = ID**2*RD**2 + (2*RD*VT - 2*VDD*RD - 1/k)*ID + (VDD-VT)**2\n",
+ "IDQ=solve(expr, ID)[0]# in amperes\n",
+ "VGSQ=VDD-IDQ*RD# # in volts\n",
+ "IDQ=IDQ*1e3# # in mili-amperes\n",
+ "print \"VDSQ = %0.2f V \"%VGSQ\n",
+ "print \"IDQ = %0.2f mA \"%IDQ"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.7: Page No 367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "IDQ = 4.97 mA \n",
+ "VDSQ = 9.35 V \n",
+ "VGSQ = 5.99 V \n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAEZCAYAAACervI0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XecFFXW//HPQZE1IuojYEBM6OqqmFCfXXXWyCpiWBPu\nrgkfdXfN+pgfwbQKJtQfZgmKIiomMCAqbVZEEcSwKguKCqgEBUFJ5/fHrYFmnNAz09VVPfV9v179\nsqerq+rUONSpuveeW+buiIhI9jRLOgAREUmGEoCISEYpAYiIZJQSgIhIRikBiIhklBKAiEhGKQFI\naplZazN7xcx+NLPrSrTPyWa2dyn2FTczu93MLm3Aeu3MbI6ZWRxxSXooAUi1zGxudBKYY2ZLzGxe\n3s/dShTGycC37r6Gu/9vMTZoZmuYWR8z+yI6ls/N7CYzWzv6ikevRJlZzsy6N2Yb7v53d7+qgH1N\nNrO98tb70t1XdxUJNXlKAFItd18tOgmsDnwBdKn82d0HV37PzFaMMYyNgI8bsmJ1cZnZSsCLwG+B\n/aNj2w34Hti5EXFWt39r5BV0o06+Zlaff9sO6Go/i9xdL71qfQGTgL2i9xXAV8D5wFRgILAmMBz4\nFpgJDAPWz1s/B1wBvAb8CIwA1o6W/QYYRDgJzwJGA+sCA4AFwC/AHGAvwknqQuDz6PtDgFbRdtoD\nS4ATCQkrV81xnARMA1ap41jPBcYBs4GHgBbRskKO8yrgdWAesClwAvBRdNwTgZOr7O9g4H3gh+i4\n9geuBhYB86NjvyX67pbASGAG8AlwRN52BgC3A88Ac4G9o8+ujJavE8U+K1r/lej3eT+wOIp3DnBe\n3u+yWbTuWkB/4OvouB+vbZtJ/73qVY9/20kHoFf6X/w6ASwErgGaRyfwtYBDo/erAQ9XniSidXLA\nZ8Bm0XdGAddEy04Bnoo+N2B7YPVoWX/girztnAm8AawX7fsO4MFoWeVJawCwcuVJu8pxPAT0r+NY\nJwNvAW2AVtHJ+5RoWSHHOZlwh9EMWBE4ANg4Wr4H8BOwffRzJ0KS2Tv6eT1gi+j9KODEvG2vCkwB\njou23RH4DvhttHxAtK3dop9b5P/+ov9ftwMrRK/fV/f/t8rvsjIBPA0MBlpGx7R7XdvUqzxeagKS\nhlgC9HD3he7+s7vPdPfHo/dzgX8Be+Z93wkn3s/d/WfCibNjtGwBsDawuQdj3X1O3rr5TROnAJe6\n+zfuvhC4HDi8SnNHT3ef7+6/VBP3WoS7lto44Yp7mrvPIlzldwQo8DgHuPvH7r7E3Re5+zPuPila\n/xXgeWD36PvdgXvd/cVo+Tfu/u8ajr0LMMndB0bbfh94DDgi7ztPuPub0baqHv8CoC3Q3t0Xu/vr\ndfweQgBmbYHOwKnu/kN0TK82ZpuSHkoA0hDfufuCyh/MbBUzuzPqTPwBeBloWaUNfFre+/mEK2gI\nTRAjgIfM7Gsz61VLv0J74HEzm2VmswhX54uA1nnfmVJL3DMIV9l1qTbWAo9zuf2b2Z/M7C0zmxHF\nfAAh4QFsQGgWqkl+P8BGwC6Vxx5t6xiWHbtX3XdlCNF/ryM0MT1vZhPN7IJa9ptvQ2Cmu/9QzbKG\nblNSQglAGqJqB+W5QAegk7u3JFwVGwV0LEZXlFe4+9bAfxOudI+t4etfAp3dvVXeaxV3z7+qr63z\n9AVgfzNbpa64alDIcS7dv5m1AIYCvYF13b0VoY2+8vtTCM1i1al6HF8CL1c59tXd/Z+FBO7uc939\nPHffFOgKnGNmf6xhX/mmAGuZWcsCt7nXr7YgqaUEIMWwGuFK+QczWwvoUc13qk0GZvZHM9vGzFYg\ndEIuJHRKVrfOHcC/zKxdtO5/mVnXesR5P+GENtTMtjCzZma2tpldbGZ/KmD9+h7nStHre2BJtI/9\n8pbfC5xgZntFsaxvZltEy6YTOpErDQc6mNlfzax59NrZzLasZr+/isXMupjZZtHdyo+E3/GSGva1\nVJRcnwVuM7M1o/3uHm3zwGq2ubi67Ug6KQFIQ1S9YuxD6Hj9ntBJ+2w13/Eq7yt/bg08QhgF8xGh\nI/X+ar4HcDOhw/h5M/sReJPQkVpTXMsHEJqt9iGMoBkZ7fNtQt/AWzWtlrfdeh1n1JdxBqHPYybQ\nDXgyb/k7hFFCNxE6cHNAu7xjPdzMZppZn6jPYT/gaMJonKmETtiVqomzutg3i455ThR7X3d/OVp2\nDXBp1LR0TtXjAP5GSMyfEJLFmdHnm9eyTSkD5h5PrYeZ/YbQRtqC8Ef6pLtfFF05DSG0aU4GjnT3\n2bEEISIiNYotAUDoNHP3eVGn3muEMcZdge/dvXfUadTK3S+MLQgREalWrE1A7j4versSYZzwLEIC\nGBh9PhA4JM4YRESkerEmgKhj631Cu+Eod/8QaO3u06OvTGf5IXwiIlIicc7jgrsvATpGQ8hG5A07\nq1zuZqYJp0REEhBrAqjk7j+Y2dPAjsB0M2vj7tOiKsNvq35fSUFEpGHcveCJ/WJrAjKzdcxszej9\nysC+wFjCML7joq8dBzxR3fpJz5GRllePHj0SjyEtL/0u9LvQ76L2V33FeQfQFhgYzdPSDLjf3V80\ns7HAw9Fc55OBI2OMQUREahBbAnD3D4Adqvl8JqEYR0REEqRK4JSrqKhIOoTU0O9iGf0ultHvouFi\nLQRrKDPzNMYlIpJmZoanoRNYRETSTQlARCSjlABERDJKCUBEJKOUAEREMkoJQEQko5QAREQySglA\nRCSjlABERDJKCUBEJKOUAEREMkoJQEQko5QAREQySglARCSjlABERDJKCUBEJKOUAEREMkoJQEQk\no5QAREQySglARCSjlABERDJKCUBEJKOUAEREMkoJQEQko5QAREQySglARCSjYksAZrahmY0ysw/N\nbIKZnRF93tPMvjKzsdGrc1wxiIhIzczd49mwWRugjbu/b2arAe8ChwBHAnPc/cZa1vW44hIRaarM\nDHe3Qr+/YlyBuPs0YFr0fq6ZfQysHy0uOEAREYlHSfoAzKw9sD3wVvTR6WY2zszuNbM1SxGDiIgs\nL/YEEDX/PAqc6e5zgduBjYGOwFTghrhjEBEpV/PmQUUFzJpV/G3H1gQEYGbNgaHAIHd/AsDdv81b\nfg8wrLp1e/bsufR9RUUFFRUVcYYqIpJKV14J660HrVr9elkulyOXyzV423F2AhswEJjh7mfnfd7W\n3adG788Gdnb3Y6qsq05gEcm8jz6CPfeEDz6ANm3q/n59O4HjTAB/AF4BxgOVO7kY6EZo/nFgEnCK\nu0+vsq4SgIhkmjv88Y9w+OFw2mmFrZOaBNAYSgAiknX33Qe33AJvvw0rrFDYOkoAIiJlbuZM2Hpr\nGDYMdtqp8PWUAEREytypp4ar/r5967deagrBRESk/t5+G556KnQAx02TwYmIpMSiReHq/7rrYM0S\nlMgqAYiIpETfvrDWWnDMMXV/txjUByAikgJffw3bbQevvQZbbtmwbagTWESkDB15JHToAFdd1fBt\nqBNYRKTMPPccjBkDAweWdr9KACIiCfrpJ/j73+GOO2DllUu7bzUBiYgk6LzzYNo0GDSo8dtSE5CI\nSJl47z24//4w2VsSNAxURCQBixbBSSdB796w7rrJxKAEICKSgJtvDmP+jz02uRjUByAiUmKTJsHO\nO8Nbb8FmmxVvu/XtA9AdgIhICbmHUT/nnVfck39DKAGIiJTQ4MEwdSqce27SkagJSESkZGbMgN/9\nDp58Ejp1Kv72NRWEiEhKnXACtGwJffrEs33VAYiIpNCLL8JLL8GECUlHsoz6AEREYvbTT3DyyXDb\nbbD66klHs4yagEREYnb22fD996HqN05qAhIRSZHXX4chQ5Kb7qE2agISEYnJ/Plw4olw662w9tpJ\nR/NragISEYnJhRfCxInwyCOl2Z+agEREUuCdd6B/fxg/PulIaqYmIBGRIvvllzDm/6aboHXrpKOp\nmRKAiEiRXX01bLIJdOuWdCS1Ux+AiEgRvf8+7Ldf+O9665V235oNVEQkIQsXhlE/vXqV/uTfELEl\nADPb0MxGmdmHZjbBzM6IPl/LzEaa2adm9ryZrRlXDCIipVT5dK/jj086ksLE1gRkZm2ANu7+vpmt\nBrwLHAKcAHzv7r3N7AKglbtfWGVdNQGJSFmZMAEqKsJzftu1SyaG1DQBufs0d38/ej8X+BhYH+gK\nDIy+NpCQFEREytaCBeHRjtdem9zJvyFK0gdgZu2B7YG3gdbuPj1aNB1I8SApEZG6XXUVtG0L3bsn\nHUn9xF4IFjX/DAXOdPc5ZsvuTtzdzazatp6ePXsufV9RUUFFRUW8gYqINMA778Cdd8LYsWAFN74U\nRy6XI5fLNXj9WIeBmllzYDjwrLv3iT77BKhw92lm1hYY5e5bVllPfQAiknrz58MOO0CPHnD00UlH\nk6I+AAuX+vcCH1We/CNPAcdF748DnogrBhGROF16KWy7bTpO/g0R5yigPwCvAOOByp1cBIwGHgba\nAZOBI919dpV1dQcgIqn28stwzDEwbhyss07S0QR6JrCISMzmzIHttoObb4aDDko6mmWUAEREYnbK\nKaHqt1+/pCNZnqaDFhGJ0XPPwYgR6Z7muVBKACIiBZo1C046Ce67D9ZYI+loGk9NQCIiBXAP0zuv\nuy7cckvS0VRPTUAiIjEYNCg82H3MmKQjKR7dAYiI1GHSJOjUCUaOhI4dk46mZqkpBBMRaQoWLYK/\n/S084D3NJ/+GUAIQEanFtdfCb34DZ5+ddCTFpz4AEZEajB4Nt94K774LzZrg5XITPCQRkcabOxf+\n8hfo2xc22CDpaOKhTmARkWqcdBIsXgz9+ycdSeE0DFREpJEefxxGjYL33086knjpDkBEJM8338D2\n28MTT8BuuyUdTf1oGKiISAMtXhyGfP7jH+V38m+IgpqAzGxVYEPCvP5fuftPsUYlIpKAXr3CuP9L\nLkk6ktKoMQGY2erA/wBHA+sQHuBuQGszmwE8ANzt7nNLEaiISJxefz3M8TNmDKyYkd7R2g7zCeAh\n4CB3n56/wMzaAF2BJ4G94wtPRCR+M2eGp3vdfXfTHfJZHXUCi0imucOf/wzt2kGfPnV/P81iHQZq\nZpsB3YCj3X3r+gYnIpI2t98OkyfD4MFJR1J6dY4CMrP1zewcM3sHmACsQOgXEBEpa+PGQY8eMGQI\ntGiRdDSlV2MCMLNTzCwHjATWBE4Eprp7T3f/oETxiYjE4qef4Kij4KabYPPNk44mGTX2AZjZQuA5\n4FJ3Hxd9NsndN449KPUBiEjMTjwRliyBAQOSjqR4itkH0BY4ArjFzNYFHgWaNzI+EZHEPfBAGPb5\n7rtJR5KsgkYBmdmGwFGEDuBVgcfc/eLYgtIdgIjE5OOPYY894IUXYLvtko6muGKZCsLdp7j79e6+\nI2H8/88NDVBEJClz54Yhn716Nb2Tf0PUeQdgZisCBwLtCSOADMDdb4gtKN0BiEiRuYd5fpo3L68p\nnusjjjqAYcB84ANgSUMDExFJ0p13wvjx8NZbSUeSHoXcAYx3921LFE/lPnUHICJF8+670Llz6Pjt\n0CHpaOITRx/A82a2fwOD6Wdm083sg7zPeprZV2Y2Nnp1bsi2RUQKMWsWHHEE3HZb0z75N0QhdwCH\nAYMIyWJh9LG7+xp1btxsd2AucJ+7bxN91gOY4+431rKe7gBEpNGWLIFDDoGNN4abb046mvjF0Qdw\nI7ArMMHd69UH4O6vmln7ahYVHKCISENdfz18+y08+mjSkaRTIU1AXwIf1vfkX4fTzWycmd1rZmsW\ncbsiIgC88grceCM8/DCstFLS0aRTIXcAk4BRZvYssCD6zGtrwqnD7cAV0fsrgRuA7lW/1LNnz6Xv\nKyoqqKioaODuRCRrvvoKjj46TPPQrl3S0cQnl8uRy+UavH4hfQA9o7fLfdHdLy9oB6EJaFhlH0Ah\ny9QHICIN9csvsOee0LUrXBzbfAXpVPQ+AHfv2aiIqjCztu4+NfrxUEJ9gYhIUZx+Oqy/Plx0UdKR\npF9tzwTuB9zu7u/UsHwX4FR3P6GWbQwG9gTWMbMpQA+gwsw6Eu4oJgGnNCJ+EZGl7roLXnsN3n4b\nTENN6lTbdNDbAP9LGAH0b2AqYfROG2AL4A3genefUPSg1AQkIvX01luh2efVV2GLLZKOJhn1bQIq\npA+gBbA9sBHhqv0LYJy7xzYhnBKAiNTHtGmw887Qt29IAllV9ASQBCUAESnUggWw997hlTd4MJOU\nAEQkU04/PTzU/cknoVlBE9w3XXFUAouIpNLAgTBiBIwerZN/Q+gOQETK0ptvwsEHQy4HW22VdDTp\nUNTZQM3seDN7z8zmRa8xZnZc48MUEWm4L78MT/YaMEAn/8aorQ7gOOBM4BxgLGEI6PbAddEV+n2l\nCVFEZJm5c8NIn3PPhQMOSDqa8lZbHcDbwNHuPqnK5+2BIe6+S2xBqQlIRKqxZEmY23+NNaBfPxV7\nVVXMTuDVq578Adx9spmt3qDoREQaoWfPMOb/wQd18i+G2hJAbYVesRWBiYhUZ8gQuO++MM1DixZJ\nR9M01NYENB/4vIb1NnX3VWILysx9l12gSxc48EDo2FHpXiTDxoyBP/0JXngBttsu6WjSq2iFYDU8\nyWspd59cn8Dqw8zcX3gBnn4ahg2D+fNDIujSJZT7rRJb7hGRlPnmG9hlF7jlFjj00KSjSbemWQn8\n6acwfHh4jRkDu+++7O6gKT/tQSTj5s6FPfYIHb+a3rluxbwDmEuVh8DkKeih8A1V6yig2bPh+efD\n3cEzz0DbtiEZdOkSLhNWWCGusESkhBYtCg90b9MG7r5brcCFaJp3ADVZvDjUgFfeHXzzTWgo7NIF\n9tsP1tTjhkXKkXuY4+fTT8O1XvPmSUdUHrKVAKr68stwVzB8eHgi9I47Lrs76NBBlxAiZeKmm8I4\n/9deg5Ytk46mfGQ7AeSbNw9eemnZ3cHKKy/rN9hjD1hppeIEKyJF9fjjcNppYa4fdfHVjxJAddxh\n3LhwLzl8OHz8MeyzT0gIBxwA665bvH2JSIONHh2u0Z57LtzAS/0oARTi22/h2WdDMhg5ErbcUjUH\nIgmbNAl+/3u4445sP9WrMZQA6mvBgvAQUdUciCRm5kz4wx/g1FPhjDOSjqZ8KQE0lmoOREpq3jzY\nd1/YbTe4/vqkoylvSgDFpJoDkVgtWgSHHRZm97zvPj3Vq7GUAOKimgORonKHk08Oo7eHDdPAvGJQ\nAigV1RyINMpll4WxGKNGwWqrJR1N06AEkATVHIjUy+23h2Kv117TKOxiUgJImmoORGo1dGgY6fPq\nq7DJJklH07QoAaSNag5Elnr55TCz54gRsP32SUfT9CgBpJlqDiTDxowJN8EPPQR77ZV0NE1TqhKA\nmfUDDgS+dfdtos/WAoYAGwGTgSPdfXaV9ZpmAqhKNQeSER9+GK5x7rpLVb5xSlsC2B2YC9yXlwB6\nA9+7e28zuwBo5e4XVlkvGwkgn2oOpImaOBH23BN694Zjjkk6mqYtVQkAlj5aclheAvgE2NPdp5tZ\nGyDn7ltWWSd7CSCfag6kifjqqzAQ7oIL4JRTko6m6SuHBDDL3VtF7w2YWflz3jrZTgBVqeZAytB3\n34WTf/fucN55SUeTDfVNACvGGUxd3N3NrNozfc+ePZe+r6iooKKiokRRpVC7dmGWrFNPXb7mYO+9\nVXMgqTR7Nuy/Pxx+uE7+ccrlcuRyuQavn1QTUIW7TzOztsAoNQE1kGoOJIV++im0VO60E/TpoxvU\nUiqHJqDewAx372VmFwJrqhO4SFRzIAmbNy/8ybVvD/fco8ndSi1VCcDMBgN7AusA04HLgCeBh4F2\nZH0YaJxUcyAlNm8eHHQQbLBBeJ6vBq6VXqoSQEMpAcRANQcSo/nzw/j+Nm1gwACd/JOiBCB1U82B\nFNHPP8PBB8Paa8P99+vPJ0lKAFI/qjmQRvjlFzj00PBAl0GDYMVExxWKEoA0jmoOpEC//AJ//nMY\niTx4sE7+aaAEIMWj5xxIDX7+OczqudJKYXK35s2TjkhACUDiopoDicybB4ccEloHH3hAJ/80UQKQ\n0lDNQSbNmROGerZrF4Z6qtknXZQApPRUc5AJs2eH8QHbbhse6agir/RRApDkqeagyZkxIwwK+8Mf\nNL1DmikBSLqo5qDsTZ8eunsOPBCuuUYn/zRTApD0Us1B2ZkyBfbdNzzI5f/+Tyf/tFMCkPLx5Zfh\nzuDpp1VzkEIffwydO8OZZ8I55yQdjRRCCUDKk2oOUmX06DC3T+/ecOyxSUcjhVICkPJXWXNQmQw+\n+UQ1ByU0cmRo8unXLwz5lPKhBCBNj2oOSubhh+H002Ho0DDiR8qLEoA0bZU1B5V3B6o5KJrbboOr\nrw65dtttk45GGkIJQLJFNQeN5g49esCDD4YRu5tsknRE0lBKAJJdlTUHw4eHy1jVHNRpwQLo3j3k\n0aeegtatk45IGkMJQARUc1CAWbPgsMOgZctw9a/Ws/KnBCBSncqag+HDQx9CxmsOJk8OA6r23Rdu\nvFE3R02FEoBIXTJeczBmTHiE4/nnhyIvaTqUAETqI2M1B8OGwYknwl13hUc5StOiBCDSGE205sAd\nrrsuzOT52GOw665JRyRxUAIQKZYmUnPw889w8skwYQI8+SRsuGHSEUlclABE4lKGNQdTp4amnnbt\noH9/WHXVpCOSOCkBiJRCGdQcjBkTTv4nnwyXXlq2rVdSD0oAIqWWwpqDIUPgtNPgzjvDWH/JBiUA\nkaQlWHOwaBFcdBE8+ig88QRst11su5IUUgIQSZMS1hxMnw5HHw0tWsADD8Daaxdt01ImyiYBmNlk\n4EdgMbDQ3TvlLVMCkKYnxpqDN96Ao44KY/wvuywVXRCSgHJKAJOAHd19ZjXLlACk6StCzYE73Hpr\nmMa5f/+QRyS7yi0B7OTuM6pZpgQg2dKAmoM5c+CUU8Kze4cO1TTOUl4J4D/AD4QmoDvd/e68ZUoA\nkm111By8915o799jj3AHsPLKSQcsaVBOCaCtu081s/8CRgKnu/ur0TIlAJFKeTUH/uyzzGjelkGz\nu7D1hV3Y95J01BxIOpRNAlguCLMewFx3vyH62Xv06LF0eUVFBRUVFQlFJ5IO338PJ52wmLUnjub6\niuG0ej0dNQeSnFwuRy6XW/rz5Zdfnv4EYGarACu4+xwzWxV4Hrjc3Z+PlusOQCTPyy/DX/8amn2u\nvjpv9KiecyB5yuIOwMw2Bh6PflwReMDdr8lbrgQgQugb7tkzjPDp1y9c7Nco4885kDJJAHVRAhCB\nDz6Av/0tTOR29931fF5vxp5zIIESgEiZW7wYbrghzN/fqxeccEIRWnJqqjno0iXMF6GmoiZBCUCk\njP3nP3DccdCsGQwYABtvHMNOmshzDuTXlABEytCSJXD77aG9/8IL4eyzQxIoiTJ8zoFUTwlApMx8\n8gmcdFJIAvfcA1ttlWAwVZ9zsN56y+4OUvKcA6mZEoBImVi4EHr3hptuClf+//hHCa/6C5HC5xxI\n7ZQARMrAmDHQvTusvz7ccUeZtLRUrTnYaadldweqOUgFJQCRFJs9G3r0CE/suuEGOOaYMj1v1lRz\n0KVL6ENQzUEilABEUsgd7r8fLrgAunaFf/2rCT2wRTUHqaEEIJIy48bBP/8Jv/wCfftCp051r1PW\nVHOQGCUAkZSYNSt07j70EFx5ZWjzz9wgGtUclJQSgEjCFiwIY/qvvhoOPTT8d511ko4qJVRzECsl\nAJGEuMNjj4V2/g4dwhDP3/0u6ahSTDUHRacEIJKAt9+G886DH3+E66+HffdNOqIyo5qDolACECmh\n8ePhsstCa8YVV4R5fHThWgSqOWgQJQCREvjkk9DBm8uFJp9TT9VzeWOjmoOCKQGIxGjixHCl/8wz\ncO65cNppsNpqSUeVIao5qJUSgEgMPvgArr0WRowIY/rPOQdatkw6KlHNwfKUAESK6I034JprQhv/\nWWfB3/8Oa6yRdFRSLdUcKAGINNaSJaGJ5/rr4Ysv4Pzz4fjj1cZfdjJYc6AEINJAP/wQnsJ1663Q\nqlW44j/qKFhxxaQjk0bLSM2BEoBIPX36aTjpP/AA7L8/nHlmOCdkrPk4O5pwzYESgEgB5s+HoUPh\n3nvho4/g5JPDUM711086Mim5JlRzoAQgUov33gsn/YceCrNynnQSHHSQhpJLpMxrDpQARKr44otw\nwh88OMzQ2b176NRtov2AUixlWHOgBCACTJ8OjzwSTvr//jccdhh06wZ77NFk+vuk1Mqg5kAJQDJr\n4kR46qnwGjs2/Lvs1i1MzJbyO3cpNymtOVACkMyoHMxRedKfMSO053ftmpm6H0mLlNQcKAFIk+Ue\nmmFffBFeeAFefhk22GDZSb9TJ2jWLOkoJfMSrDkoiwRgZp2BPsAKwD3u3qvKciUAYdGiMN3ym2+G\n16hRoShrn33CFf5ee0GbNklHKVKLEtccpD4BmNkKwL+BfYCvgXeAbu7+cd53lAAiuVyOioqKpMOI\n3eLFoQ1//PhwB/3mm2HI5kYbwa67htfKK+c45piKNPS1JS4rfxeFKKvfRcw1B/VNAEncMHcCPnf3\nye6+EHgIODiBOMpCLpdLOoSiWrAgNJc++yz06ROGZO68c5hgrXNnGDQoDL2+5BKYMgUmTIB77gnj\n9T/7LKeTf6Sp/V00Rln9Ltq1CzMKPv00TJsWppX97LNwS9uhA5x9dmjjXLCgJOEkMcvJ+sCUvJ+/\nAnZJIA4poiVLwuMQZ88OQzCnTg13u1OnhtcXX8Dnn4fPNtgANt0UNt88nPy7dw/PztUsm5Ipq6yy\nbBhpfs3BJZeUrOYgiQSgtp0y07dv+LtcuHD5188/hwnUfvgB5s6FVVcNTZqtW4d+r7Ztw2uXXeDw\nw2GzzUKTTvPmSR+RSMqYQceO4XXppcvXHJx1Vqg5eO654vcZJNAHsCvQ0907Rz9fBCzJ7wg2MyUJ\nEZEGSHsn8IqETuC9gW+A0VTpBBYRkfiVvAnI3ReZ2WnACMIw0Ht18hcRKb1UFoKJiEj8Ulc3aWad\nzewTM/vAegHWAAAFLUlEQVTMzC5IOp6kmNmGZjbKzD40swlmdkbSMSXNzFYws7FmNizpWJJkZmua\n2aNm9rGZfRT1q2WSmV0U/Rv5wMweNLMWScdUKmbWz8ymm9kHeZ+tZWYjzexTM3vezGrtNU5VAoiK\nxP4f0BnYCuhmZr9NNqrELATOdvetgV2Bf2b4d1HpTOAjNJLsZuAZd/8tsC2QySZUM2sP/A+wg7tv\nQ2hSPjrJmEqsP+Fcme9CYKS7dwBejH6uUaoSACoSW8rdp7n7+9H7uYR/5OslG1VyzGwD4ADgHiCz\n5WBm1hLY3d37QehTc/cfEg4rKT8SLpRWiQaXrEKYXSAT3P1VYFaVj7sCA6P3A4FDattG2hJAdUVi\nmX9IX3Slsz3wdrKRJOom4H+BJUkHkrCNge/MrL+ZvWdmd5tZJuc9dfeZwA3Al4QRhbPd/YVko0pc\na3efHr2fDrSu7ctpSwBZv7X/FTNbDXgUODO6E8gcM+sCfOvuY8nw1X9kRWAH4DZ33wH4iTpu85sq\nM9sUOAtoT7g7Xs3M/pJoUCkSTahW6zk1bQnga2DDvJ83JNwFZJKZNQeGAoPc/Ymk40nQfwNdzWwS\nMBjYy8zuSzimpHwFfOXu70Q/P0pICFm0E/CGu89w90XAY4S/lSybbmZtAMysLfBtbV9OWwIYA2xu\nZu3NbCXgKOCphGNKhJkZcC/wkbv3STqeJLn7xe6+obtvTOjke8ndj006riS4+zRgipl1iD7aB/gw\nwZCS9Amwq5mtHP172YcwSCDLngKOi94fB9R64ZjEXEA1UpHYcn4P/BUYb2Zjo88ucvfnEowpLbLe\nVHg68EB0kTQROCHheBLh7uOiO8ExhL6h94C7ko2qdMxsMLAnsI6ZTQEuA64FHjaz7sBk4Mhat6FC\nMBGRbEpbE5CIiJSIEoCISEYpAYiIZJQSgIhIRikBiIhklBKAiEhGKQFIJpjZS2a2X5XPzjKz26L3\nm5vZcDP73MzGRN/fPVrWOlr2fjT18NM17KOFmb1sZs3M7D95xVqVy/uY2flmtq2Z3RvXsYoUSglA\nsmIwv54q+CjgQTP7DfA0cIe7b+buOxGKrTaJvncFMMLdO0bTc9f0nIq/AMPdfUnV/ZlZM+DPwGB3\nHw9sambrFunYRBpECUCyYihwYDRtcOUMq+u5+2uEE/fr7j688svu/qG7V06r24a8aYbdfUIN++gG\nPBm9H0xIMJX2AL5w98rZbp8FjmjMAYk0lhKAZEI0dfBowjMFIFydD4neb0WYRqAmfYF7o2ahi6NJ\ntpYTPczod+7+abS/CcASM9s2b38P5q0ympAURBKjBCBZkt8sc1T0c6Wl00yb2ePRIwaHArj784Tm\noLuBLYGxZrZOlW2vA8ypbn9RcjgYeCRv2VTCNMYiiVECkCx5CtjbzLYHVomeLwBhNs2lUyq7+6HA\n8cBaeZ/NcvfB0Syk71D91XvVZxU8RJiMax9gvLt/V+W7mohLEqUEIJkRPVBnFOFZqvnNMQ8Cvzez\ng/I+W5XoBG1mf6x86paZrQ5sCnxRZfPfA6tV2d9/os+vrbI/gLbVbEOkpJQAJGsGA9uQ1/zj7j8D\nXYBTzWyimb0BXAJcFX1lR+AdMxsHvAHc7e7v5m/U3RcDE8xsi2r2twXhYSX5OgGvFOeQRBpG00GL\nFImZHU94JmuvAr6bA45091qf2CQSJ90BiBTPg4ShprU+tzgaGfS5Tv6SNN0BiIhklO4AREQySglA\nRCSjlABERDJKCUBEJKOUAEREMkoJQEQko/4/bpYqx3KkPtUAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f3e9fd00c90>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from numpy import arange\n",
+ "from sympy import symbols, solve\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "\n",
+ "#IDQ, VDSQ, VGSQ\n",
+ "\n",
+ "ID=5e-3# # in amperes\n",
+ "VGS=6# # in volts\n",
+ "VT=3# # in volts\n",
+ "# From Fig. 7.39(a)\n",
+ "VDD=24# # in volts\n",
+ "R1=10# # in mega-ohms\n",
+ "R2=6.8# # in mega-ohms\n",
+ "RD=2.2e3# # in ohms\n",
+ "RS=0.75e3# # in ohms\n",
+ "# Applying Thevnin's theorem to obtain simplified circuit in Fig. 7.39(b)\n",
+ "VGG=VDD*R2/(R1+R2)# # in volts\n",
+ "# Plotting transfer characteristics\n",
+ "k=ID/(VGS-VT)**2# # in amperes per volt square\n",
+ "VGS=arange(3, VGG,0.01) # Gate source voltage in volts\n",
+ "ID=[]\n",
+ "for vgs in VGS:\n",
+ " ID.append(k*(vgs-VT)**2*1e3) # Drain current in mA ............ (i)\n",
+ "\n",
+ " \n",
+ "plot(VGS,ID)#\n",
+ "title(\"Transfer Characteristics\")\n",
+ "xlabel(\"VGS (V)\")\n",
+ "ylabel(\"ID (mA)\")\n",
+ "# Plotting bias line\n",
+ "VGS=arange(0, VGG,0.01)# # Gate source voltage in volts\n",
+ "# Writing KVL for the gate-source loop\n",
+ "ID=[]\n",
+ "for x in VGS:\n",
+ " ID.append((VGG-x)/RS*1e3)# # Source current in mA\n",
+ "plot(VGS,ID,\"RED\")\n",
+ "# Intersection of transfer curve with the bias curve\n",
+ "# Putting VGS = VGG-ID*RD in equation (i) and solving, we get ID**2*RS**2 + (2*RS*VT - 2*VGG*RS - 1/k)*ID + (VGG-VT)**2\n",
+ "# Solving the equation\n",
+ "ID = symbols('ID')\n",
+ "expr = ID**2*RS**2 + (2*RS*VT - 2*VGG*RS - 1/k)*ID + (VGG-VT)**2\n",
+ "IDQ=solve(expr,ID)[0] # in amperes\n",
+ "VGSQ=VGG-IDQ*RS# # in volts\n",
+ "# From the output circuit\n",
+ "VDSQ=VDD-IDQ*(RD+RS)# # in volts\n",
+ "IDQ=IDQ*1e3# # in mili-amperes\n",
+ "print \"IDQ = %0.2f mA \"%IDQ\n",
+ "print \"VDSQ = %0.2f V \"%VDSQ\n",
+ "print \"VGSQ = %0.2f V \"%VGSQ"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch8_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch8_2.ipynb
new file mode 100644
index 00000000..65fd232b
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch8_2.ipynb
@@ -0,0 +1,291 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 8 : FET Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.1: Page No 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "gm = 3.36 mS\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#gm\n",
+ "\n",
+ "IDSS=12# # in mili-amperes\n",
+ "Vp=-5# # in volts\n",
+ "VGS=-1.5# # in volts\n",
+ "gmo=2*IDSS/abs(Vp)# # in mili-Siemens\n",
+ "gm=gmo*(1-VGS/Vp)# # in mili-Siemens\n",
+ "print \"gm = %0.2f mS\"%gm"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.2: Page No 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Voltage gain = -6.7 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Voltage gain\n",
+ "\n",
+ "gm=2# # in mili-ampere per volt\n",
+ "rd=10# # in kilo-ohms\n",
+ "# From Fig. 8.7\n",
+ "RD_eff=10*10/(10+10)# # in kilo-ohms\n",
+ "AV=-gm*rd*RD_eff/(rd+RD_eff)# # Voltage gain\n",
+ "print \"Voltage gain = %0.1f \"%AV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.3: Page No 384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "gm = 1.51 mA/V\n",
+ "µ = 75.56 \n",
+ "Ri = 1.00 MΩ\n",
+ "Ro = 3.22 kΩ\n",
+ "AV = -1.92 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#gm, µ, Ri, Ro, AV\n",
+ "\n",
+ "VGSQ=-2.6# # in volts\n",
+ "IDSS=8# # in mili-amperes\n",
+ "Vp=-6# # in volts\n",
+ "rd=50# # in kilo-ohms\n",
+ "# From Fig. 8.11\n",
+ "RD=3.3# # in kilo-ohms\n",
+ "RG=1# # in mega-ohms\n",
+ "RS=1# # in kilo-ohms\n",
+ "gmo=2*IDSS/abs(Vp)# # in mili-ampere per volt\n",
+ "gm=gmo*(1-VGSQ/Vp)# # in mili-ampere per volt\n",
+ "mu=rd*gm# # µ\n",
+ "Ro=(rd+(1+mu)*RS)*RD/(RD+rd+(1+mu)*RS)# # in kilo-ohms\n",
+ "AV=-mu*RD/(RD+rd+(1+mu)*RS)#\n",
+ "print \"gm = %0.2f mA/V\"%gm\n",
+ "print \"µ = %0.2f \"%mu\n",
+ "print \"Ri = %0.2f MΩ\"%RG\n",
+ "print \"Ro = %0.2f kΩ\"%Ro\n",
+ "print \"AV = %0.2f \"%AV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.4: Page No 386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AV = 0.83 \n",
+ "Ri = 10.00 MΩ\n",
+ "Ro = 0.347 kΩ\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#AV, Ri, Ro\n",
+ "\n",
+ "IDSS=16# # in mili-amperes\n",
+ "Vp=-4# # in volts\n",
+ "rd=40# # in kilo-ohms\n",
+ "# From Fig. 8.14\n",
+ "RS=2.2# # in kilo-ohms\n",
+ "# Using dc analysis\n",
+ "VGSQ=-2.8# # in volts\n",
+ "gmo=2*IDSS/abs(Vp)# # in mili-ampere per volt\n",
+ "gm=gmo*(1-VGSQ/Vp)# # in mili-ampere per volt\n",
+ "mu=rd*gm# # Amplification factor\n",
+ "AV=mu*RS/(rd+(1+mu)*RS)#\n",
+ "Ri=10# # in mega-ohms\n",
+ "Ro=rd*RS/(rd+(1+mu)*RS)# # in kilo-ohms\n",
+ "print \"AV = %0.2f \"%AV\n",
+ "print \"Ri = %0.2f MΩ\"%Ri\n",
+ "print \"Ro = %0.3f kΩ\"%Ro"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.5: Page No 389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AV = 6.30 \n",
+ "Ri = 0.39 kΩ\n",
+ "Ro = 3.05 kΩ\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#AV, Ri, Ro\n",
+ "\n",
+ "VGSQ=-1.8# # in volts\n",
+ "rd=40# # in kilo-ohms\n",
+ "IDSS=8# # in mili-amperes\n",
+ "Vp=-2.8# # in volts\n",
+ "# From Fig. 8.16\n",
+ "RD=3.3# # in kilo-ohms\n",
+ "RS=1.5# # in kilo-ohms\n",
+ "gmo=2*IDSS/abs(Vp)# # in mili-Siemens\n",
+ "gm=gmo*(1-VGSQ/Vp)# # in mili-Siemens\n",
+ "mu=rd*gm# # Amplification factor\n",
+ "AV=(1+mu)*RD/(rd+RD)#\n",
+ "Ri_dash=(RD+rd)/(1+mu)# # in kilo-ohms\n",
+ "Ri=Ri_dash*RS/(Ri_dash+RS)# # in kilo-ohms\n",
+ "Ro=rd*RD/(rd+RD)#\n",
+ "print \"AV = %0.2f \"%AV\n",
+ "print \"Ri = %0.2f kΩ\"%Ri\n",
+ "print \"Ro = %0.2f kΩ\"%Ro"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.6: Page No 392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "gm = 3.00 mS\n",
+ "AV = -6.60 \n",
+ "Ri = 1.32 MΩ\n",
+ "Ro = 2.20 kΩ\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#gm, Ri, Ro, AV\n",
+ "\n",
+ "VGSQ=8# # in volts\n",
+ "VT=3# # in volts\n",
+ "k=0.3e-3#\n",
+ "# From Fig. 8.18\n",
+ "RF=10e6# # in ohms\n",
+ "RD=2.2e3# # in ohms\n",
+ "gm=2*k*(VGSQ-VT)# # in Siemens\n",
+ "Ri=RF/(1+gm*RD)# # in ohms\n",
+ "Ro=RF*RD/(RF+RD)# # in ohms\n",
+ "AV=-gm*Ro#\n",
+ "gm=gm*1e3# # in mili-Siemens\n",
+ "Ri=Ri*1e-6# # in mega-ohms\n",
+ "Ro=Ro*1e-3# # in kilo-ohms\n",
+ "print \"gm = %0.2f mS\"%gm\n",
+ "print \"AV = %0.2f \"%AV\n",
+ "print \"Ri = %0.2f MΩ\"%Ri\n",
+ "print \"Ro = %0.2f kΩ\"%Ro"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch9_2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch9_2.ipynb
new file mode 100644
index 00000000..4f007e85
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch9_2.ipynb
@@ -0,0 +1,466 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 9 : Multistage Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exmaple 9.1: Page No 402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Overall voltage gain = -79.61 \n",
+ "Overall current gain = -31.84 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Overall voltage gain, Overall current gain\n",
+ "\n",
+ "bta=100#\n",
+ "r_pi=0.5# # in kilo-ohms\n",
+ "# From Fig. 9.4\n",
+ "Rs=2# # in kilo-ohms\n",
+ "RC=2# # in kilo-ohms\n",
+ "RE=5# # in kilo-ohms\n",
+ "# As the first stage ia a CE amplifier stage\n",
+ "AV1=-bta*RC/(Rs+r_pi)# # Voltage gain of first amplifier\n",
+ "# The second stage is a CC amplifier\n",
+ "AV2=(1+bta)*RE/(Rs+r_pi+(1+bta)*RE)# # Voltage gain of second amplifier\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "AI=Rs*AV/RE# # Overall current gain\n",
+ "print \"Overall voltage gain = %0.2f \"%AV\n",
+ "print \"Overall current gain = %0.2f \"%AI"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.2: Page No 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Overall voltage gain = 12119.79 \n",
+ "Overall current gain = 939.35 \n",
+ "Imput impedance = 0.78 kΩ \n",
+ "Output impedance = 1.67 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Overall voltage gain, Current gain, Input impedance, Output impedance\n",
+ "\n",
+ "bta=100#\n",
+ "VBE=0.7# # in volts\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 9.7\n",
+ "R1=22# # in kilo-ohms\n",
+ "R2=3.3# # in kilo-ohms\n",
+ "RC1=6# # in kilo-ohms\n",
+ "RE1=0.5# # in kilo-ohms\n",
+ "R3=16# # in kilo-ohms\n",
+ "R4=6.2# # in kilo-ohms\n",
+ "RC2=2# # in kilo-ohms\n",
+ "RE2=1# # in kilo-ohms\n",
+ "RL=10# # in kilo-ohms\n",
+ "\n",
+ "\n",
+ "# DC analysis\n",
+ "\n",
+ "# From simplified dc equivalent circuit for stage 1 in Fig. 9.8(a)\n",
+ "RB1=R1*R2/(R1+R2)# # in kilo-ohms\n",
+ "VBB1=15*R2/(R1+R2)# # in volts\n",
+ "IB1=(VBB1-VBE)/(RB1+(1+bta)*RE1)# # in mili-amperes\n",
+ "IC1=bta*IB1# # in mili-amperes\n",
+ "gm1=IC1/VT# # in mili-Siemens\n",
+ "r_pi1=bta/gm1# # in kilo-ohms\n",
+ "\n",
+ "# From simplified dc equivalent circuit for stage 2 in Fig. 9.8(b)\n",
+ "RB2=R3*R4/(R3+R4)# # in kilo-ohms\n",
+ "VBB2=15*R4/(R3+R4)# # in volts\n",
+ "IB2=(VBB2-VBE)/(RB2+(1+bta)*RE2)# # in mili-amperes\n",
+ "IC2=bta*IB2# # in mili-amperes\n",
+ "gm2=IC2/VT# # in mili-Siemens\n",
+ "r_pi2=bta/gm2# # in kilo-ohms\n",
+ "\n",
+ "\n",
+ "# AC analysis\n",
+ "\n",
+ "# Applying Thevnin theorem at 1-1' in ac equivalent circuit in Fig. 9.9 to obtain equivalent circuit of stage 1 in Fig. 9.10(a)\n",
+ "RL1=RC1*RB2/(RC1+RB2)# # Effective load for first stage in kilo-ohms\n",
+ "AV1=-bta*RL1/r_pi1# # Voltage gain of first stage\n",
+ "\n",
+ "# Using the Thevnin's equivalent of first stage the equivalent circuit of second stage is shown in Fig. 9.10(b)\n",
+ "RL2=RC2*RL/(RC2+RL)# # Effective load for second stage in kilo-ohms\n",
+ "AV2=-bta*RL2/(RL1+r_pi2)# # Voltage gain of second stage\n",
+ "\n",
+ "Io_Ic2=-RC2/(RC2+RL)# # Io/Ic2\n",
+ "Ic2_Ib2=-bta# # Ic2/Ib2\n",
+ "#From simplified diagram in Fig. 9.11\n",
+ "Ib2_Ic1=-RL1/(RL1+r_pi2)# # Ib2/Ic1\n",
+ "Ic1_Ib1=-bta# # Ic1/Ib1\n",
+ "Ib1_Ii=RB1/(RB1+r_pi1)# # Ib1/Ii\n",
+ "\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "AI=Io_Ic2*Ic2_Ib2*Ib2_Ic1*Ic1_Ib1*Ib1_Ii# # Overall current gain\n",
+ "Ri=RB1*r_pi1/(RB1+r_pi1)# # Input impedance in kilo-ohms\n",
+ "Ro=RC2*RL/(RC2+RL)# # Output impedance in kilo-ohms\n",
+ "print \"Overall voltage gain = %0.2f \"%AV\n",
+ "print \"Overall current gain = %0.2f \"%AI\n",
+ "print \"Imput impedance = %0.2f kΩ \"%Ri\n",
+ "print \"Output impedance = %0.2f kΩ \"%Ro"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.3: Page No 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Voltage gain = -825.58 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Voltage gain\n",
+ "\n",
+ "bta=150#\n",
+ "VA=130# # in volts\n",
+ "IC=100# # in micro-amperes\n",
+ "Rs=50# # in kilo-ohms\n",
+ "RC=250# # in kilo-ohms\n",
+ "VT=25# # Voltage equivalent to temperatue at room temperature in mili-volts\n",
+ "gm=IC/VT# # in mili-Siemens\n",
+ "ro=VA/IC# # in Megaohms\n",
+ "ro=ro*1e3# # in kilo-ohms\n",
+ "r_pi=bta/gm# # in kilo-ohms\n",
+ "# From ac equivalent circuit of the first CC stage using hybrid-Ï€ model in Fig. 9.13(a)\n",
+ "# Voltage gain of CC stage\n",
+ "AV1=(1+bta)*ro/(Rs+r_pi+(1+bta)*ro)# # Voltage gain of first stage\n",
+ "Ro1=(Rs+r_pi)/(1+bta)# # in kilo-ohms\n",
+ "Ro1_dash=ro*Ro1/(ro+Ro1)# # in kilo-ohms\n",
+ "# From the ac equivalent circuit of second stage in Fig. 9.13(b)\n",
+ "RL=ro*RC/(ro+RC)# # Effective load for second stage in kilo-ohms\n",
+ "AV2=-bta*RL/(Ro1_dash+r_pi)# # Voltage gain of second stage\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "print \"Voltage gain = %0.2f \"%AV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.4: Page No 409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "Voltage gain = 30.25 \n",
+ "Input impedance = 3.00 MΩ \n",
+ "Output impedance = 2.20 kΩ \n",
+ "Part (ii)\n",
+ "Output voltage = 247.95 mV \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "# (i) Voltage gain, Input impedance, Output impedance\n",
+ "# (ii) Output voltage\n",
+ "\n",
+ "gm=2.5# # in mili-Siemens\n",
+ "# From Fig. 9.14(a)\n",
+ "RG=3# # in Mega-ohms\n",
+ "RD=2.2# # in kilo-ohms\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "AV1=-gm*RD# # Voltage gain of both individual stages\n",
+ "AV=AV1**2# # Overall voltage gain\n",
+ "print \"Voltage gain = %0.2f \"%AV\n",
+ "print \"Input impedance = %0.2f MΩ \"%RG\n",
+ "print \"Output impedance = %0.2f kΩ \"%RD\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "Vi=10# # in mili-volts\n",
+ "RD_dash=RD*10/(RD+10)# # Effective load of secong stage in kilo-ohms\n",
+ "# Now the gain of second stage\n",
+ "AV2=-gm*RD_dash#\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "Vo=Vi*AV# # Output voltage in mili-volts\n",
+ "print \"Output voltage = %0.2f mV \"%Vo"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.5: Page No 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "Voltage gain of first stage = -9.88 CS amplifier with RS1 \n",
+ "Voltage gain of second stage = -8.00 CS amplifier stage \n",
+ "Voltage gain of third stage = 0.82 CD amplifier stage \n",
+ "Part (ii)\n",
+ "Overall voltage gain = 64.50 \n",
+ "Part (iii)\n",
+ "Output resistance = 0.816 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "## (i) Gain of each stage\n",
+ "# (ii) Overall voltage gain\n",
+ "# (iii) Output resistance Ro'\n",
+ "\n",
+ "gm=1 # in mili-mho\n",
+ "rd=40# # in kilo-ohms\n",
+ "# From Fig. 9.14(b)\n",
+ "RD1=40 # in kilo-ohms\n",
+ "RS1=2 # in kilo-ohms\n",
+ "RD2=10 # in kilo-ohms\n",
+ "RS3=5 # in kilo-ohms\n",
+ "mu=rd*gm# # Amplification factor\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "AV1=-mu*RD1/(rd+RD1+(1+mu)*RS1)# # Voltage gain of first stage (CS amplifier with RS1)\n",
+ "AV2=-mu*RD2/(rd+RD2)# # Voltage gain of second stage (CS amplifier stage)\n",
+ "AV3=mu*RS3/(rd+(1+mu)*RS3)# # Voltage gain of third stage (CD amplifier stage)\n",
+ "print \"Voltage gain of first stage = %0.2f CS amplifier with RS1 \"%AV1\n",
+ "print \"Voltage gain of second stage = %0.2f CS amplifier stage \"%AV2\n",
+ "print \"Voltage gain of third stage = %0.2f CD amplifier stage \"%AV3\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "AV=AV1*AV2*AV3# # Overall voltage gain\n",
+ "print \"Overall voltage gain = %0.2f \"%AV\n",
+ "\n",
+ "print \"Part (iii)\"\n",
+ "# Last stage is a CD amplifier, therefore\n",
+ "Ro=rd/(1+mu)# # in kilo-ohms\n",
+ "Ro_dash=Ro*RS3/(Ro+RS3)# # in kilo-ohms\n",
+ "print \"Output resistance = %0.3f kΩ \"%Ro_dash"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.6: Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Input impedance = 10.00 MΩ \n",
+ "Output impedance = 2.70 kΩ \n",
+ "Voltage gain = 647.33 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Input impedance, Output impedance, Voltage gain\n",
+ "\n",
+ "gm=2.5# # in mili-Siemens\n",
+ "r_pi=1.3# # in kilo-ohms\n",
+ "bta=200#\n",
+ "# From Fig. 9.14(c)\n",
+ "Ri2=15*4.7*1.3/(15*4.7+15*1.3+4.7*1.3)# # Input impedance of second stage in kilo-ohms\n",
+ "RD_dash=1.8*Ri2/(1.8+Ri2)# # Effective load for the first stage in kilo-ohms\n",
+ "AV1=-gm*RD_dash# # Voltage gain of the loaded 1st stage\n",
+ "AV2=-bta*2.7/r_pi# # Voltage gain of the 2nd stage\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "print \"Input impedance = %0.2f MΩ \"%10\n",
+ "print \"Output impedance = %0.2f kΩ \"%2.70\n",
+ "print \"Voltage gain = %0.2f \"%AV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.7: Page No 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AV = 0.93 \n",
+ "Ri = 12.02 MΩ \n",
+ "Ro = 30.64 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#AV, Ri, Ro\n",
+ "\n",
+ "RE=0.5# # in kilo-ohms\n",
+ "Rs=50# # in kilo-ohms\n",
+ "Ic1=15e-3# # in mili-amperes\n",
+ "Ic2=1# # in mili-amperes\n",
+ "VA=100# # in volts\n",
+ "bta=150#\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# For Q1\n",
+ "gm1=Ic1/VT# # in mili-mho\n",
+ "r_pi1=bta/gm1# # in kilo-ohms\n",
+ "ro1=VA/Ic1# # in kilo-ohms\n",
+ "# For Q2\n",
+ "gm2=Ic2/VT# # in mili-mho\n",
+ "r_pi2=bta/gm2# # in kilo-ohms\n",
+ "ro2=VA/Ic2# # in kilo-ohms\n",
+ "# From ac equivalent circuit in Fig. 9.17\n",
+ "RE2=ro2*RE/(ro2+RE)# # Effective load for stage Q2 in kilo-ohms\n",
+ "Ri2=r_pi2+(1+bta)*RE2# # Input resistance for second stage in kilo-ohms\n",
+ "AV2=(1+bta)*RE2/Ri2# # Voltage gain of the second stage\n",
+ "RE1=ro1*Ri2/(ro1+Ri2)# # Effective load for the first stage in kilo-ohms\n",
+ "Ri1=r_pi1+(1+bta)*RE1# # Input resistance for first stage in kilo-ohms\n",
+ "AV1=(1+bta)*RE1/Ri1# # Voltage gain of first stage\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "Ro=ro2*(r_pi2+ro1)/(ro2*(1+bta)+r_pi2+ro1)# # Output resistance in kilo-ohms\n",
+ "Ri1=Ri1*1e-3# # in Mega-ohms\n",
+ "print \"AV = %0.2f \"%AV\n",
+ "print \"Ri = %0.2f MΩ \"%Ri1\n",
+ "print \"Ro = %0.2f kΩ \"%Ro"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.8 : Page 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Gain = -240.00 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "IC=1# # in mili-amperes\n",
+ "bta=120#\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 9.20\n",
+ "RC=6# # in kilo-ohms\n",
+ "AV1=-1# # Voltage gain of CE stage (from Eqn. 9.35)\n",
+ "gm=IC/VT# # in mili-mho\n",
+ "AV2=gm*RC# # Voltage gain of CB stage\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "print \"Gain = %0.2f \"%AV"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNip3_2.png b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNip3_2.png
new file mode 100644
index 00000000..5fba4497
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNip3_2.png
Binary files differ
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNipV3_2.png b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNipV3_2.png
new file mode 100644
index 00000000..aee8da44
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNipV3_2.png
Binary files differ
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/transferChar3_2.png b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/transferChar3_2.png
new file mode 100644
index 00000000..eabea8d1
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/transferChar3_2.png
Binary files differ
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter10_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter10_2.ipynb
new file mode 100644
index 00000000..65279f94
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter10_2.ipynb
@@ -0,0 +1,168 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter10 - Optical Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.1 : Page 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "refrative index is : 3.75\n",
+ "spectral bandwidth = 2.09 GHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, asin, sqrt\n",
+ "from __future__ import division\n",
+ "#refractive index and bandwidth\n",
+ "#given data :\n",
+ "lamda=1.55*10**-6## in m\n",
+ "del_lamda=1*10**-9## in m\n",
+ "L=320*10**-6## in m\n",
+ "n=(lamda)**2/(2*del_lamda*L)#\n",
+ "Gs=10**(5/10)## 5 dB is equivalent to 3.16\n",
+ "R1=30/100#\n",
+ "R2=R1#\n",
+ "c=3*10**8## in m/s\n",
+ "del_v=(c/(pi*n*L))*asin((1-(Gs*sqrt(R1*R2)))/(sqrt(4*Gs*sqrt(R1*R2))))#\n",
+ "print \"refrative index is : %0.2f\"%n\n",
+ "print \"spectral bandwidth = %0.2f GHz\"%(del_v*10**-9)\n",
+ "#bandwidth is calculated wrong in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.2 : Page 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "small signal gain of EDFA = 32.91 dB\n",
+ "maximum possible achievable gain = 84.71 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log10, exp\n",
+ "#small-signal gain of EDFA and maximum pssible achievable gain\n",
+ "ts=0.80##\n",
+ "sa=4.6444*10**-25##in m**2\n",
+ "n12=6*10**24##m**-3\n",
+ "se=4.644*10**-25##m**2\n",
+ "n21=0.70##\n",
+ "l=7##in meter\n",
+ "x=((sa*n12*l*(((se/sa)+1)*n21-1)))##\n",
+ "G=ts*exp(x)##\n",
+ "Gdb=10*log10(G)##\n",
+ "Gmax=exp(se*n12*l)##\n",
+ "Gmaxdb=10*log10(Gmax)##\n",
+ "print \"small signal gain of EDFA = %0.2f dB\"%Gdb\n",
+ "print \"maximum possible achievable gain = %0.2f dB\"%Gmaxdb"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.3 : Page 264"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "output signal power for forward pumping = 4.60 micro Watt\n",
+ "part (b)\n",
+ "overall gain = 6.63 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log10, exp\n",
+ "#output signal power and overall gain\n",
+ "print \"part (a)\"\n",
+ "psin=1*10**-6##in watts\n",
+ "ppin=1##in watts\n",
+ "gr=5*10**-14##mW**-1\n",
+ "ap1=60*10**-12##m**2\n",
+ "l=2000##meter\n",
+ "asdb=0.15##dB/km\n",
+ "As=3.39*10**-5##m**-1\n",
+ "apdb=0.20##db/km\n",
+ "ap=4.50*10**-5##m**-1\n",
+ "z=(1-exp(-ap*l))/ap##\n",
+ "y=(gr/ap1)##\n",
+ "y1=z*y##\n",
+ "y2=y1-(As*l)##\n",
+ "psl=psin*exp(y2)##\n",
+ "print \"output signal power for forward pumping = %0.2f micro Watt\"%(psl*10**6)\n",
+ "print \"part (b)\"\n",
+ "y1=z*y##\n",
+ "y2=y1-(As*l)##\n",
+ "psl=psin*exp(y2)##\n",
+ "gfra=psl/(psin)##\n",
+ "Gdb=10*log10(gfra)##\n",
+ "print \"overall gain = %0.2f dB\"%Gdb"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter10_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter10_3.ipynb
new file mode 100644
index 00000000..65279f94
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter10_3.ipynb
@@ -0,0 +1,168 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter10 - Optical Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.1 : Page 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "refrative index is : 3.75\n",
+ "spectral bandwidth = 2.09 GHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, asin, sqrt\n",
+ "from __future__ import division\n",
+ "#refractive index and bandwidth\n",
+ "#given data :\n",
+ "lamda=1.55*10**-6## in m\n",
+ "del_lamda=1*10**-9## in m\n",
+ "L=320*10**-6## in m\n",
+ "n=(lamda)**2/(2*del_lamda*L)#\n",
+ "Gs=10**(5/10)## 5 dB is equivalent to 3.16\n",
+ "R1=30/100#\n",
+ "R2=R1#\n",
+ "c=3*10**8## in m/s\n",
+ "del_v=(c/(pi*n*L))*asin((1-(Gs*sqrt(R1*R2)))/(sqrt(4*Gs*sqrt(R1*R2))))#\n",
+ "print \"refrative index is : %0.2f\"%n\n",
+ "print \"spectral bandwidth = %0.2f GHz\"%(del_v*10**-9)\n",
+ "#bandwidth is calculated wrong in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.2 : Page 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "small signal gain of EDFA = 32.91 dB\n",
+ "maximum possible achievable gain = 84.71 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log10, exp\n",
+ "#small-signal gain of EDFA and maximum pssible achievable gain\n",
+ "ts=0.80##\n",
+ "sa=4.6444*10**-25##in m**2\n",
+ "n12=6*10**24##m**-3\n",
+ "se=4.644*10**-25##m**2\n",
+ "n21=0.70##\n",
+ "l=7##in meter\n",
+ "x=((sa*n12*l*(((se/sa)+1)*n21-1)))##\n",
+ "G=ts*exp(x)##\n",
+ "Gdb=10*log10(G)##\n",
+ "Gmax=exp(se*n12*l)##\n",
+ "Gmaxdb=10*log10(Gmax)##\n",
+ "print \"small signal gain of EDFA = %0.2f dB\"%Gdb\n",
+ "print \"maximum possible achievable gain = %0.2f dB\"%Gmaxdb"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.3 : Page 264"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "output signal power for forward pumping = 4.60 micro Watt\n",
+ "part (b)\n",
+ "overall gain = 6.63 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log10, exp\n",
+ "#output signal power and overall gain\n",
+ "print \"part (a)\"\n",
+ "psin=1*10**-6##in watts\n",
+ "ppin=1##in watts\n",
+ "gr=5*10**-14##mW**-1\n",
+ "ap1=60*10**-12##m**2\n",
+ "l=2000##meter\n",
+ "asdb=0.15##dB/km\n",
+ "As=3.39*10**-5##m**-1\n",
+ "apdb=0.20##db/km\n",
+ "ap=4.50*10**-5##m**-1\n",
+ "z=(1-exp(-ap*l))/ap##\n",
+ "y=(gr/ap1)##\n",
+ "y1=z*y##\n",
+ "y2=y1-(As*l)##\n",
+ "psl=psin*exp(y2)##\n",
+ "print \"output signal power for forward pumping = %0.2f micro Watt\"%(psl*10**6)\n",
+ "print \"part (b)\"\n",
+ "y1=z*y##\n",
+ "y2=y1-(As*l)##\n",
+ "psl=psin*exp(y2)##\n",
+ "gfra=psl/(psin)##\n",
+ "Gdb=10*log10(gfra)##\n",
+ "print \"overall gain = %0.2f dB\"%Gdb"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter11_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter11_2.ipynb
new file mode 100644
index 00000000..88859515
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter11_2.ipynb
@@ -0,0 +1,145 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter11 - Wavelength-division multiplexing"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.1 : Page 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "interaction length = 0.785 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, asin\n",
+ "#interaction length \n",
+ "po=1##assume\n",
+ "p1=po/2##\n",
+ "p2=p1##\n",
+ "kl=asin(sqrt(p1))##in degree\n",
+ "print \"interaction length = %0.3f \"%kl\n",
+ "#answer is in the form of pi in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.2 : Page 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output port positioned at 0.7492 mm with respect to the input port will gather signals at h1=1310nm\n",
+ "output port positioned at 0.6117 mm with respect to the input port will gather signals at h1=1550nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, asin\n",
+ "#position \n",
+ "a=8.2##in micro meter\n",
+ "n1=1.45##\n",
+ "n2=1.446##\n",
+ "h1=1.31##in micro meter\n",
+ "h2=1.55##/in micro meter\n",
+ "v1=((2*pi*a*sqrt(n1**2-n2**2))/h1)##\n",
+ "v2=((2*pi*a*sqrt(n1**2-n2**2))/h2)##\n",
+ "db=2.439##\n",
+ "Del=5.5096*10**-3##\n",
+ "k1=1.0483##mm**-1##\n",
+ "k2=1.2839#/m**-1\n",
+ "l1=((pi)/(4*k1))##in mm\n",
+ "l2=((pi)/(4*k2))##in mm\n",
+ "print \"output port positioned at %0.4f\"%(l1),\" mm with respect to the input port will gather signals at h1=1310nm\"\n",
+ "print \"output port positioned at %0.4f\"%(l2),\" mm with respect to the input port will gather signals at h1=1550nm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.4 : Page 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "required order of the arrayed waveguide, = 121.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "# ARRAYED GUIDE\n",
+ "#given data\n",
+ "c=3*10**8#\n",
+ "lamda_c=1.55*10**-6## in m\n",
+ "vc=c/lamda_c#\n",
+ "n=16## number of channel\n",
+ "f=100*10**9## in Hz\n",
+ "delV_FSR=n*f#\n",
+ "m=round(vc/delV_FSR)#\n",
+ "print \"required order of the arrayed waveguide, = \",m"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter11_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter11_3.ipynb
new file mode 100644
index 00000000..88859515
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter11_3.ipynb
@@ -0,0 +1,145 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter11 - Wavelength-division multiplexing"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.1 : Page 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "interaction length = 0.785 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, asin\n",
+ "#interaction length \n",
+ "po=1##assume\n",
+ "p1=po/2##\n",
+ "p2=p1##\n",
+ "kl=asin(sqrt(p1))##in degree\n",
+ "print \"interaction length = %0.3f \"%kl\n",
+ "#answer is in the form of pi in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.2 : Page 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output port positioned at 0.7492 mm with respect to the input port will gather signals at h1=1310nm\n",
+ "output port positioned at 0.6117 mm with respect to the input port will gather signals at h1=1550nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, asin\n",
+ "#position \n",
+ "a=8.2##in micro meter\n",
+ "n1=1.45##\n",
+ "n2=1.446##\n",
+ "h1=1.31##in micro meter\n",
+ "h2=1.55##/in micro meter\n",
+ "v1=((2*pi*a*sqrt(n1**2-n2**2))/h1)##\n",
+ "v2=((2*pi*a*sqrt(n1**2-n2**2))/h2)##\n",
+ "db=2.439##\n",
+ "Del=5.5096*10**-3##\n",
+ "k1=1.0483##mm**-1##\n",
+ "k2=1.2839#/m**-1\n",
+ "l1=((pi)/(4*k1))##in mm\n",
+ "l2=((pi)/(4*k2))##in mm\n",
+ "print \"output port positioned at %0.4f\"%(l1),\" mm with respect to the input port will gather signals at h1=1310nm\"\n",
+ "print \"output port positioned at %0.4f\"%(l2),\" mm with respect to the input port will gather signals at h1=1550nm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.4 : Page 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "required order of the arrayed waveguide, = 121.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "# ARRAYED GUIDE\n",
+ "#given data\n",
+ "c=3*10**8#\n",
+ "lamda_c=1.55*10**-6## in m\n",
+ "vc=c/lamda_c#\n",
+ "n=16## number of channel\n",
+ "f=100*10**9## in Hz\n",
+ "delV_FSR=n*f#\n",
+ "m=round(vc/delV_FSR)#\n",
+ "print \"required order of the arrayed waveguide, = \",m"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter12_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter12_2.ipynb
new file mode 100644
index 00000000..e34608c5
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter12_2.ipynb
@@ -0,0 +1,263 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter12 - Fiber-optic communiation systems"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.1 : Page 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "maximum possible link length = 8.00 km\n",
+ "total rise time of the system in ns is 30.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi\n",
+ "#link length and reise time\n",
+ "af=2.5##dB/km\n",
+ "ac=0.5##dB/splice\n",
+ "nc=1##\n",
+ "lc=1##dB\n",
+ "ncc=2##\n",
+ "plx=-10##dBm\n",
+ "prx=-42##dBm\n",
+ "Ms=6##dB\n",
+ "L=((plx-prx-Ms-(lc*ncc))/(af+ac))##\n",
+ "TTX=12##NS\n",
+ "TRX=11##NS\n",
+ "NS1=3##NS/KM\n",
+ "NS2=1##NS/KM\n",
+ "tmat=(NS1*L)##ns\n",
+ "tint=(NS2*L)##ns\n",
+ "tsys=sqrt((TTX**2+tmat**2+tint**2+TRX**2))##ns\n",
+ "print\"maximum possible link length = %0.2f km\"% L\n",
+ "print \"total rise time of the system in ns is\",round(tsys)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.2: Page 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "maximum possible link length = 4.71 km\n",
+ "part (b)\n",
+ "system bandwidth = 8.00 MHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi\n",
+ "## link length and bandwidth\n",
+ "print \"part (a)\"\n",
+ "af=3##dB/km\n",
+ "ac=0.5##dB/splice\n",
+ "nc=1##\n",
+ "lc=1##dB\n",
+ "ncc=1.5##\n",
+ "plx=0##dBm\n",
+ "prx=-25##dBm\n",
+ "Ms=7##dB\n",
+ "L=((plx-prx-Ms-(lc*ncc))/(af+ac))##\n",
+ "TTX=12##NS\n",
+ "TRX=11##NS\n",
+ "NS1=3##NS/KM\n",
+ "NS2=1##NS/KM\n",
+ "tmat=(NS1*L)##ns\n",
+ "tint=(NS2*L)##ns\n",
+ "tsys=sqrt((TTX**2+tmat**2+tint**2+TRX**2))##ns\n",
+ "print \"maximum possible link length = %0.2f km\"%L\n",
+ "print \"part (b)\"\n",
+ "af=3##dB/km\n",
+ "ac=0.5##dB/splice\n",
+ "nc=1##\n",
+ "lc=1##dB\n",
+ "ncc=1.5##\n",
+ "plx=-0##dBm\n",
+ "prx=-25##dBm\n",
+ "Ms=7##dB\n",
+ "L=((plx-prx-Ms-(lc*ncc))/(af+ac))##\n",
+ "TTX=1##NS\n",
+ "TRX=5##NS\n",
+ "NS1=9##NS/KM\n",
+ "NS2=2##NS/KM\n",
+ "tf=((NS1*L)**2+(NS2*L)**2)##\n",
+ "tsys=sqrt((TTX**2+tf+TRX**2))##ns\n",
+ "df=0.35/(tsys*10**-3)##\n",
+ "print \"system bandwidth = %0.2f MHz\"%round(df)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.3 : Page 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "no. of subscribers are 38.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi,log10\n",
+ "\n",
+ "#no. of subscribers\n",
+ "pt=1##mW\n",
+ "pn=-40##dBm\n",
+ "pn1=10**(pn/10)##\n",
+ "c=0.05##\n",
+ "d=0.11##\n",
+ "x=((pn1)/(pt*c))##\n",
+ "y=((log10(x))/(log10((1-d)*(1-c))))##\n",
+ "n=y+1##\n",
+ "print \"no. of subscribers are\",round(n)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.4: Page 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total power, P_tot = 92.4 mW\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Total power\n",
+ "#given data :\n",
+ "L_eff=20## in km\n",
+ "del_lamdaC=125## in nm\n",
+ "gR=6*10**-14## m/W\n",
+ "A_eff=55*10**-12## in m**2#\n",
+ "del_lamdaS=0.8## in nm\n",
+ "N=32## number of channels\n",
+ "F=0.1## constant\n",
+ "P_tot=(4*F*del_lamdaC*A_eff)/(gR*del_lamdaS*L_eff*(N-1))#\n",
+ "print \"Total power, P_tot = %0.1f mW\"%P_tot"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.5 : Page 312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "SBS threshold power for the worst case = 8.66 mW\n",
+ "SBS threshold power for the best possible case = 17.33 mW\n"
+ ]
+ }
+ ],
+ "source": [
+ "#SBS threshold power\n",
+ "#given data :\n",
+ "gb=4*10**-11## in m/W\n",
+ "A_eff=55*10**-12## in m**2\n",
+ "L_eff=20## in km\n",
+ "lamda_p=1.55## micro-m\n",
+ "n=1.46## constant\n",
+ "Va=5960## for the silica fiber in m-s**-1\n",
+ "Vb=(2*n*Va)/lamda_p#\n",
+ "del_v=100*10**6## in Hz\n",
+ "del_Vb=20*10**6## in Hz\n",
+ "b1=1#\n",
+ "b2=2#\n",
+ "P_th=((21*b1*A_eff)/(gb*L_eff))*(1+(del_v/del_Vb))\n",
+ "P_th1=((21*b2*A_eff)/(gb*L_eff))*(1+(del_v/del_Vb))\n",
+ "print \"SBS threshold power for the worst case = %0.2f mW\"%P_th\n",
+ "print \"SBS threshold power for the best possible case = %0.2f mW\"%P_th1"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter12_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter12_3.ipynb
new file mode 100644
index 00000000..e34608c5
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter12_3.ipynb
@@ -0,0 +1,263 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter12 - Fiber-optic communiation systems"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.1 : Page 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "maximum possible link length = 8.00 km\n",
+ "total rise time of the system in ns is 30.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi\n",
+ "#link length and reise time\n",
+ "af=2.5##dB/km\n",
+ "ac=0.5##dB/splice\n",
+ "nc=1##\n",
+ "lc=1##dB\n",
+ "ncc=2##\n",
+ "plx=-10##dBm\n",
+ "prx=-42##dBm\n",
+ "Ms=6##dB\n",
+ "L=((plx-prx-Ms-(lc*ncc))/(af+ac))##\n",
+ "TTX=12##NS\n",
+ "TRX=11##NS\n",
+ "NS1=3##NS/KM\n",
+ "NS2=1##NS/KM\n",
+ "tmat=(NS1*L)##ns\n",
+ "tint=(NS2*L)##ns\n",
+ "tsys=sqrt((TTX**2+tmat**2+tint**2+TRX**2))##ns\n",
+ "print\"maximum possible link length = %0.2f km\"% L\n",
+ "print \"total rise time of the system in ns is\",round(tsys)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.2: Page 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "maximum possible link length = 4.71 km\n",
+ "part (b)\n",
+ "system bandwidth = 8.00 MHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi\n",
+ "## link length and bandwidth\n",
+ "print \"part (a)\"\n",
+ "af=3##dB/km\n",
+ "ac=0.5##dB/splice\n",
+ "nc=1##\n",
+ "lc=1##dB\n",
+ "ncc=1.5##\n",
+ "plx=0##dBm\n",
+ "prx=-25##dBm\n",
+ "Ms=7##dB\n",
+ "L=((plx-prx-Ms-(lc*ncc))/(af+ac))##\n",
+ "TTX=12##NS\n",
+ "TRX=11##NS\n",
+ "NS1=3##NS/KM\n",
+ "NS2=1##NS/KM\n",
+ "tmat=(NS1*L)##ns\n",
+ "tint=(NS2*L)##ns\n",
+ "tsys=sqrt((TTX**2+tmat**2+tint**2+TRX**2))##ns\n",
+ "print \"maximum possible link length = %0.2f km\"%L\n",
+ "print \"part (b)\"\n",
+ "af=3##dB/km\n",
+ "ac=0.5##dB/splice\n",
+ "nc=1##\n",
+ "lc=1##dB\n",
+ "ncc=1.5##\n",
+ "plx=-0##dBm\n",
+ "prx=-25##dBm\n",
+ "Ms=7##dB\n",
+ "L=((plx-prx-Ms-(lc*ncc))/(af+ac))##\n",
+ "TTX=1##NS\n",
+ "TRX=5##NS\n",
+ "NS1=9##NS/KM\n",
+ "NS2=2##NS/KM\n",
+ "tf=((NS1*L)**2+(NS2*L)**2)##\n",
+ "tsys=sqrt((TTX**2+tf+TRX**2))##ns\n",
+ "df=0.35/(tsys*10**-3)##\n",
+ "print \"system bandwidth = %0.2f MHz\"%round(df)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.3 : Page 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "no. of subscribers are 38.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi,log10\n",
+ "\n",
+ "#no. of subscribers\n",
+ "pt=1##mW\n",
+ "pn=-40##dBm\n",
+ "pn1=10**(pn/10)##\n",
+ "c=0.05##\n",
+ "d=0.11##\n",
+ "x=((pn1)/(pt*c))##\n",
+ "y=((log10(x))/(log10((1-d)*(1-c))))##\n",
+ "n=y+1##\n",
+ "print \"no. of subscribers are\",round(n)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.4: Page 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total power, P_tot = 92.4 mW\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Total power\n",
+ "#given data :\n",
+ "L_eff=20## in km\n",
+ "del_lamdaC=125## in nm\n",
+ "gR=6*10**-14## m/W\n",
+ "A_eff=55*10**-12## in m**2#\n",
+ "del_lamdaS=0.8## in nm\n",
+ "N=32## number of channels\n",
+ "F=0.1## constant\n",
+ "P_tot=(4*F*del_lamdaC*A_eff)/(gR*del_lamdaS*L_eff*(N-1))#\n",
+ "print \"Total power, P_tot = %0.1f mW\"%P_tot"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.5 : Page 312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "SBS threshold power for the worst case = 8.66 mW\n",
+ "SBS threshold power for the best possible case = 17.33 mW\n"
+ ]
+ }
+ ],
+ "source": [
+ "#SBS threshold power\n",
+ "#given data :\n",
+ "gb=4*10**-11## in m/W\n",
+ "A_eff=55*10**-12## in m**2\n",
+ "L_eff=20## in km\n",
+ "lamda_p=1.55## micro-m\n",
+ "n=1.46## constant\n",
+ "Va=5960## for the silica fiber in m-s**-1\n",
+ "Vb=(2*n*Va)/lamda_p#\n",
+ "del_v=100*10**6## in Hz\n",
+ "del_Vb=20*10**6## in Hz\n",
+ "b1=1#\n",
+ "b2=2#\n",
+ "P_th=((21*b1*A_eff)/(gb*L_eff))*(1+(del_v/del_Vb))\n",
+ "P_th1=((21*b2*A_eff)/(gb*L_eff))*(1+(del_v/del_Vb))\n",
+ "print \"SBS threshold power for the worst case = %0.2f mW\"%P_th\n",
+ "print \"SBS threshold power for the best possible case = %0.2f mW\"%P_th1"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter13_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter13_2.ipynb
new file mode 100644
index 00000000..0f45a4e0
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter13_2.ipynb
@@ -0,0 +1,187 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter13 - Fiber-optic sensors"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.1: Page 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f105deb4d90>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\np53mVDqWnESdRM2sy1RS6fTpKZWefLJTqY0dJ1GcRM26lVPp2HISdRI1sy7mVGpjzUkUJ1GzXuBU\nOvqcRJ0tvR97AAAPYklEQVREzaxHOJXaWHASxUnUrNc4lY4OJ1EnUTPrQU6lNlqcRHESNetlTqUj\n5yTqJGpmPa6SSvfYw6nUhs9JFCdRM0ucSofHSbQLkqikaZJmS7pH0hdrfL6PpFsl3SbpaklblFFO\nM2t/TqU2XB2dRCX1AXcDU4FHgBuAvSPirkI/2wN3RsTfJE0DZkbEdlXjcRI1s0U4lQ7NSbTzk+gU\n4N6IuD8iXgbOA2YUe4iIayPib/ntH4G1WlxGM+tATqXWjE5vRNcEHiq8fzh3q+dA4KIxLZGZdY2+\nPjjssNSYnnMO7Lor3Hdf2aWydrJU2QVYQk0fg5W0C/BhYIdan8+cOXPh6/7+fvr7+5ewaGbWLSqp\n9LvfhSlT4Kij4OMfh3GdHkOGaWBggIGBgbKL0VY6/ZzodqRznNPy+yOABRFxbFV/WwC/BKZFxL01\nxuNzombWlOK50lmzYL31yi5ReXxOtPMP594IbChpsqTxwF7ABcUeJK1DakD3rdWAmpkNR/Fc6ZQp\nPlfa6zo6iQJI2h04HugDZkXE0ZIOBoiIH0j6EfAu4ME8yMsRMaVqHE6iZjZsvZ5KnUS7oBEdDW5E\nzWyk5s9P50qPOab3zpW6EXUjCrgRNbMl14up1I1o558TNTNrCz5X2pucRHESNbPR1Sup1EnUSdTM\nbNQ5lfYOJ1GcRM1s7HRzKnUSdRI1MxtTTqXdzUkUJ1Eza41uS6VOok6iZmYt41TafZxEcRI1s9br\nhlTqJOokamZWCqfS7uAkipOomZWrU1Opk6iTqJlZ6ZxKO5eTKE6iZtY+OimVOok6iZqZtRWn0s7i\nJIqTqJm1p3ZPpU6iTqJmZm3LqbT9OYniJGpm7a8dU6mTqJOomVlHcCptT06iOImaWWcpptLTToN1\n1y2nHE6iTqJmZh2nmEq33daptExOojiJmlnnKjOVOok6iZqZdTSn0nI5ieIkambdodWp1EnUSdTM\nrGs4lbaekyhOombWfVqRSp1EnUTNzLqSU2lrOIniJGpm3W2sUqmTqJOomVnXcyodO06iOImaWe8Y\nzVTqJOokambWU5xKR5eTKE6iZtabljSVOok6iZqZ9Syn0iXnJIqTqJlZJZUut1x6XmkzqdRJ1EnU\n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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f10487627d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f1048641f10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from numpy import arange\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, subplot, title, xlabel, ylabel, show\n",
+ "#plot\n",
+ "lod=[0, 20, 40, 60, 80, 100, 160] #in micro meter\n",
+ "slong=[1.0, 0.95, 0.92, 0.89, 0.86, 0.83, 0.80]\n",
+ "lad=[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100] #in micro meter\n",
+ "slat=[0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]\n",
+ "add=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n",
+ "sang=[0, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, .12]\n",
+ "\n",
+ "t=arange(0,201,20)\n",
+ "s1=arange(1.0,0.7,-0.03)\n",
+ "#subplot(131)\n",
+ "plot(t,s1)\n",
+ "title(\"Variation of Slong as a function of delta x (with deltay=fi and delta theta=fi) \")\n",
+ "xlabel(\"Longitudinal displacement delta x (micro meter)\")\n",
+ "ylabel(\"Slong (normalised)\")\n",
+ "show()\n",
+ "t1=arange(0,101,10)\n",
+ "s2=arange(1,-0.1,-0.1)\n",
+ "\n",
+ "#subplot(132)\n",
+ "plot(t1,s2)##\n",
+ "title(\"Variation of Slat as a function of delta y (with deltax=fi and delta theta=fi) \")\n",
+ "xlabel(\"Lateral displacement delta y (micro meter)\")\n",
+ "ylabel(\"Slat (normalised)\")\n",
+ "show()\n",
+ "t2=arange(0,11,1)\n",
+ "s3=arange(1.0,0.7,-0.03)\n",
+ "#subplot(133)\n",
+ "plot(t2,s3)##\n",
+ "title(\"Variation of Sang as a function of delta theta (with deltax=fi and deltay=fi) \")\n",
+ "xlabel(\"Angular displacement delta theta (deg)\")\n",
+ "ylabel(\"Sang (normalised)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.2: Page 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "phase change = 106.60 rad/m°C\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "#phase change\n",
+ "#given data :\n",
+ "n=1.45## index of core\n",
+ "a=10**-5## in C**-1\n",
+ "b=5.1*10**-7## in C**-1\n",
+ "lamda=.633*10**-6## in m\n",
+ "# formula:- (1/L)*(del_fi/del_T)=((2*PI)/lamda)[(n/L)*(del_L/del_T)+(del_n/del_T)]\n",
+ "#let we assume a=del_n/del_T, b=(1/L)*(del_L/del_T), c=(1/L)*(del_fi/del_T)\n",
+ "c=((2*pi)/lamda)*((n*b)+a)#\n",
+ "print \"phase change = %0.2f rad/m°C\"%c"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.3: Page 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "phase shift, del_fi = 8.99e-05 rad\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi,sqrt\n",
+ "#phase shift\n",
+ "#given data :\n",
+ "L=500## in m\n",
+ "D=0.1##in m\n",
+ "ohm=7.3*10**-5## in rad s**-1\n",
+ "lamda=0.85*10**-6## in m\n",
+ "c=3*10**8## in m/s\n",
+ "del_fi=(2*pi*L*D*ohm)/(c*lamda)#\n",
+ "print \"phase shift, del_fi = %0.2e rad\"%del_fi"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter13_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter13_3.ipynb
new file mode 100644
index 00000000..0f45a4e0
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter13_3.ipynb
@@ -0,0 +1,187 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter13 - Fiber-optic sensors"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.1: Page 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f105deb4d90>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdEAAAEZCAYAAADIeB9CAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmcHFW99/HPNwMBZEsUZSdhk0UWAYkgIIPkYghirity\nAQVRcEFxARV9fAheFVAvsghXxbArqLiBclkeLiOyCcguBEHCvi+RgIqQ/J4/zulMpdPd0zOZ6erl\n+3695jXd1bWcOl1Vp75V1VWKCMzMzGz4xpVdADMzs07lRtTMzGyE3IiamZmNkBtRMzOzEXIjamZm\nNkJuRM3MzEao5Y2opHmSJo9w2H0kXTK6JWpqujtIuieX/Z3DHHZ/SX8Yq7K1gqRVJV0p6XlJ327x\ntEe8vCzBNJeTdKGkuZJ+2kT//ZIeanLcMyWdveSlHBlJ50qaMcxhjpB0aoPPl2gZl3SGpP9sst/7\nJe060mmNBknvkvRQXh/eKOkOSW9twXSbXs5y/wOSDmyy3wWS1ht56UavLK0k6XRJz0q6TtKOkmYX\nPvujpE2HGkfDRlTSxZKOqtF9hqTHJA27EY6IFSPi/qH6kzQ5f7ELpxERP46Itw93mqPga8CJuewX\nVH+YK/+avNF9RtJVkt403ImUvYFt4CDgyYhYKSIOH6uJ1FrRml1eRtl7gdcBr46IvUZ53At/mF1r\nGR9LkrYAtoiI3wxnuIg4OiI+mscxFmUOCvXSbL8lri/fAT6R14dbImKziLiyhHIMZTj1utBwdmrq\nDF/rexlRWfL4xqQBlrQTMBVYIyK2i4irImLjQi/fIW37GxpqRTgD2LdG9/2AcyJiQZPlRdJSzfZb\nPegIhxtN6wB31vpA0krAb4ETgInAmsBRwEstK93YmwTc1YLptMudPyYBfxnO8j0MtZbnVi3jBwPn\njNK4RrvM7bCeD0mSaLA9sDExVtuFScD9EfHPOp9fCOwiadWGY4mIun/AcsBcYKdCt4nAP4DNgSnA\ntcBzwKPAScDShX4XAJ8A7gH+Wui2Xn69B3Az8DfgQeDIwrAP5n7nAc8D2wH7A38o9PMW4IZcxuuB\n7QufDZD2Iq7Kw18CvKbBvH40l/MZ4DfA6rn7X4H5wN/zeJauGu5NwHMNxltd5hPyvP0NuBHYMXef\nRmp4/5Xn+eY64/sScG8uy5+Bfy98tgHw+1wfTwHnNSjXz4HHcr+/Bzat098ZuUwv5Wnumrv9Z6Gf\nfuChwvv7gc8Dt+bxnwcsU/h8BnBLroN7gbcD3wBeycvWPFLyr15eVgbOAp7M0/gKoEI9XwV8G3gW\nuA+Y1mD+N8nLyHPAHcCeuXtlB6jyPRxQZ704I0/nz8DhVfO/BvCLXM77gE8VPpsJnFVjGZ8HvBlY\nH/hf4On8HZ4DrFxnHk4GvlPV7QLgM3X6/yvwlsL7B4Ct8+t9clk2ye8PBH5VKPPZDdbLDwF/GEbd\nbwXclIc/Dzi3anl6R14+ngOuBjYvfDYHeBt11hfgAFID93ye34MKw34RuA7oy+8/nr/78Y22g4Xh\nlwFeyPP/AnBPYXnftc4wjbZxk/O4Ppi/i6eALze7nNWY1r8Bs0nr3Emk5fvAwucfznXzLHAxsE7h\nswXAeqSjTpX1fR7wm6G2O1VlqPe9XEGD7XFejq7J3/ktwM65e73tQs3taLN/pOX7H3nc84AjqdqO\n5f4uBT7YcFxNTOyHwKmF9wcDN+XXW5Ma0nGkVv1O4NCqL+YSYAJ5I8qiG8WdgTfk15sDjwMz8vtJ\nud9xhfHtT26QgFfnCt8nT/8DeeGYmD8fIDWKGwDL5i/x6Drz+DbSAvxGYDxwIvD76hW3zrArkjZ4\nZ+QFaGLV5wvLXNhYTcxl/hypIRufPzuSvIFt8H28F1gtv34/aWVeNb8/Fzgivx5PYYNZYzz7A8sD\nSwPfpU6jnfs9Hfhag/eLLHy5vq4DVsvzeidwcP5sCmkl3zW/XwPYqLCifbhq2sXl5SzgV7nck4C7\nK/3n+fkXaeUQ8DHgkTrzszRpg/AlYClgF9KK/fpmvgfgGNKOxwRgLdKG+MH82TjgT8D/yeNel7Qx\n3y1/PpPBBqnWMr4+aUdlaWCVPJ3v1inHtsAjDO5IrAK8CLy2Rr/L52kVN1xnAp8rrOf3AB8r1PWh\nTZZ5OHU/ntRgHAr0Ae/Jw34tf74V8ESeN5EamDnknVcK62Kt7wmYDqybX78118dW+b1yfR4JbEja\nXmxZGHYuaZtS6+8LtZbJJrYPjbZxk/O4fkBqoLcA/sng+lB3OasxnVVIy/C7c71+BniZwfVjRv5+\nNyIto18Brq6zni2yfjfY7qxWpyy1vpcB0jq32PaYdPTuafKOF+kQ69PkZZXa24VG29H/aPA9Pges\nlfv7EItum/tZvBE9AfivetuCiGjqwqIzgfdKGp/ffzB3IyJuiojrI2JBRDxAWhF3rhr+6IiYGxGL\nHd6MiN9HxJ/z69tJe6WV4Yc6vLMHcHek86QLIuI80l5Y5cKfAE6PiHsjxfWfkRrJWvYBZkU6v/Ev\n4Ahge0nrDFEGImIesGOe3qnAk5J+I+l1dfr/cUQ8l8t8HGnl2agwzw3nOyLOj4jH8+ufkVaMKfnj\nfwGTJa0ZEf+KiGsajOeMiHgxIl4mpa8tJa3YYNLV5Rrq+zkxIh6PiOdIh0UqdX8gqa4vz+V4NCLu\nHmq8kvqAvUg7CS/m5e2/SKcWKh6IiFmRlv6zgNXrfA/bActHxDER8UpEXEE6JL93oQyN5u99wDfy\ncv0waUWr9L8tsEpEfD2Pew7wI9JO3mKzVd0hIv4aEZdHxMsR8TRpB6d6nar0ewNpT7xyoc0HgCsi\n4qkavU/I/+cVuv2+MO4dgaML79+aPx+yzNlw6n6piDghIuZHxC9IR5MqDgJ+EBE3RHIWKdlsV6cs\ni5QnIi7KdU6k85SXAjvl90Hafn2adLTp2Ii4tTDshIiYWOfvW3Xmu6EhtnEVR0XESxFxG+nozZa5\ne6PlrNp04I6I+GWu1+NJDXbFx0jb4rsjnaY4GnijpLXrjK+6Xhttd2oNW13OAE6rsz3eF7goIi7O\n4/9/pHS5R4Py1N2ORsRPGnyPE3NdLjbOOuYxuO7UNGQjGhFXk/YK3iVpfdJG4icAkl4v6bf5IqO/\nkaL3a6pGUfdqMklvlnSFpCclzSWl3Orh61mDFOeLHsjdK4oL0T+AFeqMa/U8LAAR8SLpsO6azRQk\nImZHxAERsTawWS7D8bX6lXSYpDvzRUjPkQ5RrtLMdPLwH5R0s6Tn8vCbFYb/AmnBuD5fMXhAnXGM\nk3SMpHvz9zaHtJA3XY4mVNf98vn1WqRkVk/U6b4KKZ09UOj2IIt+RwunGRF/zy9rfedrsPhy+QBN\nft81hi8uh5OANSrfT/6OjiBdqDSkfCX0eZIezt/N2TReJ85i8LqFfXP/tczN/4s7SlcCO0lajZRe\nfg7sIGkS6RDyLc2UORtO3T9S1a34nU4CPl9Vf2ux6Hpdl6Td85WWz+Rhp1Oov7zzNZCnc3Iz41wS\nTW7jiuvK3xmst0bLWbU1gIeruhWHnQScUKjTZ3L3ppb5OtudZrfVFfW2x5OA91V95zuQjmRVLLJd\nWNLt6DCsREqvdTV7hd1ZpD24fYGLC3u6/006VLdBRKxMOkRQPc56G0VIjfGvSfF6AvD9wvCNhoO0\nIk6q6jaJxVfQZjxKOrQCgKTlSQvIsMeVU9WZpIVsEflqsMOB91X2eklJorJH1HCe88bth8AnSVeO\nTiQd4lGe9hMRcVBErElaWU+pc9n6PqTEvmv+3taliRRc8CLwqsL71er1WMNDpEM6tTSa/6dJh6cm\nF7qtw+IbjmY8CqydLxKpmDSMcT2Wp10sR8VDwJyqPd+VIuId+fPiPNaa32+SzsFvlr+b/Wi8np4D\nzJC0JbAxaX1aTN4x/CuDRz2IiHtJG+1PkU5fzCNt6A4ineOsVc6h1suhPMbiG+7ievwgKX0V62+F\niKj1U6PqDesypHPR3wJel9ePiygs15L2IKXay0lXXxaHf0HpJ1W1/r40wvlttI0bSqPlrNqjwMJU\nmZftYsp8kHR+uFivy0fEdTXGVV2vDbc7NQz3grwHSacLimVbsZD+q8vTcDuq9FPIet/j85LWGkbZ\nNiEdHahrOI3ovwEfIR/KzVYgxd2/S9qYdKJ+OFYgXZTzL0lTSMeyKxX2FOnLWL/OsP8DvF7S3pKW\nkrQXaSPy20I/zTYK5wIHSNoyr4jfBK6LiEZ7fmkC0kaSPidpzfx+bdJhwWtr9L4i6UT205LGS/q/\npD2disdJh2PrlXt5Uv08DYzLSXNhYy3pfYUFZG7ut9YCvQLpENmzeYfhm0PNZtX7W4DpkibmFPOZ\nIYYvjmMWqa7flhPxmpIqG/YnqPN9R8R80iGgb0haIa/Yn2VkV5teR2o8viBpaUn9pItZzmty+J8B\nR0iakOv7U4XPrgfmSfqC0u9N+yRtpsGfPBXrstYyvgJpJ+X5vEw1/ElRPjR1I2kdPT9qnDYpuIjF\nDyX+HjiEwUO3A1XvmynzcFwDvCLp07nu3006ulVxKvAxSVOULC9pD0m1Um31+jI+/z0NLJC0O7Db\nwpmQVsnjP5B0HnfP3A8AubFesc7fMSOc30bbuKE0Ws6q/Q54g9JvWJciHbIu7tx+H/iy8u8eJa0s\n6X11xvUE6SKjiobbnTrD19qO1duunUP6LnbL68uySr+JrexsVW8XGm5H86Heet/jSoXDuQ1JWpZ0\n3c9ljfprqhHNh0CuJqWP4u8kDyMtFM+T9lTOY+i91mK3TwBfk/Q88FVg4d5mPiT0DeBqpR/DvpnC\nb40i4hnShu/zpC/3MOAdEfFsnWkFdRbeSOfnvkrai32UlMxqncOqpXJV5R8lvUBqPG/L5aqe7sX5\n7y+kK/r+waKHaH6e/z8j6cYa5byTdB7wWtIGZDPS1W4VbwKukzSPdM7n01H7N5ZnkQ6hPULao7yW\nxit2dd2dTdo7uz/PT/X3Xnf4SOfxDiCd65tL2mhX9rBPIJ1/f1ZSrcPhnyI1MPeRktKPSRdB1Coj\nNd6Ty/AysCewO6lR+B6wX0T8pcG4io4i1d8c0vyfVZi/+aTl8o25nE+R1o3KSl6si+plfEoe99ak\nPesLScvkUBvdM0kXrQz1m8kfko5CFP2etKG/ss77ocq8yHpZNcxict2/m9SIPUO6SOUXhc//RLpS\n/nukC3/uIR0FqzW+RdaXnKQ/TWp8niXtzBZ/E/sD4NcRcXHeThwI/EjSxFplbWA4abzuNq6JcdVd\nzhYrUNoevo90MdLTpKM9VxU+/zVwLHCe0mmC20lXxdcqxyxg03xo9ZdNbHeq1duO1dwe50ZtBvBl\n0hXtD5K2n5VGt3q7MNR2tFlDLbd7kq4xeJwGKlf1dSRJp5FOPj8ZEZvX6edE0sby78D+EXFzC4to\nNuby4a1zIqL69Eatfn8M/CyGecMFs14j6TrSVcENfxPc6Y3oTqRLrc+q1YhKmg4cEhHT8x7zCRFR\n6yo/s44kaWnSkYCbI+LrZZfHrNd09A3oI+IPNL5y6p0M/hznj8AEDXX3CbMOIWkT0vK/KnWuBjez\nsTXSW/F1ijVZ9DLvh0mXyz9RTnHMRk9E3EX9n22ZWQt0dBJtUq0f/ZqZmS2xbk+ij7Dob6XWosZv\nPyW5YTUzG4GI6IiHB4yVbk+iF5Auj0fSdsDciKh5KPeuu4Lttgv6+4P77mv+Rsbd9nfkkUeWXoZ2\n+XNduC5cF43/rMMbUUnnkn68vZHSQ3I/LOlgSQdDuo8mcJ+ke0m/EftEvXFtvDFcdRVMnw7bbgsn\nnwwLxuJBWGZm1jU6+nBuROzdRD+HNDu+vj44/HDYc0844AA4/3w47TRYd90lK6eZmXWnjk6iY6WX\nU2l/f3/ZRWgbrotBrotBrgsr6uibLYwWSVGvHmbPTql02WWdSs3MiiQRvrDIGunlVGpmZo05idI4\niRY5lZqZDXISdRIdFqdSMzMrchKl+SRa5FRqZr3OSdRJdMScSs3MzEmUkSXRIqdSM+tFTqJOoqPC\nqdTMrDc5ibLkSbTIqdTMeoWTqJPoqHMqNTPrHU6ijG4SLXIqNbNu5iTqJDqmnErNzLqbkyhjl0SL\nnErNrNs4iTqJtoxTqZlZ93ESpTVJtMip1My6gZOok2gpnErNzLqDkyitT6JFxVQ6axast14pxTAz\nGzYnUSfR0lVS6R57wJQpTqVmZp3ESZRyk2iRz5WaWSdxEnUSbSvFVOpzpWZm7c9JlPZJokVOpWbW\n7pxEnUTbllOpmVn7cxKlPZNokVOpmbUjJ1En0Y7gVGpm1p6cRGn/JFrkVGpm7cJJ1Em04ziVmpm1\nDydROiuJFjmVmlmZnESdRDuaU6mZWbmcROncJFrkVGpmreYk6iTaNZxKzcxaz0mU7kiiRU6lZtYK\nTqJOol3JqdTMrDWcROm+JFrkVGpmY8VJ1Em06zmVmpmNHSdRujuJFjmVmtlochLt8CQqaZqk2ZLu\nkfTFGp+vIuliSbdIukPS/iUUs204lZqZja6OTaKS+oC7ganAI8ANwN4RcVehn5nAMhFxhKRVcv+r\nRsQrVePqiSRa5FRqZkvKSbSzk+gU4N6IuD8iXgbOA2ZU9fMYsFJ+vRLwTHUD2qucSs3MllwnN6Jr\nAg8V3j+cuxWdCrxB0qPArcChLSpbR+jrg8MOS43pOefArrvCffeVXSozs86xVNkFWALNHH/9MnBL\nRPRLWh+4TNKWETGvuseZM2cufN3f309/f/9olbPtVVLpd78LU6bAUUfBxz8O4zp5F8vMRt3AwAAD\nAwNlF6OtdPI50e2AmRExLb8/AlgQEccW+rkI+EZEXJ3fXw58MSJurBpXz50TrcfnSs2sWT4n2tmH\nc28ENpQ0WdJ4YC/ggqp+ZpMuPELSqsBGgA9YNlBJpdOn+1ypmdlQOjaJAkjaHTge6ANmRcTRkg4G\niIgf5CtyTwfWIe0wHB0RP6kxHifRGpxKzawRJ9EOb0RHixvR+ubPh+OOg2OP9blSM1uUG1E3ooAb\n0WY4lZpZNTeinX1O1FrI50rNzBbnJIqT6HA5lZoZOImCk6iNgFOpmVniJIqT6JJwKjXrXU6iTqK2\nhJxKzayXOYniJDpaKql0ueVg1iynUrNu5yTqJGqjqJJKd989pdJTTnEqNbPu5iSKk+hYcCo1635O\nok6iNkacSs2sFziJ4iQ61pxKzbqTk6iTqLWAU6mZdSsnUZxEW8mp1Kx7OIk6iVqLOZWaWTdxEsVJ\ntCxOpWadzUnUSdRK5FRqZp3OSRQn0XbgVGrWeZxEnUStTTiVmlknchLFSbTdOJWadQYnUSdRa0NO\npWbWKZxEcRJtZ06lZu3LSbTkJCrpdZI+Kemnkv4o6br8+pOSXldm2aw9OJWaWTsrLYlKmgWsD/wP\ncD3wGCBgdWAKMA24NyI+0oKyOIl2AKdSs/biJFpuI7plRNw6RD9bRMRtLSiLG9EOMX8+HHccHHss\nfO1r8LGPwTif2TcrhRtRnxMF3Ih2IqdSs/K5ES03id7e4OOIiC1aWBY3oh3IqdSsXG5Ey21EJ+eX\nn8j/zyadE90HICK+2MKyuBHtYE6lZuVwI9oGh3Ml3RIRb6zqdnNEbNXCMrgR7XBOpWat50a0PW62\nIEk7Ft7sQEqkZk3r64PDD08/hzn7bJg6FebMKbtUZtbt2qER/TBwiqQHJD0AnJK7mQ2bf1dqZq1U\n+uHcCkkrk8ozt4Rp+3BuF/K5UrOx5cO5bZBEJa2Wb7zw04iYK2lTSQeWXS7rfE6lZjbWSk+iki4G\nTge+EhFbSFoauDkiNmthGZxEu5xTqdnocxJtgyQKrBIRPwXmA0TEy8Ar5RbJuo1TqZmNhXZoRF+Q\n9JrKG0nbAX8rsTzWpXwFr5mNtnZoRD8PXAisJ+ka0k0XPt3MgJKmSZot6R5JNW/OIKlf0s2S7pA0\nMGqlto7lVGpmo6X0c6IA+TzoRvnt3fmQ7lDD9AF3A1OBR4AbgL0j4q5CPxOAq4G3R8TDklaJiKdr\njMvnRHuUz5WajZzPibZBEpX0fmC5iLgDeBfwU0lbNzHoFNKj0u7Pje55wIyqfv4D+EVEPAxQqwG1\n3uZUamZLovRGFPhqRDyf71q0K3Aa8P0mhlsTeKjw/uHcrWhD4NWSrpB0o6T9RqXE1lV8rtTMRqod\nGtH5+f87gFMj4rfA0k0M18zx16WBrYHpwNuBr0racESltK7nVGpmw7VU2QUAHpH0Q+DfgGMkLUtz\njfsjwNqF92uT0mjRQ8DTEfEP4B+SrgS2BO6pHtnMmTMXvu7v76e/v38Ys2DdopJK99wznSs9/3yf\nKzWrGBgYYGBgoOxitJXSLyyStDwwDbgtIu6RtDqweURcOsRwS5EuLNoVeBS4nsUvLNoY+B4phS4D\n/BHYKyLurBqXLyyyxfjJMGaN+cKicp8nulI+F/rqWp9HxLNNjGN34HigD5gVEUdLOjgP/4Pcz2HA\nAcAC0uHiE2uMx42o1eUreM1qcyNabiP6u4jYQ9L9LH5+MyJivRaWxY2oNeRUarY4N6JtcDi3HbgR\ntWY5lZoNciNabhJt+FvQiLiphWVxI2pNcyo1S9yIltuIDtDgZyoRsUsLy+JG1IbNqdR6nRtRH84F\n3IjayDmVWi9zI9omjaikzYFNgGUr3SLirBZO342oLRGnUutFbkTb4I5FkmYCJ5J+z7kL8C3gnWWW\nyWy4fLcjs95UehKVdAfpLkI3RcSWklYFfhwRU1tYBidRGzVOpdYrnETbIIkC/4iI+cArklYGnmTR\n2/mZdRSnUrPe0Q6N6A2SJgKnAjcCNwPXlFsksyXjJ8OY9YbSD+cWSVoXWDEibmvxdH0418aMr+C1\nbuXDuW3SiEraEphMugeuSLf9+2ULp+9G1Macz5Vat3Ej2gaHcyWdDswC3g3sSXqu6J6lFspsDPhc\nqVn3KT2JSroTeEOZUdBJ1FrNqdS6gZNoGyRR4AZg07ILYdZKTqVm3aEdkmg/cAHwOPBS7hwRsUUL\ny+AkaqVxKrVO5STaHkl0FrAvMI10LnRPfMci6yFOpWadqx2S6LURsX3JZXAStbbgVGqdxEm0PZLo\nLZJ+ImlvSe/Jf+8uu1BmZXAqNess7ZBET6/VPSIOaGEZnESt7cyeDfvvD696lVOptScnUViqzIlL\n6gOejYjPl1kOs3a08cZw9dXpbkfbbuu7HZm1o3ZIotcB2/t3omb1+VyptSMn0TY5Jwr8RtJ+Pidq\nVpvPlZq1p3ZIomfkl4sUxOdEzWpzKrV24STaBo1oO3Ajap3GT4axduBGtA0aUUlrAycCO+ZOVwKH\nRsTDLSyDG1HrSE6lViY3ou1xTvR00m3/1sh/F+ZuZjYEnys1K1c7JNFbI2LLobqNcRmcRK3jOZVa\nqzmJtkcSfSZfmdsnaSlJ+wJPl10os07jVGrWeu2QRCcDJwHb5U7XAJ+KiAdbWAYnUesqTqXWCk6i\nbZBEI+L+iNgzIl6b/2a0sgE160ZOpWat0Q5J9HXAR4HJDN6GMCLiwy0sg5OodS2nUhsrTqJtkESB\n3wArAZcBvyv8mdkocCo1GzvtkERviYg3llwGJ1HrCU6lNpqcRNsjif5W0h5lF8KsFziVmo2udkii\nLwCvAv4FvJw7R0Ss1MIyOIlaz3EqtSXlJNoGSTQiVoiIcRGxbESsmP9a1oCa9SqnUrMlV1ojKmn9\nJe1H0jRJsyXdI+mLDfrbVtIrfsSa2aL6+uDww1NjevbZMHUqzJlTdqnMOkeZSfSbkn4r6SBJW0ta\nXdIakraRdLCk3wHfqDewpD7ge8A0YFNgb0mb1OnvWOBioKcPO5jV41RqNjKlnhOVtAHwAWAHYFLu\n/ABwFXBuRNzXYNjtgSMjYlp+/yWAiDimqr/PkM63bgv8NiJ+UWNcPidqlvlcqTXL50QHb25Qioi4\nF/j6CAdfE3io8P5h4M3FHiStCcwA3kZqRN1Smg2hkkqPOy6lUj+v1Ky+Tl4tmmkQjwe+lGOm8OFc\ns6b4XKlZc0pNokvoEWDtwvu1SWm0aBvgPEkAqwC7S3o5Ii6oHtnMmTMXvu7v76e/v3+Ui2vWeZxK\nrWhgYICBgYGyi9FWSv+d6EhJWgq4G9gVeBS4Htg7Iu6q0//pwIUR8csan/mcqNkQfK7UqvmcaBsc\nzpV0eTPdqkXEK8AhwCXAncBPI+KufGXvwaNfUrPe5it4zRZXWhKVtBzpTkVXAP2Fj1YCLo6IjVtY\nFidRs2FwKjVwEoVyk+jBwI3ARsCfCn8XkH7/aWZtyqnULCn9nKikT0fEiSWXwUnUbIScSnuXk2gb\nNKIAkjYj3XVo2Uq3iDirhdN3I2q2BObPT1fwHnusr+DtJW5E26ARlTQT2Bl4A+lh3LsDV0XEe1tY\nBjeiZqPAqbS3uBFtg6tzgfcCU4HHIuIAYEtgQrlFMrOR8LlS6zXt0Ij+IyLmA69IWhl4kkVvomBm\nHcR3O7Je0g6N6A2SJgKnkq7WvRm4ptwimdmSciq1XlD6OdEiSesCK0XErS2ers+Jmo0hnyvtTj4n\nWu5DubfJzxFd+AdMBPryazPrEk6l1q3KvGPRAA2exBIRu7SwLE6iZi3iVNo9nETb7HBuWdyImrWW\nf1faHdyIlptEtwUejojH8vsPAe8B7gdmRsSzLSyLG1GzEjiVdjY3ouVenftD4CUASW8FjgHOBJ7P\nn5lZl/O5Uut0ZSbRWyNiy/z6ZOCpiJhZ/VmLyuIkalYyp9LO4yRabhLtk7R0fj2V9Ei0iqVKKI+Z\nlcip1DpRmUn0K8AewNOkOxRtExELJG0InBERO7SwLE6iZm3EqbQzOImWmEQj4hvA54HTgR0jorLP\nKeBTZZXLzMrnVGqdwj9xwUnUrJ05lbYvJ9H2uHeumVldTqXWzpxEcRI16xROpe3FSdRJ1Mw6iFOp\ntRsnUZxEzTqRU2n5nESdRM2sQzmVWjtwEsVJ1KzTOZWWw0nUSdTMuoBTqZXFSRQnUbNuUkmlyy4L\np53mVDqWnESdRM2sy1RS6fTpKZWefLJTqY0dJ1GcRM26lVPp2HISdRI1sy7mVGpjzUkUJ1GzXuBU\nOvqcRJ0tvR97AAAPYklEQVREzaxHOJXaWHASxUnUrNc4lY4OJ1EnUTPrQU6lNlqcRHESNetlTqUj\n5yTqJGpmPa6SSvfYw6nUhs9JFCdRM0ucSofHSbQLkqikaZJmS7pH0hdrfL6PpFsl3SbpaklblFFO\nM2t/TqU2XB2dRCX1AXcDU4FHgBuAvSPirkI/2wN3RsTfJE0DZkbEdlXjcRI1s0U4lQ7NSbTzk+gU\n4N6IuD8iXgbOA2YUe4iIayPib/ntH4G1WlxGM+tATqXWjE5vRNcEHiq8fzh3q+dA4KIxLZGZdY2+\nPjjssNSYnnMO7Lor3Hdf2aWydrJU2QVYQk0fg5W0C/BhYIdan8+cOXPh6/7+fvr7+5ewaGbWLSqp\n9LvfhSlT4Kij4OMfh3GdHkOGaWBggIGBgbKL0VY6/ZzodqRznNPy+yOABRFxbFV/WwC/BKZFxL01\nxuNzombWlOK50lmzYL31yi5ReXxOtPMP594IbChpsqTxwF7ABcUeJK1DakD3rdWAmpkNR/Fc6ZQp\nPlfa6zo6iQJI2h04HugDZkXE0ZIOBoiIH0j6EfAu4ME8yMsRMaVqHE6iZjZsvZ5KnUS7oBEdDW5E\nzWyk5s9P50qPOab3zpW6EXUjCrgRNbMl14up1I1o558TNTNrCz5X2pucRHESNbPR1Sup1EnUSdTM\nbNQ5lfYOJ1GcRM1s7HRzKnUSdRI1MxtTTqXdzUkUJ1Eza41uS6VOok6iZmYt41TafZxEcRI1s9br\nhlTqJOokamZWCqfS7uAkipOomZWrU1Opk6iTqJlZ6ZxKO5eTKE6iZtY+OimVOok6iZqZtRWn0s7i\nJIqTqJm1p3ZPpU6iTqJmZm3LqbT9OYniJGpm7a8dU6mTqJOomVlHcCptT06iOImaWWcpptLTToN1\n1y2nHE6iTqJmZh2nmEq33daptExOojiJmlnnKjOVOok6iZqZdTSn0nI5ieIkambdodWp1EnUSdTM\nrGs4lbaekyhOombWfVqRSp1EnUTNzLqSU2lrOIniJGpm3W2sUqmTqJOomVnXcyodO06iOImaWe8Y\nzVTqJOokambWU5xKR5eTKE6iZtabljSVOok6iZqZ9Syn0iXnJIqTqJlZJZUut1x6XmkzqdRJ1EnU\n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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f10487627d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f1048641f10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from numpy import arange\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, subplot, title, xlabel, ylabel, show\n",
+ "#plot\n",
+ "lod=[0, 20, 40, 60, 80, 100, 160] #in micro meter\n",
+ "slong=[1.0, 0.95, 0.92, 0.89, 0.86, 0.83, 0.80]\n",
+ "lad=[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100] #in micro meter\n",
+ "slat=[0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]\n",
+ "add=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n",
+ "sang=[0, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, .12]\n",
+ "\n",
+ "t=arange(0,201,20)\n",
+ "s1=arange(1.0,0.7,-0.03)\n",
+ "#subplot(131)\n",
+ "plot(t,s1)\n",
+ "title(\"Variation of Slong as a function of delta x (with deltay=fi and delta theta=fi) \")\n",
+ "xlabel(\"Longitudinal displacement delta x (micro meter)\")\n",
+ "ylabel(\"Slong (normalised)\")\n",
+ "show()\n",
+ "t1=arange(0,101,10)\n",
+ "s2=arange(1,-0.1,-0.1)\n",
+ "\n",
+ "#subplot(132)\n",
+ "plot(t1,s2)##\n",
+ "title(\"Variation of Slat as a function of delta y (with deltax=fi and delta theta=fi) \")\n",
+ "xlabel(\"Lateral displacement delta y (micro meter)\")\n",
+ "ylabel(\"Slat (normalised)\")\n",
+ "show()\n",
+ "t2=arange(0,11,1)\n",
+ "s3=arange(1.0,0.7,-0.03)\n",
+ "#subplot(133)\n",
+ "plot(t2,s3)##\n",
+ "title(\"Variation of Sang as a function of delta theta (with deltax=fi and deltay=fi) \")\n",
+ "xlabel(\"Angular displacement delta theta (deg)\")\n",
+ "ylabel(\"Sang (normalised)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.2: Page 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "phase change = 106.60 rad/m°C\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "#phase change\n",
+ "#given data :\n",
+ "n=1.45## index of core\n",
+ "a=10**-5## in C**-1\n",
+ "b=5.1*10**-7## in C**-1\n",
+ "lamda=.633*10**-6## in m\n",
+ "# formula:- (1/L)*(del_fi/del_T)=((2*PI)/lamda)[(n/L)*(del_L/del_T)+(del_n/del_T)]\n",
+ "#let we assume a=del_n/del_T, b=(1/L)*(del_L/del_T), c=(1/L)*(del_fi/del_T)\n",
+ "c=((2*pi)/lamda)*((n*b)+a)#\n",
+ "print \"phase change = %0.2f rad/m°C\"%c"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.3: Page 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "phase shift, del_fi = 8.99e-05 rad\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi,sqrt\n",
+ "#phase shift\n",
+ "#given data :\n",
+ "L=500## in m\n",
+ "D=0.1##in m\n",
+ "ohm=7.3*10**-5## in rad s**-1\n",
+ "lamda=0.85*10**-6## in m\n",
+ "c=3*10**8## in m/s\n",
+ "del_fi=(2*pi*L*D*ohm)/(c*lamda)#\n",
+ "print \"phase shift, del_fi = %0.2e rad\"%del_fi"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter14_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter14_2.ipynb
new file mode 100644
index 00000000..2e777ad5
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter14_2.ipynb
@@ -0,0 +1,211 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter14 - Laser-based systems"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.1 : Page 351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "energy = 1.7 J cm**-2\n",
+ "part (b)\n",
+ "threshold energy = 113.9 J cm**-2\n"
+ ]
+ }
+ ],
+ "source": [
+ "#energy and threshold electrical energy\n",
+ "print \"part (a)\"\n",
+ "no=1.9*10**19##cm**-3##\n",
+ "hc=6.6*10**-34##\n",
+ "v=5.45*10**14##Hz\n",
+ "av=2##\n",
+ "nv=1##\n",
+ "n2=no/2##\n",
+ "eng=((n2*hc*v)/(av*nv))## J cm**-2\n",
+ "print \"energy = %0.1f J cm**-2\"%eng\n",
+ "print \"part (b)\"\n",
+ "oe=0.50##\n",
+ "mr=0.15##\n",
+ "lr=0.20##\n",
+ "teng=eng/(oe*mr*lr)##\n",
+ "print \"threshold energy = %0.1f J cm**-2\"%teng\n",
+ "#electrical energy is calculated wrong in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.3 : Page 360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "maximum power = 157028.23 MW\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import log, exp\n",
+ "#output power\n",
+ "h=0.6943*10**-6##\n",
+ "lm=10##in cm\n",
+ "r1=1.0##\n",
+ "r2=0.8##\n",
+ "t1=0.98##\n",
+ "As=1##cm**2##\n",
+ "Ls=2##cm\n",
+ "gth=((1/(2*lm))*log((1/(r1*r2*(t1)**8))))+(As*Ls)/lm##\n",
+ "sg=1.5*10**-20##\n",
+ "ndth=gth/sg##cm**-3##\n",
+ "nth=ndth*As*lm##atoms\n",
+ "ni=5*nth##atoms\n",
+ "ng=1.78##\n",
+ "ns=2.7##\n",
+ "lair=2##\n",
+ "c=3*10**10##\n",
+ "trt=((2*ng*lm)/c)+((2*ns*Ls)/c)+((2*lair)/c)##seconds\n",
+ "npmax=((ni-nth)/2)-(nth/2)*log(ni/nth)##photons\n",
+ "L=14##cm\n",
+ "at=((As*Ls)/L)+((1/(2*L))*log(1/(r1*t1**8)))##\n",
+ "aext=((1/(2*L))*log(1/r2))##\n",
+ "tp=((trt)/(1-(r1*r2*t1**8*exp(-2*As*Ls))))##seconds\n",
+ "hc=6.6*10**-34##\n",
+ "pmax=((aext/at)*hc*c*npmax)/(h*tp)##in watts\n",
+ "print \"maximum power = %0.2f MW\"%(pmax*10**-6)\n",
+ "#answer is wrong in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.4 : Page 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "pulse width,del_v = 0.67 ns\n",
+ "spatial length, Lp = 20.00 cm \n",
+ "part (b)\n",
+ "pulse width, del_v = 16.67 ps\n",
+ "spatial length, Lp = 5.00 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#pulse width and spatial length \n",
+ "print \"part (a)\"\n",
+ "#given data :\n",
+ "del_v=1.5*10**9## in Hz\n",
+ "tau_p=1/del_v#\n",
+ "C=3*10**8## constant\n",
+ "print \"pulse width,del_v = %0.2f ns\"%(tau_p*10**9)\n",
+ "Lp=C*tau_p#\n",
+ "print \"spatial length, Lp = %0.2f cm \"%(Lp*10**2)\n",
+ "#spatial length is calculated wrong in the textbook\n",
+ "print \"part (b)\"\n",
+ "del_v=6*10**10## in Hz\n",
+ "tau_p=1/del_v#\n",
+ "C=3*10**8## constant\n",
+ "print \"pulse width, del_v = %0.2f ps\"%(tau_p*10**12)\n",
+ "Lp=C*tau_p*10**3#\n",
+ "print \"spatial length, Lp = %0.2f mm\"%(Lp)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.5 : Page 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "time difference is = 0.44 micro-seconds\n"
+ ]
+ }
+ ],
+ "source": [
+ "#time difference\n",
+ "n=1.33##\n",
+ "x=2##\n",
+ "l=50##m\n",
+ "c=3*10**8##m/s\n",
+ "dt=((n*x*l)/c)##s\n",
+ "print \"time difference is = %0.2f micro-seconds\"%(dt*10**6)"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter14_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter14_3.ipynb
new file mode 100644
index 00000000..2e777ad5
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter14_3.ipynb
@@ -0,0 +1,211 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter14 - Laser-based systems"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.1 : Page 351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "energy = 1.7 J cm**-2\n",
+ "part (b)\n",
+ "threshold energy = 113.9 J cm**-2\n"
+ ]
+ }
+ ],
+ "source": [
+ "#energy and threshold electrical energy\n",
+ "print \"part (a)\"\n",
+ "no=1.9*10**19##cm**-3##\n",
+ "hc=6.6*10**-34##\n",
+ "v=5.45*10**14##Hz\n",
+ "av=2##\n",
+ "nv=1##\n",
+ "n2=no/2##\n",
+ "eng=((n2*hc*v)/(av*nv))## J cm**-2\n",
+ "print \"energy = %0.1f J cm**-2\"%eng\n",
+ "print \"part (b)\"\n",
+ "oe=0.50##\n",
+ "mr=0.15##\n",
+ "lr=0.20##\n",
+ "teng=eng/(oe*mr*lr)##\n",
+ "print \"threshold energy = %0.1f J cm**-2\"%teng\n",
+ "#electrical energy is calculated wrong in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.3 : Page 360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "maximum power = 157028.23 MW\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import log, exp\n",
+ "#output power\n",
+ "h=0.6943*10**-6##\n",
+ "lm=10##in cm\n",
+ "r1=1.0##\n",
+ "r2=0.8##\n",
+ "t1=0.98##\n",
+ "As=1##cm**2##\n",
+ "Ls=2##cm\n",
+ "gth=((1/(2*lm))*log((1/(r1*r2*(t1)**8))))+(As*Ls)/lm##\n",
+ "sg=1.5*10**-20##\n",
+ "ndth=gth/sg##cm**-3##\n",
+ "nth=ndth*As*lm##atoms\n",
+ "ni=5*nth##atoms\n",
+ "ng=1.78##\n",
+ "ns=2.7##\n",
+ "lair=2##\n",
+ "c=3*10**10##\n",
+ "trt=((2*ng*lm)/c)+((2*ns*Ls)/c)+((2*lair)/c)##seconds\n",
+ "npmax=((ni-nth)/2)-(nth/2)*log(ni/nth)##photons\n",
+ "L=14##cm\n",
+ "at=((As*Ls)/L)+((1/(2*L))*log(1/(r1*t1**8)))##\n",
+ "aext=((1/(2*L))*log(1/r2))##\n",
+ "tp=((trt)/(1-(r1*r2*t1**8*exp(-2*As*Ls))))##seconds\n",
+ "hc=6.6*10**-34##\n",
+ "pmax=((aext/at)*hc*c*npmax)/(h*tp)##in watts\n",
+ "print \"maximum power = %0.2f MW\"%(pmax*10**-6)\n",
+ "#answer is wrong in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.4 : Page 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "pulse width,del_v = 0.67 ns\n",
+ "spatial length, Lp = 20.00 cm \n",
+ "part (b)\n",
+ "pulse width, del_v = 16.67 ps\n",
+ "spatial length, Lp = 5.00 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#pulse width and spatial length \n",
+ "print \"part (a)\"\n",
+ "#given data :\n",
+ "del_v=1.5*10**9## in Hz\n",
+ "tau_p=1/del_v#\n",
+ "C=3*10**8## constant\n",
+ "print \"pulse width,del_v = %0.2f ns\"%(tau_p*10**9)\n",
+ "Lp=C*tau_p#\n",
+ "print \"spatial length, Lp = %0.2f cm \"%(Lp*10**2)\n",
+ "#spatial length is calculated wrong in the textbook\n",
+ "print \"part (b)\"\n",
+ "del_v=6*10**10## in Hz\n",
+ "tau_p=1/del_v#\n",
+ "C=3*10**8## constant\n",
+ "print \"pulse width, del_v = %0.2f ps\"%(tau_p*10**12)\n",
+ "Lp=C*tau_p*10**3#\n",
+ "print \"spatial length, Lp = %0.2f mm\"%(Lp)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14.5 : Page 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "time difference is = 0.44 micro-seconds\n"
+ ]
+ }
+ ],
+ "source": [
+ "#time difference\n",
+ "n=1.33##\n",
+ "x=2##\n",
+ "l=50##m\n",
+ "c=3*10**8##m/s\n",
+ "dt=((n*x*l)/c)##s\n",
+ "print \"time difference is = %0.2f micro-seconds\"%(dt*10**6)"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter2_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter2_2.ipynb
new file mode 100644
index 00000000..955478be
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter2_2.ipynb
@@ -0,0 +1,245 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter2 - Ray propagation in optical fiber"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.1 : Page 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "numerical aperture is 0.244\n",
+ "part (b)\n",
+ "angle αm = 14.13 degree\n",
+ "angle Om = 9.37 degree\n",
+ "angle Φc = 80.63 degree\n",
+ "part (c)\n",
+ "pulse broadning per unit length = 6.76e-11 sm**-1\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import degrees, asin, sqrt\n",
+ "#NA ,angles and pulse broadning\n",
+ "print \"part (a)\"\n",
+ "n1=1.5##core refrative index\n",
+ "n2=1.48##claddin refractive index\n",
+ "a=100/2##radius in micro meter\n",
+ "na=1##air refrative index\n",
+ "NA=sqrt(n1**2-n2**2)##numerical aperture\n",
+ "print \"numerical aperture is %0.3f\"%NA\n",
+ "print \"part (b)\"\n",
+ "am=(asin(NA))##\n",
+ "tm=asin(NA/n1)##\n",
+ "tc=asin(n2/n1)##\n",
+ "print \"angle αm = %0.2f degree\"%degrees(am)\n",
+ "print \"angle Om = %0.2f degree\"%degrees(tm)\n",
+ "print \"angle Φc = %0.2f degree\"%degrees(tc)\n",
+ "print \"part (c)\"\n",
+ "c=3*10**8##speed of light in m/s\n",
+ "dtl=((n1/n2)*(n1-n2)/c)##pulse broadning per unit length\n",
+ "print \"pulse broadning per unit length = %0.2e sm**-1\"%dtl"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.2 : Page 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "all other rays will suffer reflections between these two extremes of : 0 and 1650.0 m**-1\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import tan,sqrt,asin\n",
+ "#minimum and maximum number of reflections\n",
+ "n1=1.5##core refrative index\n",
+ "n2=1.48##claddin refractive index\n",
+ "a=100/2##radius in micro meter\n",
+ "na=1##air refrative index\n",
+ "NA=sqrt(n1**2-n2**2)##numerical aperture\n",
+ "am=(asin(NA))##\n",
+ "tm=asin(NA/n1)##\n",
+ "tc=asin(n2/n1)##\n",
+ "L=((a*10**-6)/(tan(tm)))##length in meter\n",
+ "x=(1/(2*L))##maximum number of reflections per meter\n",
+ "print \"all other rays will suffer reflections between these two extremes of :\",(0),\" and \",round(x),\" m**-1\"\n",
+ "#answer is wrong in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.3 : Page 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "pulse broadning = 2.45 ns km**-1\n"
+ ]
+ }
+ ],
+ "source": [
+ "#pulse broadning\n",
+ "h=0.85##WAVELENGTH IN MICRO METER\n",
+ "y=0.035##spectral width\n",
+ "c=0.021##constant\n",
+ "cl=3##speed of light in m/s\n",
+ "dtl=(y/cl)*c##\n",
+ "print \"pulse broadning = %0.2f ns km**-1\"%(dtl*10**4)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.4 : Page 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "material dispersion = 253.20 ns when h=850nm\n",
+ "part (b)\n",
+ "material dispersion = 6.72 ns when h=1300nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#pulse broadning\n",
+ "print \"part (a)\"\n",
+ "h=850##WAVELENGTH IN NANO METER\n",
+ "l=80##fiber length in Km\n",
+ "dh=30##in Nano Meter\n",
+ "m1=105.5##material dispersion for h=850nm in ps/nm-Km\n",
+ "m2=2.8##material dispersion for h=1300nm in ps/nm-Km\n",
+ "t=m1*l*dh*10**-3##material dispersion in ns when h=850nm\n",
+ "print \"material dispersion = %0.2f ns when h=850nm\"%t\n",
+ "print \"part (b)\"\n",
+ "h=1300##WAVELENGTH IN NANO METER\n",
+ "l=80##fiber length in Km\n",
+ "dh=30##in Nano Meter\n",
+ "m1=105.5##material dispersion for h=850nm in ps/nm-Km\n",
+ "m2=2.8##material dispersion for h=1300nm in ps/nm-Km\n",
+ "t=m2*l*dh*10**-3##material dispersion in ns when h=850nm\n",
+ "print \"material dispersion = %0.2f ns when h=1300nm\"%t"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.5 : Page 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "material dispersion = 16.88 ns when h=850nm\n",
+ "part (b)\n",
+ "material dispersion = 0.448 ns when h=1300nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "# pulse broadning\n",
+ "print \"part (a)\"\n",
+ "h=850##WAVELENGTH IN NANO METER\n",
+ "l=80##fiber length in Km\n",
+ "dh=2##in Nano Meter\n",
+ "m1=105.5##material dispersion for h=850nm in ps/nm-Km\n",
+ "m2=2.8##material dispersion for h=1300nm in ps/nm-Km\n",
+ "t=m1*l*dh*10**-3##material dispersion in ns when h=850nm\n",
+ "print \"material dispersion = %0.2f ns when h=850nm\"%t\n",
+ "print \"part (b)\"\n",
+ "h=1300##WAVELENGTH IN NANO METER\n",
+ "l=80##fiber length in Km\n",
+ "dh=2##in Nano Meter\n",
+ "m1=105.5##material dispersion for h=850nm in ps/nm-Km\n",
+ "m2=2.8##material dispersion for h=1300nm in ps/nm-Km\n",
+ "t=m2*l*dh*10**-3##material dispersion in ns when h=850nm\n",
+ "print \"material dispersion = %0.3f ns when h=1300nm\"%t"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter2_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter2_3.ipynb
new file mode 100644
index 00000000..955478be
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter2_3.ipynb
@@ -0,0 +1,245 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter2 - Ray propagation in optical fiber"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.1 : Page 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "numerical aperture is 0.244\n",
+ "part (b)\n",
+ "angle αm = 14.13 degree\n",
+ "angle Om = 9.37 degree\n",
+ "angle Φc = 80.63 degree\n",
+ "part (c)\n",
+ "pulse broadning per unit length = 6.76e-11 sm**-1\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import degrees, asin, sqrt\n",
+ "#NA ,angles and pulse broadning\n",
+ "print \"part (a)\"\n",
+ "n1=1.5##core refrative index\n",
+ "n2=1.48##claddin refractive index\n",
+ "a=100/2##radius in micro meter\n",
+ "na=1##air refrative index\n",
+ "NA=sqrt(n1**2-n2**2)##numerical aperture\n",
+ "print \"numerical aperture is %0.3f\"%NA\n",
+ "print \"part (b)\"\n",
+ "am=(asin(NA))##\n",
+ "tm=asin(NA/n1)##\n",
+ "tc=asin(n2/n1)##\n",
+ "print \"angle αm = %0.2f degree\"%degrees(am)\n",
+ "print \"angle Om = %0.2f degree\"%degrees(tm)\n",
+ "print \"angle Φc = %0.2f degree\"%degrees(tc)\n",
+ "print \"part (c)\"\n",
+ "c=3*10**8##speed of light in m/s\n",
+ "dtl=((n1/n2)*(n1-n2)/c)##pulse broadning per unit length\n",
+ "print \"pulse broadning per unit length = %0.2e sm**-1\"%dtl"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.2 : Page 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "all other rays will suffer reflections between these two extremes of : 0 and 1650.0 m**-1\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import tan,sqrt,asin\n",
+ "#minimum and maximum number of reflections\n",
+ "n1=1.5##core refrative index\n",
+ "n2=1.48##claddin refractive index\n",
+ "a=100/2##radius in micro meter\n",
+ "na=1##air refrative index\n",
+ "NA=sqrt(n1**2-n2**2)##numerical aperture\n",
+ "am=(asin(NA))##\n",
+ "tm=asin(NA/n1)##\n",
+ "tc=asin(n2/n1)##\n",
+ "L=((a*10**-6)/(tan(tm)))##length in meter\n",
+ "x=(1/(2*L))##maximum number of reflections per meter\n",
+ "print \"all other rays will suffer reflections between these two extremes of :\",(0),\" and \",round(x),\" m**-1\"\n",
+ "#answer is wrong in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.3 : Page 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "pulse broadning = 2.45 ns km**-1\n"
+ ]
+ }
+ ],
+ "source": [
+ "#pulse broadning\n",
+ "h=0.85##WAVELENGTH IN MICRO METER\n",
+ "y=0.035##spectral width\n",
+ "c=0.021##constant\n",
+ "cl=3##speed of light in m/s\n",
+ "dtl=(y/cl)*c##\n",
+ "print \"pulse broadning = %0.2f ns km**-1\"%(dtl*10**4)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.4 : Page 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "material dispersion = 253.20 ns when h=850nm\n",
+ "part (b)\n",
+ "material dispersion = 6.72 ns when h=1300nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#pulse broadning\n",
+ "print \"part (a)\"\n",
+ "h=850##WAVELENGTH IN NANO METER\n",
+ "l=80##fiber length in Km\n",
+ "dh=30##in Nano Meter\n",
+ "m1=105.5##material dispersion for h=850nm in ps/nm-Km\n",
+ "m2=2.8##material dispersion for h=1300nm in ps/nm-Km\n",
+ "t=m1*l*dh*10**-3##material dispersion in ns when h=850nm\n",
+ "print \"material dispersion = %0.2f ns when h=850nm\"%t\n",
+ "print \"part (b)\"\n",
+ "h=1300##WAVELENGTH IN NANO METER\n",
+ "l=80##fiber length in Km\n",
+ "dh=30##in Nano Meter\n",
+ "m1=105.5##material dispersion for h=850nm in ps/nm-Km\n",
+ "m2=2.8##material dispersion for h=1300nm in ps/nm-Km\n",
+ "t=m2*l*dh*10**-3##material dispersion in ns when h=850nm\n",
+ "print \"material dispersion = %0.2f ns when h=1300nm\"%t"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.5 : Page 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "material dispersion = 16.88 ns when h=850nm\n",
+ "part (b)\n",
+ "material dispersion = 0.448 ns when h=1300nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "# pulse broadning\n",
+ "print \"part (a)\"\n",
+ "h=850##WAVELENGTH IN NANO METER\n",
+ "l=80##fiber length in Km\n",
+ "dh=2##in Nano Meter\n",
+ "m1=105.5##material dispersion for h=850nm in ps/nm-Km\n",
+ "m2=2.8##material dispersion for h=1300nm in ps/nm-Km\n",
+ "t=m1*l*dh*10**-3##material dispersion in ns when h=850nm\n",
+ "print \"material dispersion = %0.2f ns when h=850nm\"%t\n",
+ "print \"part (b)\"\n",
+ "h=1300##WAVELENGTH IN NANO METER\n",
+ "l=80##fiber length in Km\n",
+ "dh=2##in Nano Meter\n",
+ "m1=105.5##material dispersion for h=850nm in ps/nm-Km\n",
+ "m2=2.8##material dispersion for h=1300nm in ps/nm-Km\n",
+ "t=m2*l*dh*10**-3##material dispersion in ns when h=850nm\n",
+ "print \"material dispersion = %0.3f ns when h=1300nm\"%t"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter3_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter3_2.ipynb
new file mode 100644
index 00000000..46f8edc3
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter3_2.ipynb
@@ -0,0 +1,226 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter3 - Wave propagation in planor waveguides"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.1 : Page 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "range of propagation constant is 1.10880e+07 to 1.1014e+07 m**-1\n",
+ "number of modes are 4.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "#range of propagation constants and maximum no. of modes\n",
+ "n1=1.5##core refractive index\n",
+ "n2=1.49##cladding refrative index\n",
+ "t=9.83##thickness of guided layer in micro meter\n",
+ "h=0.85##wavelength in µm\n",
+ "b1=((2*pi*n1)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "b2=((2*pi*n2)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "m=((4*t)/h)*(sqrt(n1**2-n2**2))##number of modes\n",
+ "print \"range of propagation constant is %0.5e\"%(b1),\" to %0.4e\"%(b2),\" m**-1\"\n",
+ "print\"number of modes are\",round(m/2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.2 : Page 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "thicknes of the slab should not be greater than 0.794 µm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "#thickness\n",
+ "n1=3.6##core refractive index\n",
+ "n2=3.56##cladding refrative index\n",
+ "h=0.85##wavelength in µm\n",
+ "a=((h/(2*sqrt(n1**2-n2**2))))##thickness in µm\n",
+ "print \"thicknes of the slab should not be greater than %0.3f\"%(a),\" µm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.3 : Page 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "number of modes are : 5.0\n",
+ "part (b)\n",
+ "m \tuma(rad) \tum(m**-1) \twma(rad) \twm(m**-1) \tbm((wma/v)**2] \t\n",
+ "\n",
+ "0 1.30644 2.5845e+05 4.8263 9.5476e+05 0.93077\n",
+ "1 2.59574 5.1350e+05 4.27342 8.4538e+05 0.72974\n",
+ "2 3.83747 7.5914e+05 3.20529 6.3408e+05 0.41053\n",
+ "3 4.9063 9.7058e+05 0.963466 1.9060e+05 0.03709\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "from numpy import nditer\n",
+ "#no. of modes\n",
+ "print \"part (a)\"\n",
+ "n1=1.5##core refractive index\n",
+ "n2=1.48##cladding refrative index\n",
+ "t=10.11##thickness of guided layer in micro meter\n",
+ "h=1.55##wavelength in µm\n",
+ "b1=((2*pi*n1)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "b2=((2*pi*n2)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "m=((2*pi*t)/h)*(sqrt(n1**2-n2**2))##number of modes\n",
+ "print \"number of modes are : \",round(m/2)\n",
+ "\n",
+ "print \"part (b)\"\n",
+ "t1=10.11##thickness of guided layer in micro meter\n",
+ "t=t1/2#\n",
+ "h=1.55##wavelength in µm\n",
+ "b1=((2*pi*n1)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "b2=((2*pi*n2)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "mo=(((2*pi*t1)/h)*(sqrt(n1**2-n2**2)))/2##number of modes\n",
+ "uma0=1.30644## for m=0 from the curve\n",
+ "uma1=2.59574## for m=1 from the curve\n",
+ "uma2=3.83747## for m=2 from the curve\n",
+ "uma3=4.9063## for m=3 from the curve\n",
+ "wma0=4.8263## for m=0 from the curve\n",
+ "wma1=4.27342## for m=1 from the curve\n",
+ "wma2=3.20529## for m=2 from the curve\n",
+ "wma3=0.963466## for m=3 from the curve\n",
+ "um0=uma0/(t*10**-6)##in m**-1\n",
+ "um1=uma1/(t*10**-6)##in m**-1\n",
+ "um2=uma2/(t*10**-6)##in m**-1\n",
+ "um3=uma3/(t*10**-6)##in m**-1\n",
+ "wm0=wma0/(t*10**-6)##in m**-1\n",
+ "wm1=wma1/(t*10**-6)##in m**-1\n",
+ "wm2=wma2/(t*10**-6)##in m**-1\n",
+ "wm3=wma3/(t*10**-6)##in m**-1\n",
+ "bm0=((wm0*t*10**-6)/mo)**2##for m=0 \n",
+ "bm1=((wm1*t*10**-6)/mo)**2##for m=1\n",
+ "bm2=((wm2*t*10**-6)/mo)**2##for m=2 \n",
+ "bm3=((wm3*t*10**-6)/mo)**2##for m=3\n",
+ "m0=sqrt((bm0*(b1**2-b2**2))+b2**2)##for m=0 in m**-1\n",
+ "m1=sqrt((bm1*(b1**2-b2**2))+b2**2)##for m=1 in m**-1\n",
+ "m2=sqrt((bm2*(b1**2-b2**2))+b2**2)##for m=2 in m**-1\n",
+ "m3=sqrt((bm3*(b1**2-b2**2))+b2**2)##for m=3 in m**-1\n",
+ "params = [\"m\", \"uma(rad)\", \"um(m**-1)\", \"wma(rad)\", \"wm(m**-1)\", \"bm((wma/v)**2]\" ]\n",
+ "for x in params:\n",
+ " print x,'\\t',\n",
+ "\n",
+ "print '\\n'\n",
+ "a = range(0,4)\n",
+ "b = [uma0, uma1, uma2, uma3]\n",
+ "c = [um0, um1, um2, um3]\n",
+ "d = [wma0, wma1, wma2, wma3]\n",
+ "e = [wm0, wm1, wm2, wm3]\n",
+ "f = [bm0, bm1, bm2, bm3]\n",
+ "for k,l,m,n,o,p in nditer([a,b,c,d,e,f]) :\n",
+ " print k,' ',l,' %0.4e'%m,' ',n,' %0.4e'%o,' %0.5f'%p\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.4 : Page 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "G factor is 0.5622\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sin, cos, pi\n",
+ "#G factor\n",
+ "d=0.793##in micro meter\n",
+ "v=pi/2##point of intersection\n",
+ "ua=0.934##\n",
+ "wa=1.262##\n",
+ "Y=(wa*(1+(sin(ua*pi/180))*(cos(ua*pi/180))/ua))\n",
+ "G=(1+((cos(ua*pi/180))**2)/Y)**(-1)\n",
+ "print \"G factor is %0.4f\"%G\n",
+ "#answer is wrong in the textbook"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter3_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter3_3.ipynb
new file mode 100644
index 00000000..46f8edc3
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter3_3.ipynb
@@ -0,0 +1,226 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter3 - Wave propagation in planor waveguides"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.1 : Page 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "range of propagation constant is 1.10880e+07 to 1.1014e+07 m**-1\n",
+ "number of modes are 4.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "#range of propagation constants and maximum no. of modes\n",
+ "n1=1.5##core refractive index\n",
+ "n2=1.49##cladding refrative index\n",
+ "t=9.83##thickness of guided layer in micro meter\n",
+ "h=0.85##wavelength in µm\n",
+ "b1=((2*pi*n1)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "b2=((2*pi*n2)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "m=((4*t)/h)*(sqrt(n1**2-n2**2))##number of modes\n",
+ "print \"range of propagation constant is %0.5e\"%(b1),\" to %0.4e\"%(b2),\" m**-1\"\n",
+ "print\"number of modes are\",round(m/2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.2 : Page 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "thicknes of the slab should not be greater than 0.794 µm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "#thickness\n",
+ "n1=3.6##core refractive index\n",
+ "n2=3.56##cladding refrative index\n",
+ "h=0.85##wavelength in µm\n",
+ "a=((h/(2*sqrt(n1**2-n2**2))))##thickness in µm\n",
+ "print \"thicknes of the slab should not be greater than %0.3f\"%(a),\" µm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.3 : Page 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "number of modes are : 5.0\n",
+ "part (b)\n",
+ "m \tuma(rad) \tum(m**-1) \twma(rad) \twm(m**-1) \tbm((wma/v)**2] \t\n",
+ "\n",
+ "0 1.30644 2.5845e+05 4.8263 9.5476e+05 0.93077\n",
+ "1 2.59574 5.1350e+05 4.27342 8.4538e+05 0.72974\n",
+ "2 3.83747 7.5914e+05 3.20529 6.3408e+05 0.41053\n",
+ "3 4.9063 9.7058e+05 0.963466 1.9060e+05 0.03709\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "from numpy import nditer\n",
+ "#no. of modes\n",
+ "print \"part (a)\"\n",
+ "n1=1.5##core refractive index\n",
+ "n2=1.48##cladding refrative index\n",
+ "t=10.11##thickness of guided layer in micro meter\n",
+ "h=1.55##wavelength in µm\n",
+ "b1=((2*pi*n1)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "b2=((2*pi*n2)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "m=((2*pi*t)/h)*(sqrt(n1**2-n2**2))##number of modes\n",
+ "print \"number of modes are : \",round(m/2)\n",
+ "\n",
+ "print \"part (b)\"\n",
+ "t1=10.11##thickness of guided layer in micro meter\n",
+ "t=t1/2#\n",
+ "h=1.55##wavelength in µm\n",
+ "b1=((2*pi*n1)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "b2=((2*pi*n2)/(h*10**-6))##phase propagation constant in m**-1\n",
+ "mo=(((2*pi*t1)/h)*(sqrt(n1**2-n2**2)))/2##number of modes\n",
+ "uma0=1.30644## for m=0 from the curve\n",
+ "uma1=2.59574## for m=1 from the curve\n",
+ "uma2=3.83747## for m=2 from the curve\n",
+ "uma3=4.9063## for m=3 from the curve\n",
+ "wma0=4.8263## for m=0 from the curve\n",
+ "wma1=4.27342## for m=1 from the curve\n",
+ "wma2=3.20529## for m=2 from the curve\n",
+ "wma3=0.963466## for m=3 from the curve\n",
+ "um0=uma0/(t*10**-6)##in m**-1\n",
+ "um1=uma1/(t*10**-6)##in m**-1\n",
+ "um2=uma2/(t*10**-6)##in m**-1\n",
+ "um3=uma3/(t*10**-6)##in m**-1\n",
+ "wm0=wma0/(t*10**-6)##in m**-1\n",
+ "wm1=wma1/(t*10**-6)##in m**-1\n",
+ "wm2=wma2/(t*10**-6)##in m**-1\n",
+ "wm3=wma3/(t*10**-6)##in m**-1\n",
+ "bm0=((wm0*t*10**-6)/mo)**2##for m=0 \n",
+ "bm1=((wm1*t*10**-6)/mo)**2##for m=1\n",
+ "bm2=((wm2*t*10**-6)/mo)**2##for m=2 \n",
+ "bm3=((wm3*t*10**-6)/mo)**2##for m=3\n",
+ "m0=sqrt((bm0*(b1**2-b2**2))+b2**2)##for m=0 in m**-1\n",
+ "m1=sqrt((bm1*(b1**2-b2**2))+b2**2)##for m=1 in m**-1\n",
+ "m2=sqrt((bm2*(b1**2-b2**2))+b2**2)##for m=2 in m**-1\n",
+ "m3=sqrt((bm3*(b1**2-b2**2))+b2**2)##for m=3 in m**-1\n",
+ "params = [\"m\", \"uma(rad)\", \"um(m**-1)\", \"wma(rad)\", \"wm(m**-1)\", \"bm((wma/v)**2]\" ]\n",
+ "for x in params:\n",
+ " print x,'\\t',\n",
+ "\n",
+ "print '\\n'\n",
+ "a = range(0,4)\n",
+ "b = [uma0, uma1, uma2, uma3]\n",
+ "c = [um0, um1, um2, um3]\n",
+ "d = [wma0, wma1, wma2, wma3]\n",
+ "e = [wm0, wm1, wm2, wm3]\n",
+ "f = [bm0, bm1, bm2, bm3]\n",
+ "for k,l,m,n,o,p in nditer([a,b,c,d,e,f]) :\n",
+ " print k,' ',l,' %0.4e'%m,' ',n,' %0.4e'%o,' %0.5f'%p\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.4 : Page 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "G factor is 0.5622\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sin, cos, pi\n",
+ "#G factor\n",
+ "d=0.793##in micro meter\n",
+ "v=pi/2##point of intersection\n",
+ "ua=0.934##\n",
+ "wa=1.262##\n",
+ "Y=(wa*(1+(sin(ua*pi/180))*(cos(ua*pi/180))/ua))\n",
+ "G=(1+((cos(ua*pi/180))**2)/Y)**(-1)\n",
+ "print \"G factor is %0.4f\"%G\n",
+ "#answer is wrong in the textbook"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter4_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter4_2.ipynb
new file mode 100644
index 00000000..c5796425
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter4_2.ipynb
@@ -0,0 +1,222 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter4 - Wave propagation in cylindrical waveguides"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.1 : Page 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "normalised frequency parameter = 3.01\n",
+ "part (b)\n",
+ "propogation constants are Bo1 = 5.911e+06 and B11 = 5.885e+06\n",
+ "part (c)\n",
+ "phase velocity are (Vp)01 = 2.06e+08 ms**-1 and (Vp)11 = 2.07e+08 ms**-1 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#normalised frequency,propagation constants and phase velocity\n",
+ "print \"part (a)\"\n",
+ "n1=1.46#core refrative index\n",
+ "di=7.2#core diameter \n",
+ "n=1.46#core refrative index\n",
+ "d=1#relative differnce\n",
+ "h=1.55 # in micro meter\n",
+ "v=((2*pi*(di*10**-6)/2)*n*sqrt(2*(d/100)))/(h*10**-6)#normalised frequency parameter\n",
+ "print \"normalised frequency parameter = %0.2f\"%v\n",
+ "print \"part (b)\"\n",
+ "b1=(2*pi*n1)/(h*10**-6)# in m**-1\n",
+ "n2=n1-(d/100)#cladding refrative index\n",
+ "b2=(2*pi*n2)/(h*10**-6)# in m**-1\n",
+ "bo1=0.82#\n",
+ "b11=0.18#\n",
+ "B01=(b2**2+(bo1*(b1**2-b2**2)))**(1/2)#\n",
+ "B11=(b2**2+(b11*(b1**2-b2**2)))**(1/2)#\n",
+ "print \"propogation constants are Bo1 = %0.3e\"%(B01),\" and B11 = %0.3e\"%(B11)\n",
+ "#propogation constants are calculated wrong in the text bOOK\n",
+ "print \"part (c)\"\n",
+ "c=3*10**8# in ms**-1\n",
+ "vp1=(2*pi*c)/(h*10**-6*B01)#IN MS**-1\n",
+ "vp2=(2*pi*c)/(h*10**-6*B11)#IN MS**-1\n",
+ "print \"phase velocity are (Vp)01 = %0.2e \"%(vp1),\" ms**-1 and (Vp)11 = %0.2e\"%(vp2),\" ms**-1 \""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.2 : Page 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "power for LP01 mode is = 11 %\n",
+ "power for LP11 mode is = 35 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#frational power\n",
+ "p01=0.11#from the graph\n",
+ "p11=0.347#from the graph\n",
+ "print \"power for LP01 mode is = %0.f %%\"%(p01*100)\n",
+ "print \"power for LP11 mode is = %0.f %%\" %(p11*100)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.3 : Page 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of modes : 1974\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "#Number of the modes\n",
+ "h= 0.85# Wavelenght in micrometers\n",
+ "a= 50# Core radius in micrometers\n",
+ "NA=0.17#\n",
+ "v1=(2*pi*a*NA)/h#\n",
+ "m2= round((v1**2)/2)#\n",
+ "print \"Number of modes : %d\"%m2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.4 : Page 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "core diameter = 62 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt,pi\n",
+ "#core diameter\n",
+ "d=0.02#difference\n",
+ "n1=1.5#core refrative index\n",
+ "m=1000# number of modes\n",
+ "h= 1.3# Wavelenght in micrometers\n",
+ "a=((h/(pi*n1))*(m/d)**(1/2))#core diamter in micro meter\n",
+ "print \"core diameter = %0.f micro meter\"%a"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.5 : Page 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "maximum core diameter = 4.82 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#core diameter\n",
+ "d=0.02#difference\n",
+ "a1=75#in micro meter\n",
+ "n1=1.45#core refrative index\n",
+ "m=700# number of modes\n",
+ "v=sqrt(4*m)#\n",
+ "h=((2*pi*(a1/2)*n1*sqrt(2*(d/100)))/v)#in micro meter\n",
+ "vc=2.405*sqrt(2)#for single mode fiber\n",
+ "a=((vc*h)/(pi*n1*sqrt(2*(d/100))))#core diamter in micro meter\n",
+ "print \"maximum core diameter = %0.2f micro meter\"%a"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter4_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter4_3.ipynb
new file mode 100644
index 00000000..c5796425
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter4_3.ipynb
@@ -0,0 +1,222 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter4 - Wave propagation in cylindrical waveguides"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.1 : Page 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "normalised frequency parameter = 3.01\n",
+ "part (b)\n",
+ "propogation constants are Bo1 = 5.911e+06 and B11 = 5.885e+06\n",
+ "part (c)\n",
+ "phase velocity are (Vp)01 = 2.06e+08 ms**-1 and (Vp)11 = 2.07e+08 ms**-1 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#normalised frequency,propagation constants and phase velocity\n",
+ "print \"part (a)\"\n",
+ "n1=1.46#core refrative index\n",
+ "di=7.2#core diameter \n",
+ "n=1.46#core refrative index\n",
+ "d=1#relative differnce\n",
+ "h=1.55 # in micro meter\n",
+ "v=((2*pi*(di*10**-6)/2)*n*sqrt(2*(d/100)))/(h*10**-6)#normalised frequency parameter\n",
+ "print \"normalised frequency parameter = %0.2f\"%v\n",
+ "print \"part (b)\"\n",
+ "b1=(2*pi*n1)/(h*10**-6)# in m**-1\n",
+ "n2=n1-(d/100)#cladding refrative index\n",
+ "b2=(2*pi*n2)/(h*10**-6)# in m**-1\n",
+ "bo1=0.82#\n",
+ "b11=0.18#\n",
+ "B01=(b2**2+(bo1*(b1**2-b2**2)))**(1/2)#\n",
+ "B11=(b2**2+(b11*(b1**2-b2**2)))**(1/2)#\n",
+ "print \"propogation constants are Bo1 = %0.3e\"%(B01),\" and B11 = %0.3e\"%(B11)\n",
+ "#propogation constants are calculated wrong in the text bOOK\n",
+ "print \"part (c)\"\n",
+ "c=3*10**8# in ms**-1\n",
+ "vp1=(2*pi*c)/(h*10**-6*B01)#IN MS**-1\n",
+ "vp2=(2*pi*c)/(h*10**-6*B11)#IN MS**-1\n",
+ "print \"phase velocity are (Vp)01 = %0.2e \"%(vp1),\" ms**-1 and (Vp)11 = %0.2e\"%(vp2),\" ms**-1 \""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.2 : Page 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "power for LP01 mode is = 11 %\n",
+ "power for LP11 mode is = 35 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#frational power\n",
+ "p01=0.11#from the graph\n",
+ "p11=0.347#from the graph\n",
+ "print \"power for LP01 mode is = %0.f %%\"%(p01*100)\n",
+ "print \"power for LP11 mode is = %0.f %%\" %(p11*100)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.3 : Page 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of modes : 1974\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "#Number of the modes\n",
+ "h= 0.85# Wavelenght in micrometers\n",
+ "a= 50# Core radius in micrometers\n",
+ "NA=0.17#\n",
+ "v1=(2*pi*a*NA)/h#\n",
+ "m2= round((v1**2)/2)#\n",
+ "print \"Number of modes : %d\"%m2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.4 : Page 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "core diameter = 62 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt,pi\n",
+ "#core diameter\n",
+ "d=0.02#difference\n",
+ "n1=1.5#core refrative index\n",
+ "m=1000# number of modes\n",
+ "h= 1.3# Wavelenght in micrometers\n",
+ "a=((h/(pi*n1))*(m/d)**(1/2))#core diamter in micro meter\n",
+ "print \"core diameter = %0.f micro meter\"%a"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.5 : Page 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "maximum core diameter = 4.82 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#core diameter\n",
+ "d=0.02#difference\n",
+ "a1=75#in micro meter\n",
+ "n1=1.45#core refrative index\n",
+ "m=700# number of modes\n",
+ "v=sqrt(4*m)#\n",
+ "h=((2*pi*(a1/2)*n1*sqrt(2*(d/100)))/v)#in micro meter\n",
+ "vc=2.405*sqrt(2)#for single mode fiber\n",
+ "a=((vc*h)/(pi*n1*sqrt(2*(d/100))))#core diamter in micro meter\n",
+ "print \"maximum core diameter = %0.2f micro meter\"%a"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter5_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter5_2.ipynb
new file mode 100644
index 00000000..526b228b
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter5_2.ipynb
@@ -0,0 +1,232 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter5 - Single mode fibers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.1 : Page 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " w = 4.7086 and wp = 4.6184 micro meter when wavelength is 1.30 micro meter\n",
+ " w = 5.5109 and wp = 5.3570 micro meter when wavelength is 1.55 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#w and wp\n",
+ "n=1.46#core refractive index\n",
+ "d=0.003#differnce in core-cladding refrative index\n",
+ "a=4#core radius in micro meter\n",
+ "h1=1.30# inmicro meter\n",
+ "h2=1.55#in micro meter\n",
+ "v1=((2*pi*(a*10**-6))*n*sqrt(2*(d)))/(h1*10**-6)#normalised frequency parameter\n",
+ "v2=((2*pi*(a*10**-6))*n*sqrt(2*(d)))/(h2*10**-6)#normalised frequency parameter\n",
+ "w1=(a*10**-6)*(0.65+((1.619)/(v1)**(3/2))+(2.879/(v1)**6))#in meter\n",
+ "wp1=w1-(a*10**-6)*(0.016+((1.567)/(v1)**7))#in micro meter\n",
+ "w2=(a*10**-6)*(0.65+((1.619)/(v2)**(3/2))+(2.879/(v2)**6))#in meter\n",
+ "wp2=w2-(a*10**-6)*(0.016+((1.567)/(v2)**7))#in micro meter\n",
+ "print \" w = %0.4f\"%(w1*10**6),\"and wp = %0.4f\"%(wp1*10**6),\"micro meter when wavelength is 1.30 micro meter\"\n",
+ "print \" w = %0.4f\"%(w2*10**6),\"and wp = %0.4f\"%(wp2*10**6),\"micro meter when wavelength is 1.55 micro meter\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.2 : Page 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "difference between propogation constant = 62.83 m**-1\n",
+ "part (b)\n",
+ "modal birefringence = 1e-05\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#difference between propogation constant and modal birefringence\n",
+ "print \"part (a)\"\n",
+ "bl=10#beat length in cm\n",
+ "h=1#in micro meter\n",
+ "db=((2*pi)/(bl*10**-2))#in m**-1\n",
+ "print \"difference between propogation constant = %0.2f m**-1\"%db\n",
+ "print \"part (b)\"\n",
+ "mb=db*((h*10**-6)/(2*pi))#modal birefringence\n",
+ "print \"modal birefringence = %0.e\"%mb\n",
+ "#answer is approximately equal to the answer in the book"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.3 : Page 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " waveguide dispersion factor = -3.149 ps nm**-1 km**-1 at wavelength 1.3 micro meter\n",
+ " waveguide dispersion factor = -5.537 ps nm**-1 km**-1 at wavelength 1.55 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#waveguide dispersion factor\n",
+ "n=1.45#core refractive index\n",
+ "d=0.003#differnce in core-cladding refrative index\n",
+ "n2=1.45*(1-d)#cladding refractive index\n",
+ "d1=8.2#core diameter in micro meter\n",
+ "a=d1/2#core radius in micro meter\n",
+ "h1=1.30# inmicro meter\n",
+ "h2=1.55#in micro meter\n",
+ "v1=(2*pi*a*n*sqrt(2*d))/h1#normalised frequency parameter\n",
+ "v2=((2*pi*(a))*n*sqrt(2*(d)))/(h2)#normalised frequency parameter\n",
+ "v1dv=0.080+0.549*(2.834-v1)**2#\n",
+ "v2dv=0.080+0.549*(2.834-v2)**2#\n",
+ "c=3*10**8# in m/s\n",
+ "dw1=-((n2*d*v1dv)/(c*h1))*10**12#waveguide dispersion factor in ps nm**-1 km**-1\n",
+ "dw2=-((n2*d*v2dv)/(c*h2))*10**12#waveguide dispersion factor in ps nm**-1 km**-1\n",
+ "print \" waveguide dispersion factor = %0.3f\"%(dw1),\"ps nm**-1 km**-1 at wavelength 1.3 micro meter\"\n",
+ "print \" waveguide dispersion factor = %0.3f\"%(dw2),\"ps nm**-1 km**-1 at wavelength 1.55 micro meter\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.4 : Page 95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "diameter of the core = 7.10 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#diameter of the core\n",
+ "c=3*10**8#in m/s\n",
+ "dm=6#material dispersion in ps nm**-1 km**-1\n",
+ "h=1.55#in micro meter\n",
+ "n1=1.45#core refrative index\n",
+ "d=0.005#differnce\n",
+ "n2=n1*(1-d)#cladding refrative index\n",
+ "x=((-dm/(((-n2*d)/(c*h))*10**12))-0.080)/0.549#\n",
+ "v=-(sqrt(x)-2.834)#\n",
+ "d=((v*h)/(pi*n1*sqrt(2*d)))#diameter in micro meter\n",
+ "print \"diameter of the core = %0.2f micro meter\"%d"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.5 : Page 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "splice loss = 0.20 dB when wavelength is 1.30 micro meter\n",
+ "splice loss = 0.15 dB when wavelength is 1.55 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "#splice loss\n",
+ "h1=1.30#in micro meter\n",
+ "wp1=4.6155#in micro meter\n",
+ "h2=1.55#in micro meter\n",
+ "wp2=5.355#in micro meter\n",
+ "sl1=4.34*(1/wp1)**2#splice loss in dB\n",
+ "sl2=4.34*(1/wp2)**2#splice loss in dB\n",
+ "print \"splice loss = %0.2f dB when wavelength is 1.30 micro meter\"%sl1\n",
+ "print \"splice loss = %0.2f dB when wavelength is 1.55 micro meter\"%sl2"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter5_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter5_3.ipynb
new file mode 100644
index 00000000..526b228b
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter5_3.ipynb
@@ -0,0 +1,232 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter5 - Single mode fibers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.1 : Page 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " w = 4.7086 and wp = 4.6184 micro meter when wavelength is 1.30 micro meter\n",
+ " w = 5.5109 and wp = 5.3570 micro meter when wavelength is 1.55 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#w and wp\n",
+ "n=1.46#core refractive index\n",
+ "d=0.003#differnce in core-cladding refrative index\n",
+ "a=4#core radius in micro meter\n",
+ "h1=1.30# inmicro meter\n",
+ "h2=1.55#in micro meter\n",
+ "v1=((2*pi*(a*10**-6))*n*sqrt(2*(d)))/(h1*10**-6)#normalised frequency parameter\n",
+ "v2=((2*pi*(a*10**-6))*n*sqrt(2*(d)))/(h2*10**-6)#normalised frequency parameter\n",
+ "w1=(a*10**-6)*(0.65+((1.619)/(v1)**(3/2))+(2.879/(v1)**6))#in meter\n",
+ "wp1=w1-(a*10**-6)*(0.016+((1.567)/(v1)**7))#in micro meter\n",
+ "w2=(a*10**-6)*(0.65+((1.619)/(v2)**(3/2))+(2.879/(v2)**6))#in meter\n",
+ "wp2=w2-(a*10**-6)*(0.016+((1.567)/(v2)**7))#in micro meter\n",
+ "print \" w = %0.4f\"%(w1*10**6),\"and wp = %0.4f\"%(wp1*10**6),\"micro meter when wavelength is 1.30 micro meter\"\n",
+ "print \" w = %0.4f\"%(w2*10**6),\"and wp = %0.4f\"%(wp2*10**6),\"micro meter when wavelength is 1.55 micro meter\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.2 : Page 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "difference between propogation constant = 62.83 m**-1\n",
+ "part (b)\n",
+ "modal birefringence = 1e-05\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#difference between propogation constant and modal birefringence\n",
+ "print \"part (a)\"\n",
+ "bl=10#beat length in cm\n",
+ "h=1#in micro meter\n",
+ "db=((2*pi)/(bl*10**-2))#in m**-1\n",
+ "print \"difference between propogation constant = %0.2f m**-1\"%db\n",
+ "print \"part (b)\"\n",
+ "mb=db*((h*10**-6)/(2*pi))#modal birefringence\n",
+ "print \"modal birefringence = %0.e\"%mb\n",
+ "#answer is approximately equal to the answer in the book"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.3 : Page 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " waveguide dispersion factor = -3.149 ps nm**-1 km**-1 at wavelength 1.3 micro meter\n",
+ " waveguide dispersion factor = -5.537 ps nm**-1 km**-1 at wavelength 1.55 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#waveguide dispersion factor\n",
+ "n=1.45#core refractive index\n",
+ "d=0.003#differnce in core-cladding refrative index\n",
+ "n2=1.45*(1-d)#cladding refractive index\n",
+ "d1=8.2#core diameter in micro meter\n",
+ "a=d1/2#core radius in micro meter\n",
+ "h1=1.30# inmicro meter\n",
+ "h2=1.55#in micro meter\n",
+ "v1=(2*pi*a*n*sqrt(2*d))/h1#normalised frequency parameter\n",
+ "v2=((2*pi*(a))*n*sqrt(2*(d)))/(h2)#normalised frequency parameter\n",
+ "v1dv=0.080+0.549*(2.834-v1)**2#\n",
+ "v2dv=0.080+0.549*(2.834-v2)**2#\n",
+ "c=3*10**8# in m/s\n",
+ "dw1=-((n2*d*v1dv)/(c*h1))*10**12#waveguide dispersion factor in ps nm**-1 km**-1\n",
+ "dw2=-((n2*d*v2dv)/(c*h2))*10**12#waveguide dispersion factor in ps nm**-1 km**-1\n",
+ "print \" waveguide dispersion factor = %0.3f\"%(dw1),\"ps nm**-1 km**-1 at wavelength 1.3 micro meter\"\n",
+ "print \" waveguide dispersion factor = %0.3f\"%(dw2),\"ps nm**-1 km**-1 at wavelength 1.55 micro meter\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.4 : Page 95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "diameter of the core = 7.10 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "#diameter of the core\n",
+ "c=3*10**8#in m/s\n",
+ "dm=6#material dispersion in ps nm**-1 km**-1\n",
+ "h=1.55#in micro meter\n",
+ "n1=1.45#core refrative index\n",
+ "d=0.005#differnce\n",
+ "n2=n1*(1-d)#cladding refrative index\n",
+ "x=((-dm/(((-n2*d)/(c*h))*10**12))-0.080)/0.549#\n",
+ "v=-(sqrt(x)-2.834)#\n",
+ "d=((v*h)/(pi*n1*sqrt(2*d)))#diameter in micro meter\n",
+ "print \"diameter of the core = %0.2f micro meter\"%d"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.5 : Page 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "splice loss = 0.20 dB when wavelength is 1.30 micro meter\n",
+ "splice loss = 0.15 dB when wavelength is 1.55 micro meter\n"
+ ]
+ }
+ ],
+ "source": [
+ "#splice loss\n",
+ "h1=1.30#in micro meter\n",
+ "wp1=4.6155#in micro meter\n",
+ "h2=1.55#in micro meter\n",
+ "wp2=5.355#in micro meter\n",
+ "sl1=4.34*(1/wp1)**2#splice loss in dB\n",
+ "sl2=4.34*(1/wp2)**2#splice loss in dB\n",
+ "print \"splice loss = %0.2f dB when wavelength is 1.30 micro meter\"%sl1\n",
+ "print \"splice loss = %0.2f dB when wavelength is 1.55 micro meter\"%sl2"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter6_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter6_2.ipynb
new file mode 100644
index 00000000..8c800768
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter6_2.ipynb
@@ -0,0 +1,252 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter6 - Optical fiber cables and connections"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.1 : Page 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "refractive index = 1.59\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from sympy import symbols, solve\n",
+ "#refractive index\n",
+ "l=0.47##in db\n",
+ "nf=10**((l/-10))##\n",
+ "\n",
+ "x=symbols(\"x\")\n",
+ "p=1+-2.22*x+x**2##\n",
+ "y=solve(p,x)##\n",
+ "print \"refractive index = %0.2F\"%y[1]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.2 : Page 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "insertion loss at the joint = 0.64 dB\n",
+ "part (b)\n",
+ "insertion loss at the joint = 0.286 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import log10, acos, pi\n",
+ "#loss\n",
+ "print \"part (a)\"\n",
+ "dya=0.1##\n",
+ "n1=1.50##refrative index\n",
+ "na=1##\n",
+ "k1=n1/n1##\n",
+ "k2=1##\n",
+ "nf=((16*(n1)**2)/((n1+1)**4))##\n",
+ "nlat=(2/(3.14))*(acos(dya/2)-(dya/2)*(1-(dya/2)**2)**(1/2))##\n",
+ "nt=nf*nlat##\n",
+ "lt=(-10*log10(nt))##in dB\n",
+ "print \"insertion loss at the joint = %0.2f dB\"%lt\n",
+ "print \"part (b)\"\n",
+ "dya=0.1##\n",
+ "n1=1.50##refrative index\n",
+ "na=1##\n",
+ "k1=n1/n1##\n",
+ "k2=1##\n",
+ "nf=((16*(n1)**2)/((n1+1)**4))##\n",
+ "nlat=(2/(pi))*(acos(dya/2)-(dya/2)*(1-(dya/2)**2)**(1/2))#\n",
+ "nt=k2*nlat##\n",
+ "lt=(-10*log10(nt))##in dB\n",
+ "print \"insertion loss at the joint = %0.3f dB\"%lt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.3 : Page 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "total loss = 0.75 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt,pi,acos,log10\n",
+ "#loss\n",
+ "d=100##micro meter\n",
+ "dx=0##\n",
+ "dy=3##in micro mete\n",
+ "dth=3##in degree\n",
+ "dthr=dth*(pi/180)##\n",
+ "dya=0.02##\n",
+ "n1=1.48##refrative index\n",
+ "na=1##\n",
+ "k1=n1/n1##\n",
+ "k2=1##\n",
+ "nf=((16*(n1)**2)/((n1+1)**4))##\n",
+ "nlat=(2/(pi))*(acos(dy/100)-(dy/100)*(1-(dy/100)**2)**(1/2))##\n",
+ "NA=n1*(sqrt(2*dya))##\n",
+ "nang=((1-(na*dthr)/(pi*NA)))##\n",
+ "nt=nf*nlat*nang##\n",
+ "lt=(-10*log10(nt))##in dB\n",
+ "print \"total loss = %0.2f dB\"%lt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.4 : Page 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "total loss = 4.1260 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from scipy import log10\n",
+ "#loss\n",
+ "d1=80##micro meter\n",
+ "na1=0.25##\n",
+ "alpha1=2##\n",
+ "d2=60##in micro meter\n",
+ "na2=0.21##\n",
+ "alpha2=1.9##\n",
+ "ncd=(d2/d1)**2##\n",
+ "nna=(na2/na1)**2##\n",
+ "nalpha=((1+(2/alpha1))/(1+((2/alpha2))))##\n",
+ "nt=ncd*nna*nalpha##\n",
+ "lt=(-10*log10(nt))##in dB\n",
+ "print \"total loss = %0.4f dB\"%lt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.5 : Page 125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "total loss forward direction = 3.52 dB\n",
+ "total loss backward direction = 0.217 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from scipy import log10\n",
+ "#loss\n",
+ "d1=60##micro meter\n",
+ "na1=0.25##\n",
+ "alpha1=2.1##\n",
+ "d2=50##in micro meter\n",
+ "na2=0.20##\n",
+ "alpha2=1.9##\n",
+ "ncd=(d2/d1)**2##\n",
+ "nna=(na2/na1)**2##\n",
+ "nalpha1=1##\n",
+ "nalpha=((1+(2/alpha1))/(1+((2/alpha2))))##\n",
+ "ncd1=1##\n",
+ "nna1=1##\n",
+ "nt=ncd*nna*nalpha1##\n",
+ "ltf=(-10*log10(nt))##in dB\n",
+ "nt1=ncd1*nna1*nalpha##\n",
+ "ltb=(-10*log10(nt1))##in dB\n",
+ "print \"total loss forward direction = %0.2f dB\"%ltf\n",
+ "print \"total loss backward direction = %0.3f dB\"%ltb"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter6_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter6_3.ipynb
new file mode 100644
index 00000000..8c800768
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter6_3.ipynb
@@ -0,0 +1,252 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter6 - Optical fiber cables and connections"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.1 : Page 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "refractive index = 1.59\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from sympy import symbols, solve\n",
+ "#refractive index\n",
+ "l=0.47##in db\n",
+ "nf=10**((l/-10))##\n",
+ "\n",
+ "x=symbols(\"x\")\n",
+ "p=1+-2.22*x+x**2##\n",
+ "y=solve(p,x)##\n",
+ "print \"refractive index = %0.2F\"%y[1]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.2 : Page 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "insertion loss at the joint = 0.64 dB\n",
+ "part (b)\n",
+ "insertion loss at the joint = 0.286 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import log10, acos, pi\n",
+ "#loss\n",
+ "print \"part (a)\"\n",
+ "dya=0.1##\n",
+ "n1=1.50##refrative index\n",
+ "na=1##\n",
+ "k1=n1/n1##\n",
+ "k2=1##\n",
+ "nf=((16*(n1)**2)/((n1+1)**4))##\n",
+ "nlat=(2/(3.14))*(acos(dya/2)-(dya/2)*(1-(dya/2)**2)**(1/2))##\n",
+ "nt=nf*nlat##\n",
+ "lt=(-10*log10(nt))##in dB\n",
+ "print \"insertion loss at the joint = %0.2f dB\"%lt\n",
+ "print \"part (b)\"\n",
+ "dya=0.1##\n",
+ "n1=1.50##refrative index\n",
+ "na=1##\n",
+ "k1=n1/n1##\n",
+ "k2=1##\n",
+ "nf=((16*(n1)**2)/((n1+1)**4))##\n",
+ "nlat=(2/(pi))*(acos(dya/2)-(dya/2)*(1-(dya/2)**2)**(1/2))#\n",
+ "nt=k2*nlat##\n",
+ "lt=(-10*log10(nt))##in dB\n",
+ "print \"insertion loss at the joint = %0.3f dB\"%lt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.3 : Page 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "total loss = 0.75 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt,pi,acos,log10\n",
+ "#loss\n",
+ "d=100##micro meter\n",
+ "dx=0##\n",
+ "dy=3##in micro mete\n",
+ "dth=3##in degree\n",
+ "dthr=dth*(pi/180)##\n",
+ "dya=0.02##\n",
+ "n1=1.48##refrative index\n",
+ "na=1##\n",
+ "k1=n1/n1##\n",
+ "k2=1##\n",
+ "nf=((16*(n1)**2)/((n1+1)**4))##\n",
+ "nlat=(2/(pi))*(acos(dy/100)-(dy/100)*(1-(dy/100)**2)**(1/2))##\n",
+ "NA=n1*(sqrt(2*dya))##\n",
+ "nang=((1-(na*dthr)/(pi*NA)))##\n",
+ "nt=nf*nlat*nang##\n",
+ "lt=(-10*log10(nt))##in dB\n",
+ "print \"total loss = %0.2f dB\"%lt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.4 : Page 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "total loss = 4.1260 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from scipy import log10\n",
+ "#loss\n",
+ "d1=80##micro meter\n",
+ "na1=0.25##\n",
+ "alpha1=2##\n",
+ "d2=60##in micro meter\n",
+ "na2=0.21##\n",
+ "alpha2=1.9##\n",
+ "ncd=(d2/d1)**2##\n",
+ "nna=(na2/na1)**2##\n",
+ "nalpha=((1+(2/alpha1))/(1+((2/alpha2))))##\n",
+ "nt=ncd*nna*nalpha##\n",
+ "lt=(-10*log10(nt))##in dB\n",
+ "print \"total loss = %0.4f dB\"%lt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.5 : Page 125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "total loss forward direction = 3.52 dB\n",
+ "total loss backward direction = 0.217 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from scipy import log10\n",
+ "#loss\n",
+ "d1=60##micro meter\n",
+ "na1=0.25##\n",
+ "alpha1=2.1##\n",
+ "d2=50##in micro meter\n",
+ "na2=0.20##\n",
+ "alpha2=1.9##\n",
+ "ncd=(d2/d1)**2##\n",
+ "nna=(na2/na1)**2##\n",
+ "nalpha1=1##\n",
+ "nalpha=((1+(2/alpha1))/(1+((2/alpha2))))##\n",
+ "ncd1=1##\n",
+ "nna1=1##\n",
+ "nt=ncd*nna*nalpha1##\n",
+ "ltf=(-10*log10(nt))##in dB\n",
+ "nt1=ncd1*nna1*nalpha##\n",
+ "ltb=(-10*log10(nt1))##in dB\n",
+ "print \"total loss forward direction = %0.2f dB\"%ltf\n",
+ "print \"total loss backward direction = %0.3f dB\"%ltb"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter7_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter7_2.ipynb
new file mode 100644
index 00000000..61e58658
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter7_2.ipynb
@@ -0,0 +1,338 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter7 - Optoelectronic sources"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.1: Page 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Intrinsic carrier concentration ,ni = 2.2e+12 m**-3\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, exp\n",
+ "#Intrinsic carrier\n",
+ "#given data :\n",
+ "m=9.11*10**-31## in kg\n",
+ "k=1.38*10**-23## in JK**-1\n",
+ "h=6.626*10**-34## in Js\n",
+ "ev=1.6*10**-19## in J\n",
+ "T=300## in K\n",
+ "me=0.07*m## in kg\n",
+ "mh=0.56*m## in kg\n",
+ "Eg=1.43*ev## in J\n",
+ "ni=2*((2*pi*k*T)/h**2)**(3/2)*(me*mh)**(3/4)*exp(-Eg/(2*k*T))#\n",
+ "print \"Intrinsic carrier concentration ,ni = %0.1e m**-3\"%ni"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.2: Page 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Diffusion potential, Vd = 1.234 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Diffusion potential\n",
+ "from math import log\n",
+ "#given data :\n",
+ "Na=5*10**23## in m**-3\n",
+ "Nd=5*10**21## in m**-3\n",
+ "T=300## in K\n",
+ "e=1.6*10**-19## in J\n",
+ "k=1.38*10**-23## in JK**-1\n",
+ "V=(k*T)/e#\n",
+ "ni=2.2*10**12## in m**-3\n",
+ "Vd=V*log((Na*Nd)/ni**2)#\n",
+ "print \"Diffusion potential, Vd = %0.3f V\"%Vd"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.3: Page 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Injection efficiency, eta_inj = 0.8247\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Injection efficiency\n",
+ "#given data :\n",
+ "Na=10**23## in m**-3\n",
+ "Nd=10**21## in m**-3\n",
+ "T=300## in K\n",
+ "e=1.6*10**-19## in J\n",
+ "k=1.38*10**-23## in JK**-1\n",
+ "mue=0.85## in m**2V**-1s**-1\n",
+ "muh=0.04## in m**2V**-1s**-1\n",
+ "De=(mue*k*T)/e## in m**2s**-1\n",
+ "Dh=(muh*k*T)/e## in m**2s**-1\n",
+ "Le=1#\n",
+ "Lh=Le#\n",
+ "eta_inj=1/(1+((De/Dh)*(Lh/Le)*(Nd/Na)))#\n",
+ "print \"Injection efficiency, eta_inj = %0.4f\"%eta_inj"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.4: Page 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "Internal quantum efficiency = 0.50\n",
+ "part (b)\n",
+ "External quantum efficiency = 0.0337\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Internal and quantum efficiency\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "tau_rr=1#\n",
+ "tau_nr=tau_rr#\n",
+ "eta_int=1/(1+(tau_rr/tau_nr))#\n",
+ "print \"Internal quantum efficiency = %0.2f\"%eta_int\n",
+ "print \"part (b)\"\n",
+ "ns=3.7#\n",
+ "na=1.5#\n",
+ "As=0#\n",
+ "eta_ext=eta_int*(1-As)*((2*na**3)/(ns*(ns+na)**2))#\n",
+ "print \"External quantum efficiency = %0.4f\"%eta_ext"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.5: Page 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The number of longitudinal modes excited = 1.001e-03 nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#The number of longitudinal modes excited\n",
+ "#given data :\n",
+ "lamda=632.8*10**-9## in m\n",
+ "n=1#\n",
+ "L=20*10**-2## in m\n",
+ "del_lamda=((lamda)**2/(2*n*L))*10**9#\n",
+ "print \"The number of longitudinal modes excited = %0.3e nm\"%del_lamda"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.6: Page 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "The reduction in threshold gain = 1.31 mm**-1\n",
+ "part (b)\n",
+ "Differential quantum efficiency = 0.42\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, exp,log\n",
+ "#The reduction and Differential quantum efficiency\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "alfa_eff=1.5## in mm**-1\n",
+ "gama=0.8#\n",
+ "L=0.5## in mm\n",
+ "R1=0.35#\n",
+ "R2=R1#\n",
+ "R2a=1.0#\n",
+ "g_th1=(1/gama)*(alfa_eff+(1/(2*L))*log(1/(R1*R2)))#\n",
+ "g_th2=(1/gama)*(alfa_eff+(1/(2*L))*log(1/(R1*R2a)))#\n",
+ "del_gth=g_th1-g_th2#\n",
+ "print \"The reduction in threshold gain = %0.2f mm**-1\"%del_gth\n",
+ "print \"part (b)\"\n",
+ "eta_D=(gama*(g_th2-alfa_eff))/(g_th2)#\n",
+ "print \"Differential quantum efficiency = %0.2f\"%eta_D"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.7: Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "The internal power efficiency = 0.48\n",
+ "part (b)\n",
+ "The external power efficiency = 0.012\n",
+ "part (c)\n",
+ "The overall source fiber power coupling efficiency = 8.51e-04\n",
+ "The optical loss = 30.70 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log10\n",
+ "#Internal and external power efficiency\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "As=0##\n",
+ "ns=3.7## assuming that the example 7.4\n",
+ "eta_int=0.50## internal efficiency\n",
+ "V=1.5## in V\n",
+ "I=120*10**-3## in A\n",
+ "IBYe=120*10**-3## \n",
+ "Eph=1.43## in eV\n",
+ "eta_int=0.50## internal efficiency\n",
+ "fi_int=eta_int*IBYe*Eph#\n",
+ "t_power=I*V#\n",
+ "P_int=fi_int/t_power#\n",
+ "print \"The internal power efficiency = %0.2f\"%P_int\n",
+ "print \"part (b)\"\n",
+ "eta_ext=eta_int*(1-As)*2/(ns*(ns+1)**2)#\n",
+ "fi_ext=eta_ext*IBYe*Eph#\n",
+ "t_power=I*V#\n",
+ "P_ext=fi_ext/t_power#\n",
+ "print \"The external power efficiency = %0.3f\"%P_ext\n",
+ "print \"part (c)\"\n",
+ "V=1.5## in V\n",
+ "I=120*10**-3## in A\n",
+ "IBYe=120*10**-3## \n",
+ "Eph=1.43## in eV\n",
+ "n1=1.5#\n",
+ "n2=1.48#\n",
+ "na=n1#\n",
+ "eta_ext=0.0337#\n",
+ "eta_T=eta_ext*((n1**2-n2**2)/na**2)#\n",
+ "fi_T=eta_T*IBYe*Eph#\n",
+ "t_power=I*V#\n",
+ "sfpc=fi_T/t_power#\n",
+ "O_loss=-10*log10(sfpc)#\n",
+ "print \"The overall source fiber power coupling efficiency = %0.2e\"%sfpc\n",
+ "print \"The optical loss = %0.2f dB\"%O_loss"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter7_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter7_3.ipynb
new file mode 100644
index 00000000..61e58658
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter7_3.ipynb
@@ -0,0 +1,338 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter7 - Optoelectronic sources"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.1: Page 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Intrinsic carrier concentration ,ni = 2.2e+12 m**-3\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, exp\n",
+ "#Intrinsic carrier\n",
+ "#given data :\n",
+ "m=9.11*10**-31## in kg\n",
+ "k=1.38*10**-23## in JK**-1\n",
+ "h=6.626*10**-34## in Js\n",
+ "ev=1.6*10**-19## in J\n",
+ "T=300## in K\n",
+ "me=0.07*m## in kg\n",
+ "mh=0.56*m## in kg\n",
+ "Eg=1.43*ev## in J\n",
+ "ni=2*((2*pi*k*T)/h**2)**(3/2)*(me*mh)**(3/4)*exp(-Eg/(2*k*T))#\n",
+ "print \"Intrinsic carrier concentration ,ni = %0.1e m**-3\"%ni"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.2: Page 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Diffusion potential, Vd = 1.234 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Diffusion potential\n",
+ "from math import log\n",
+ "#given data :\n",
+ "Na=5*10**23## in m**-3\n",
+ "Nd=5*10**21## in m**-3\n",
+ "T=300## in K\n",
+ "e=1.6*10**-19## in J\n",
+ "k=1.38*10**-23## in JK**-1\n",
+ "V=(k*T)/e#\n",
+ "ni=2.2*10**12## in m**-3\n",
+ "Vd=V*log((Na*Nd)/ni**2)#\n",
+ "print \"Diffusion potential, Vd = %0.3f V\"%Vd"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.3: Page 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Injection efficiency, eta_inj = 0.8247\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Injection efficiency\n",
+ "#given data :\n",
+ "Na=10**23## in m**-3\n",
+ "Nd=10**21## in m**-3\n",
+ "T=300## in K\n",
+ "e=1.6*10**-19## in J\n",
+ "k=1.38*10**-23## in JK**-1\n",
+ "mue=0.85## in m**2V**-1s**-1\n",
+ "muh=0.04## in m**2V**-1s**-1\n",
+ "De=(mue*k*T)/e## in m**2s**-1\n",
+ "Dh=(muh*k*T)/e## in m**2s**-1\n",
+ "Le=1#\n",
+ "Lh=Le#\n",
+ "eta_inj=1/(1+((De/Dh)*(Lh/Le)*(Nd/Na)))#\n",
+ "print \"Injection efficiency, eta_inj = %0.4f\"%eta_inj"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.4: Page 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "Internal quantum efficiency = 0.50\n",
+ "part (b)\n",
+ "External quantum efficiency = 0.0337\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Internal and quantum efficiency\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "tau_rr=1#\n",
+ "tau_nr=tau_rr#\n",
+ "eta_int=1/(1+(tau_rr/tau_nr))#\n",
+ "print \"Internal quantum efficiency = %0.2f\"%eta_int\n",
+ "print \"part (b)\"\n",
+ "ns=3.7#\n",
+ "na=1.5#\n",
+ "As=0#\n",
+ "eta_ext=eta_int*(1-As)*((2*na**3)/(ns*(ns+na)**2))#\n",
+ "print \"External quantum efficiency = %0.4f\"%eta_ext"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.5: Page 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The number of longitudinal modes excited = 1.001e-03 nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#The number of longitudinal modes excited\n",
+ "#given data :\n",
+ "lamda=632.8*10**-9## in m\n",
+ "n=1#\n",
+ "L=20*10**-2## in m\n",
+ "del_lamda=((lamda)**2/(2*n*L))*10**9#\n",
+ "print \"The number of longitudinal modes excited = %0.3e nm\"%del_lamda"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.6: Page 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "The reduction in threshold gain = 1.31 mm**-1\n",
+ "part (b)\n",
+ "Differential quantum efficiency = 0.42\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, exp,log\n",
+ "#The reduction and Differential quantum efficiency\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "alfa_eff=1.5## in mm**-1\n",
+ "gama=0.8#\n",
+ "L=0.5## in mm\n",
+ "R1=0.35#\n",
+ "R2=R1#\n",
+ "R2a=1.0#\n",
+ "g_th1=(1/gama)*(alfa_eff+(1/(2*L))*log(1/(R1*R2)))#\n",
+ "g_th2=(1/gama)*(alfa_eff+(1/(2*L))*log(1/(R1*R2a)))#\n",
+ "del_gth=g_th1-g_th2#\n",
+ "print \"The reduction in threshold gain = %0.2f mm**-1\"%del_gth\n",
+ "print \"part (b)\"\n",
+ "eta_D=(gama*(g_th2-alfa_eff))/(g_th2)#\n",
+ "print \"Differential quantum efficiency = %0.2f\"%eta_D"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.7: Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "The internal power efficiency = 0.48\n",
+ "part (b)\n",
+ "The external power efficiency = 0.012\n",
+ "part (c)\n",
+ "The overall source fiber power coupling efficiency = 8.51e-04\n",
+ "The optical loss = 30.70 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log10\n",
+ "#Internal and external power efficiency\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "As=0##\n",
+ "ns=3.7## assuming that the example 7.4\n",
+ "eta_int=0.50## internal efficiency\n",
+ "V=1.5## in V\n",
+ "I=120*10**-3## in A\n",
+ "IBYe=120*10**-3## \n",
+ "Eph=1.43## in eV\n",
+ "eta_int=0.50## internal efficiency\n",
+ "fi_int=eta_int*IBYe*Eph#\n",
+ "t_power=I*V#\n",
+ "P_int=fi_int/t_power#\n",
+ "print \"The internal power efficiency = %0.2f\"%P_int\n",
+ "print \"part (b)\"\n",
+ "eta_ext=eta_int*(1-As)*2/(ns*(ns+1)**2)#\n",
+ "fi_ext=eta_ext*IBYe*Eph#\n",
+ "t_power=I*V#\n",
+ "P_ext=fi_ext/t_power#\n",
+ "print \"The external power efficiency = %0.3f\"%P_ext\n",
+ "print \"part (c)\"\n",
+ "V=1.5## in V\n",
+ "I=120*10**-3## in A\n",
+ "IBYe=120*10**-3## \n",
+ "Eph=1.43## in eV\n",
+ "n1=1.5#\n",
+ "n2=1.48#\n",
+ "na=n1#\n",
+ "eta_ext=0.0337#\n",
+ "eta_T=eta_ext*((n1**2-n2**2)/na**2)#\n",
+ "fi_T=eta_T*IBYe*Eph#\n",
+ "t_power=I*V#\n",
+ "sfpc=fi_T/t_power#\n",
+ "O_loss=-10*log10(sfpc)#\n",
+ "print \"The overall source fiber power coupling efficiency = %0.2e\"%sfpc\n",
+ "print \"The optical loss = %0.2f dB\"%O_loss"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter8_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter8_2.ipynb
new file mode 100644
index 00000000..d3376f8c
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter8_2.ipynb
@@ -0,0 +1,381 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter8 - Optoelectronic detectors"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.1 : Page 204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "The photon energy = 1.31 micro-m \n",
+ "part (b)\n",
+ "The optical power = 4.07 micro W \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#The photon energy and optical power\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "h=6.626*10**-34## in Js\n",
+ "c=3*10**8## in ms**-1\n",
+ "E=1.52*10**-19## in J\n",
+ "lamda=((h*c)/E)*10**6#\n",
+ "print \"The photon energy = %0.2f micro-m \"%lamda\n",
+ "print \"part (b)\"\n",
+ "e=1.6*10**-19## in J\n",
+ "Ip=3*10**6## in A\n",
+ "E=1.52*10**-19## in J\n",
+ "eta=70/100#\n",
+ "R=(eta*e)/E#\n",
+ "P_in=(Ip/R)*10**-6#\n",
+ "print \"The optical power = %0.2f micro W \"%P_in"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.2 : Page 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "The quantum efficiency, eta = 50.00 %\n",
+ "part (b)\n",
+ "Maximum possible band gap energy,Eg = 1.46 eV \n",
+ "part (c)\n",
+ "The mean output, Ip = 3.42 micro A\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#The quantum efficiency,Maximum possible band gap energy and mean output\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "e=1## electron\n",
+ "p=2## photon\n",
+ "eta=(e/p)*100#\n",
+ "print \"The quantum efficiency, eta = %0.2f %%\"%eta\n",
+ "print \"part (b)\"\n",
+ "h=6.626*10**-34##in Js\n",
+ "c=3*10**8## in m s**-1\n",
+ "lamda_c=0.85*10**-6## in m\n",
+ "Eg=((h*c)/lamda_c)/1.6*10**19#\n",
+ "print \"Maximum possible band gap energy,Eg = %0.2f eV \"%Eg\n",
+ "print \"part (c)\"\n",
+ "e=1## electron\n",
+ "p=2## photon\n",
+ "eta=(e/p)#\n",
+ "e=1.6*10**-19## in J\n",
+ "h=6.626*10**-34##in Js\n",
+ "c=3*10**8## in m s**-1\n",
+ "lamda_c=0.85*10**-6## in m\n",
+ "Eg=((h*c)/lamda_c)#\n",
+ "P_in=10*10**-6## in W\n",
+ "Ip=((eta*e*P_in)/Eg)*10**6#\n",
+ "print \"The mean output, Ip = %0.2f micro A\"%Ip"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.3 : Page 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "The quantum efficiency = 0.4\n",
+ "part (b)\n",
+ "The responsivity of the diode,R = 0.29 AW**-1\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#The quantum efficiency and The responsivity of the diode\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "e=2*10**10## in s**-1\n",
+ "p=5*10**10## in s**-1\n",
+ "eta=e/p#\n",
+ "print \"The quantum efficiency = \",eta\n",
+ "print \"part (b)\"\n",
+ "e=2*10**10## in s**-1\n",
+ "p=5*10**10## in s**-1\n",
+ "eta=e/p#\n",
+ "e=1.6*10**-19## in J\n",
+ "h=6.626*10**-34##in Js\n",
+ "c=3*10**8## in m s**-1\n",
+ "lamda=0.90*10**-6## in m\n",
+ "R=(eta*e*lamda)/(h*c)#\n",
+ "print \"The responsivity of the diode,R = %0.2f AW**-1\"%R"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.4 : Page 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The multiplication factor,M = 47.8\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#The multiplication\n",
+ "#given data :\n",
+ "eta=40/100##\n",
+ "e=1.6*10**-19## in J\n",
+ "h=6.626*10**-34##in Js\n",
+ "c=3*10**8## in m s**-1\n",
+ "lamda=1.3*10**-6## in m\n",
+ "P_in=0.3*10**-6## in W\n",
+ "I=6*10**-6## in A\n",
+ "M=(I*h*c)/(P_in*eta*e*lamda)#\n",
+ "print \"The multiplication factor,M = %0.1f\"%M"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.5 : Page 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Photon incident rate = 1.74e+07 s**-1\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Photon rate\n",
+ "#given data :\n",
+ "e=1.6*10**-19## in J\n",
+ "M=800#\n",
+ "eta=90/100## quantum efficiency\n",
+ "I=2*10**-9## in A\n",
+ "P_rate=I/(e*eta*M)#\n",
+ "print \"Photon incident rate = %0.2e s**-1\"%P_rate"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.6 : Page 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "the gain = 58.95\n",
+ "part (b)\n",
+ "The output photo-current, I = 2.313e-04 A\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "#Gain and The output photocurrent\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "tf=6*10**-12## in s\n",
+ "del_f=450*10**6## in Hz\n",
+ "G=1/(2*pi*tf*del_f)#\n",
+ "print \"the gain = %0.2f\"%G\n",
+ "print \"part (b)\"\n",
+ "tf=6*10**-12## in s\n",
+ "del_f=450*10**6## in Hz\n",
+ "G=1/(2*pi*tf*del_f)#\n",
+ "eta=75/100#\n",
+ "P_in=5*10**-6## in W\n",
+ "e=1.6*10**-19## in J\n",
+ "lamda=1.3*10**-6#\n",
+ "h=6.626*10**-34##in Js\n",
+ "c=3*10**8## in m s**-1\n",
+ "I=(G*eta*P_in*e*lamda)/(h*c)#\n",
+ "print \"The output photo-current, I = %0.3e A\"%I"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.7 : Page 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "rms value of shot noise current is = 1.712 nA\n",
+ "rms value of dark current is = 0.20 nA\n",
+ "rms value of thermal noise current is = 20.35 nA \n",
+ "part (b)\n",
+ "S/N ratio = 321\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt\n",
+ "#rms value of shot noise ,dark noise and thermal noise current and S/N ratio\n",
+ "print \"part (a)\"\n",
+ "n=0.7##efficiency\n",
+ "e=1.6*10**-19##charge\n",
+ "h=1.3##in micro meter\n",
+ "hc=6.626*10**-34##plack constant\n",
+ "c=3*10**8##m/s\n",
+ "pin=500##nW\n",
+ "Ip=((n*e*h*10**-6*pin*10**-9)/(hc*c))##in amperes\n",
+ "df=25##Mhz\n",
+ "f1=1##\n",
+ "is2=(2*e*Ip*df*10**6*f1)##\n",
+ "Is=sqrt(is2)##in amperes\n",
+ "Id=5*10**-9##amperes\n",
+ "id2=(2*e*Id*df*10**6)##\n",
+ "Id=sqrt(id2)##in amperes\n",
+ "k=1.38*10**-23##\n",
+ "t=300##in kelvin\n",
+ "rl=1000##ohms\n",
+ "it2=((4*k*t*df*10**6)/rl)##\n",
+ "it=sqrt(it2)##in amperes\n",
+ "print \"rms value of shot noise current is = %0.3f nA\"%(Is*10**9)\n",
+ "print \"rms value of dark current is = %0.2f nA\"%(Id*10**9)\n",
+ "print \"rms value of thermal noise current is = %0.2f nA \"%(it*10**9)\n",
+ "print \"part (b)\"\n",
+ "n=0.7##efficiency\n",
+ "e=1.6*10**-19##charge\n",
+ "h=1.3##in micro meter\n",
+ "hc=6.626*10**-34##plack constant\n",
+ "c=3*10**8##m/s\n",
+ "pin=500##nW\n",
+ "Ip=((n*e*h*10**-6*pin*10**-9)/(hc*c))##in amperes\n",
+ "df=25##Mhz\n",
+ "f1=1##\n",
+ "is2=(2*e*Ip*df*10**6*f1)##\n",
+ "Is=sqrt(is2)##in amperes\n",
+ "Id=5*10**-9##amperes\n",
+ "id2=(2*e*Id*df*10**6)##\n",
+ "Id=sqrt(id2)##in amperes\n",
+ "k=1.38*10**-23##\n",
+ "t=300##in kelvin\n",
+ "rl=1000##ohms\n",
+ "it2=((4*k*t*df*10**6)/rl)##\n",
+ "it=sqrt(it2)##in amperes\n",
+ "itt2=is2+id2+it2##in A**2\n",
+ "ip2=Ip**2##\n",
+ "sn=ip2/itt2##\n",
+ "print \"S/N ratio = %d\"%sn\n",
+ "#S/N ratio is calculated wrong in the textbook"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter8_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter8_3.ipynb
new file mode 100644
index 00000000..d3376f8c
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter8_3.ipynb
@@ -0,0 +1,381 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter8 - Optoelectronic detectors"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.1 : Page 204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "The photon energy = 1.31 micro-m \n",
+ "part (b)\n",
+ "The optical power = 4.07 micro W \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#The photon energy and optical power\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "h=6.626*10**-34## in Js\n",
+ "c=3*10**8## in ms**-1\n",
+ "E=1.52*10**-19## in J\n",
+ "lamda=((h*c)/E)*10**6#\n",
+ "print \"The photon energy = %0.2f micro-m \"%lamda\n",
+ "print \"part (b)\"\n",
+ "e=1.6*10**-19## in J\n",
+ "Ip=3*10**6## in A\n",
+ "E=1.52*10**-19## in J\n",
+ "eta=70/100#\n",
+ "R=(eta*e)/E#\n",
+ "P_in=(Ip/R)*10**-6#\n",
+ "print \"The optical power = %0.2f micro W \"%P_in"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.2 : Page 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "The quantum efficiency, eta = 50.00 %\n",
+ "part (b)\n",
+ "Maximum possible band gap energy,Eg = 1.46 eV \n",
+ "part (c)\n",
+ "The mean output, Ip = 3.42 micro A\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#The quantum efficiency,Maximum possible band gap energy and mean output\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "e=1## electron\n",
+ "p=2## photon\n",
+ "eta=(e/p)*100#\n",
+ "print \"The quantum efficiency, eta = %0.2f %%\"%eta\n",
+ "print \"part (b)\"\n",
+ "h=6.626*10**-34##in Js\n",
+ "c=3*10**8## in m s**-1\n",
+ "lamda_c=0.85*10**-6## in m\n",
+ "Eg=((h*c)/lamda_c)/1.6*10**19#\n",
+ "print \"Maximum possible band gap energy,Eg = %0.2f eV \"%Eg\n",
+ "print \"part (c)\"\n",
+ "e=1## electron\n",
+ "p=2## photon\n",
+ "eta=(e/p)#\n",
+ "e=1.6*10**-19## in J\n",
+ "h=6.626*10**-34##in Js\n",
+ "c=3*10**8## in m s**-1\n",
+ "lamda_c=0.85*10**-6## in m\n",
+ "Eg=((h*c)/lamda_c)#\n",
+ "P_in=10*10**-6## in W\n",
+ "Ip=((eta*e*P_in)/Eg)*10**6#\n",
+ "print \"The mean output, Ip = %0.2f micro A\"%Ip"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.3 : Page 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "The quantum efficiency = 0.4\n",
+ "part (b)\n",
+ "The responsivity of the diode,R = 0.29 AW**-1\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#The quantum efficiency and The responsivity of the diode\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "e=2*10**10## in s**-1\n",
+ "p=5*10**10## in s**-1\n",
+ "eta=e/p#\n",
+ "print \"The quantum efficiency = \",eta\n",
+ "print \"part (b)\"\n",
+ "e=2*10**10## in s**-1\n",
+ "p=5*10**10## in s**-1\n",
+ "eta=e/p#\n",
+ "e=1.6*10**-19## in J\n",
+ "h=6.626*10**-34##in Js\n",
+ "c=3*10**8## in m s**-1\n",
+ "lamda=0.90*10**-6## in m\n",
+ "R=(eta*e*lamda)/(h*c)#\n",
+ "print \"The responsivity of the diode,R = %0.2f AW**-1\"%R"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.4 : Page 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The multiplication factor,M = 47.8\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#The multiplication\n",
+ "#given data :\n",
+ "eta=40/100##\n",
+ "e=1.6*10**-19## in J\n",
+ "h=6.626*10**-34##in Js\n",
+ "c=3*10**8## in m s**-1\n",
+ "lamda=1.3*10**-6## in m\n",
+ "P_in=0.3*10**-6## in W\n",
+ "I=6*10**-6## in A\n",
+ "M=(I*h*c)/(P_in*eta*e*lamda)#\n",
+ "print \"The multiplication factor,M = %0.1f\"%M"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.5 : Page 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Photon incident rate = 1.74e+07 s**-1\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Photon rate\n",
+ "#given data :\n",
+ "e=1.6*10**-19## in J\n",
+ "M=800#\n",
+ "eta=90/100## quantum efficiency\n",
+ "I=2*10**-9## in A\n",
+ "P_rate=I/(e*eta*M)#\n",
+ "print \"Photon incident rate = %0.2e s**-1\"%P_rate"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.6 : Page 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "the gain = 58.95\n",
+ "part (b)\n",
+ "The output photo-current, I = 2.313e-04 A\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "#Gain and The output photocurrent\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "tf=6*10**-12## in s\n",
+ "del_f=450*10**6## in Hz\n",
+ "G=1/(2*pi*tf*del_f)#\n",
+ "print \"the gain = %0.2f\"%G\n",
+ "print \"part (b)\"\n",
+ "tf=6*10**-12## in s\n",
+ "del_f=450*10**6## in Hz\n",
+ "G=1/(2*pi*tf*del_f)#\n",
+ "eta=75/100#\n",
+ "P_in=5*10**-6## in W\n",
+ "e=1.6*10**-19## in J\n",
+ "lamda=1.3*10**-6#\n",
+ "h=6.626*10**-34##in Js\n",
+ "c=3*10**8## in m s**-1\n",
+ "I=(G*eta*P_in*e*lamda)/(h*c)#\n",
+ "print \"The output photo-current, I = %0.3e A\"%I"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.7 : Page 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "rms value of shot noise current is = 1.712 nA\n",
+ "rms value of dark current is = 0.20 nA\n",
+ "rms value of thermal noise current is = 20.35 nA \n",
+ "part (b)\n",
+ "S/N ratio = 321\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt\n",
+ "#rms value of shot noise ,dark noise and thermal noise current and S/N ratio\n",
+ "print \"part (a)\"\n",
+ "n=0.7##efficiency\n",
+ "e=1.6*10**-19##charge\n",
+ "h=1.3##in micro meter\n",
+ "hc=6.626*10**-34##plack constant\n",
+ "c=3*10**8##m/s\n",
+ "pin=500##nW\n",
+ "Ip=((n*e*h*10**-6*pin*10**-9)/(hc*c))##in amperes\n",
+ "df=25##Mhz\n",
+ "f1=1##\n",
+ "is2=(2*e*Ip*df*10**6*f1)##\n",
+ "Is=sqrt(is2)##in amperes\n",
+ "Id=5*10**-9##amperes\n",
+ "id2=(2*e*Id*df*10**6)##\n",
+ "Id=sqrt(id2)##in amperes\n",
+ "k=1.38*10**-23##\n",
+ "t=300##in kelvin\n",
+ "rl=1000##ohms\n",
+ "it2=((4*k*t*df*10**6)/rl)##\n",
+ "it=sqrt(it2)##in amperes\n",
+ "print \"rms value of shot noise current is = %0.3f nA\"%(Is*10**9)\n",
+ "print \"rms value of dark current is = %0.2f nA\"%(Id*10**9)\n",
+ "print \"rms value of thermal noise current is = %0.2f nA \"%(it*10**9)\n",
+ "print \"part (b)\"\n",
+ "n=0.7##efficiency\n",
+ "e=1.6*10**-19##charge\n",
+ "h=1.3##in micro meter\n",
+ "hc=6.626*10**-34##plack constant\n",
+ "c=3*10**8##m/s\n",
+ "pin=500##nW\n",
+ "Ip=((n*e*h*10**-6*pin*10**-9)/(hc*c))##in amperes\n",
+ "df=25##Mhz\n",
+ "f1=1##\n",
+ "is2=(2*e*Ip*df*10**6*f1)##\n",
+ "Is=sqrt(is2)##in amperes\n",
+ "Id=5*10**-9##amperes\n",
+ "id2=(2*e*Id*df*10**6)##\n",
+ "Id=sqrt(id2)##in amperes\n",
+ "k=1.38*10**-23##\n",
+ "t=300##in kelvin\n",
+ "rl=1000##ohms\n",
+ "it2=((4*k*t*df*10**6)/rl)##\n",
+ "it=sqrt(it2)##in amperes\n",
+ "itt2=is2+id2+it2##in A**2\n",
+ "ip2=Ip**2##\n",
+ "sn=ip2/itt2##\n",
+ "print \"S/N ratio = %d\"%sn\n",
+ "#S/N ratio is calculated wrong in the textbook"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter9_2.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter9_2.ipynb
new file mode 100644
index 00000000..de261050
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter9_2.ipynb
@@ -0,0 +1,243 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter9 - Optoelectronics modulators"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.1 : Page 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The thickness of the a quarter wave plate,x = 0.0164 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#The thickness\n",
+ "#given data :\n",
+ "lamda=589.3*10**-9## in m\n",
+ "ne=1.553#J\n",
+ "no=1.544#\n",
+ "x=(lamda/(4*(ne-no)))*10**3#\n",
+ "print \"The thickness of the a quarter wave plate,x = %0.4f mm\"%x"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.2 : Page 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The thickness of the a quarter wave plate,x = 0.0017 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#The thickness\n",
+ "#given data :\n",
+ "lamda=589.3*10**-9## in m\n",
+ "ne=1.486#\n",
+ "no=1.658#\n",
+ "x=(lamda/(2*(no-ne)))*10**3#\n",
+ "print \"The thickness of the a quarter wave plate,x = %0.4f mm\"%x"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.3: Page 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "change in refrative index = 1.032\n",
+ "net phase shift = 2.065 \n",
+ "Vpi = 7.61 kV\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "#change in refractive index ,net phase shiftand Vpi\n",
+ "v=5##kV\n",
+ "l=1##cm\n",
+ "ez=(v*10**3)/(l*10**-2)##in V/m\n",
+ "no=1.51##\n",
+ "r63=10.5*10**-12##m/V\n",
+ "dn=((1/2)*no**3*r63*ez)##\n",
+ "h=550##nm\n",
+ "dfi=((2*pi*dn*l*10**-2)/(h*10**-9))##\n",
+ "fi=2*dfi##\n",
+ "vpi=((h*10**-9)/(2*no**3*r63))*10**-3##kV\n",
+ "print \"change in refrative index = %0.3f\"%dfi\n",
+ "print \"net phase shift = %0.3f \"%fi\n",
+ "print \"Vpi = %0.2f kV\"%vpi\n",
+ "#refractive index and phase shift is in the form of pi in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.4: Page 237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "phase differnce = 1.371e+04\n",
+ "part (b)\n",
+ "additional phase differnce = 1.246\n",
+ "part (c)\n",
+ "Vpi = 504.25 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "#phase difference,additional phase difference and Vpi\n",
+ "print \"part (a)\"\n",
+ "h=550##nm\n",
+ "l=3##cm\n",
+ "no=1.51##\n",
+ "ne=1.47##\n",
+ "dfi=((2*pi*l*10**-2*(no-ne))/(h*10**-9))##\n",
+ "print \"phase differnce = %0.3e\"%dfi\n",
+ "#phase difference is in the form of pi in the textbook\n",
+ "print \"part (b)\"\n",
+ "no=1.51##\n",
+ "r63=26.4*10**-12##m/V\n",
+ "V=200##\n",
+ "d=0.25##cm\n",
+ "dfi=((pi*r63*no**3*(V)*(l*10**-2))/(h*10**-9*d*10**-2))##\n",
+ "print \"additional phase differnce = %0.3f\"%dfi\n",
+ "#additional phase difference is in the form of pi in the textbook\n",
+ "print \"part (c)\"\n",
+ "r63=26.4*10**-12##m/V\n",
+ "V=200##\n",
+ "d=0.25##cm\n",
+ "dfi=((pi*r63*no**3*(V)*(l*10**-2))/(h*10**-9*d*10**-2))##\n",
+ "vpi=((h*10**-9)/(no**3*r63))*(d/l)##V\n",
+ "print \"Vpi = %0.2f V\"%vpi"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.5 : Page 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "angle = 0.09 degree\n",
+ "part (b)\n",
+ "The relative intensity = 0.246\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import asin,degrees\n",
+ "#angle and relative intensity\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "m=1#\n",
+ "l=633*10**-9## in m\n",
+ "f=5*10**6## in Hz\n",
+ "v=1500##in m/s\n",
+ "n=1.33## for water\n",
+ "A=v/f#\n",
+ "theta=asin((l/(n*A)))#\n",
+ "print \"angle = %0.2f degree\"%degrees(theta)\n",
+ "print \"part (b)\"\n",
+ "del_n=10**-5#\n",
+ "L=1*10**-2## in m\n",
+ "lamda=633*10**-9## in m\n",
+ "eta=(pi**2*del_n**2*L**2)/lamda**2#\n",
+ "print \"The relative intensity = %0.3f\"%eta"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter9_3.ipynb b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter9_3.ipynb
new file mode 100644
index 00000000..de261050
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/Chapter9_3.ipynb
@@ -0,0 +1,243 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter9 - Optoelectronics modulators"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.1 : Page 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The thickness of the a quarter wave plate,x = 0.0164 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#The thickness\n",
+ "#given data :\n",
+ "lamda=589.3*10**-9## in m\n",
+ "ne=1.553#J\n",
+ "no=1.544#\n",
+ "x=(lamda/(4*(ne-no)))*10**3#\n",
+ "print \"The thickness of the a quarter wave plate,x = %0.4f mm\"%x"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.2 : Page 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The thickness of the a quarter wave plate,x = 0.0017 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#The thickness\n",
+ "#given data :\n",
+ "lamda=589.3*10**-9## in m\n",
+ "ne=1.486#\n",
+ "no=1.658#\n",
+ "x=(lamda/(2*(no-ne)))*10**3#\n",
+ "print \"The thickness of the a quarter wave plate,x = %0.4f mm\"%x"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.3: Page 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "change in refrative index = 1.032\n",
+ "net phase shift = 2.065 \n",
+ "Vpi = 7.61 kV\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "#change in refractive index ,net phase shiftand Vpi\n",
+ "v=5##kV\n",
+ "l=1##cm\n",
+ "ez=(v*10**3)/(l*10**-2)##in V/m\n",
+ "no=1.51##\n",
+ "r63=10.5*10**-12##m/V\n",
+ "dn=((1/2)*no**3*r63*ez)##\n",
+ "h=550##nm\n",
+ "dfi=((2*pi*dn*l*10**-2)/(h*10**-9))##\n",
+ "fi=2*dfi##\n",
+ "vpi=((h*10**-9)/(2*no**3*r63))*10**-3##kV\n",
+ "print \"change in refrative index = %0.3f\"%dfi\n",
+ "print \"net phase shift = %0.3f \"%fi\n",
+ "print \"Vpi = %0.2f kV\"%vpi\n",
+ "#refractive index and phase shift is in the form of pi in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.4: Page 237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "phase differnce = 1.371e+04\n",
+ "part (b)\n",
+ "additional phase differnce = 1.246\n",
+ "part (c)\n",
+ "Vpi = 504.25 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "#phase difference,additional phase difference and Vpi\n",
+ "print \"part (a)\"\n",
+ "h=550##nm\n",
+ "l=3##cm\n",
+ "no=1.51##\n",
+ "ne=1.47##\n",
+ "dfi=((2*pi*l*10**-2*(no-ne))/(h*10**-9))##\n",
+ "print \"phase differnce = %0.3e\"%dfi\n",
+ "#phase difference is in the form of pi in the textbook\n",
+ "print \"part (b)\"\n",
+ "no=1.51##\n",
+ "r63=26.4*10**-12##m/V\n",
+ "V=200##\n",
+ "d=0.25##cm\n",
+ "dfi=((pi*r63*no**3*(V)*(l*10**-2))/(h*10**-9*d*10**-2))##\n",
+ "print \"additional phase differnce = %0.3f\"%dfi\n",
+ "#additional phase difference is in the form of pi in the textbook\n",
+ "print \"part (c)\"\n",
+ "r63=26.4*10**-12##m/V\n",
+ "V=200##\n",
+ "d=0.25##cm\n",
+ "dfi=((pi*r63*no**3*(V)*(l*10**-2))/(h*10**-9*d*10**-2))##\n",
+ "vpi=((h*10**-9)/(no**3*r63))*(d/l)##V\n",
+ "print \"Vpi = %0.2f V\"%vpi"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.5 : Page 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "part (a)\n",
+ "angle = 0.09 degree\n",
+ "part (b)\n",
+ "The relative intensity = 0.246\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import asin,degrees\n",
+ "#angle and relative intensity\n",
+ "#given data :\n",
+ "print \"part (a)\"\n",
+ "m=1#\n",
+ "l=633*10**-9## in m\n",
+ "f=5*10**6## in Hz\n",
+ "v=1500##in m/s\n",
+ "n=1.33## for water\n",
+ "A=v/f#\n",
+ "theta=asin((l/(n*A)))#\n",
+ "print \"angle = %0.2f degree\"%degrees(theta)\n",
+ "print \"part (b)\"\n",
+ "del_n=10**-5#\n",
+ "L=1*10**-2## in m\n",
+ "lamda=633*10**-9## in m\n",
+ "eta=(pi**2*del_n**2*L**2)/lamda**2#\n",
+ "print \"The relative intensity = %0.3f\"%eta"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13AngularDisplacement_1.png b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13AngularDisplacement_1.png
new file mode 100644
index 00000000..42e4e5be
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13AngularDisplacement_1.png
Binary files differ
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13AngularDisplacement_2.png b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13AngularDisplacement_2.png
new file mode 100644
index 00000000..42e4e5be
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13AngularDisplacement_2.png
Binary files differ
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LateralDisplacement_1.png b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LateralDisplacement_1.png
new file mode 100644
index 00000000..a95c8de6
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LateralDisplacement_1.png
Binary files differ
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LateralDisplacement_2.png b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LateralDisplacement_2.png
new file mode 100644
index 00000000..a95c8de6
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LateralDisplacement_2.png
Binary files differ
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LongitudinalDisplacement_1.png b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LongitudinalDisplacement_1.png
new file mode 100644
index 00000000..cc78d8c9
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LongitudinalDisplacement_1.png
Binary files differ
diff --git a/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LongitudinalDisplacement_2.png b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LongitudinalDisplacement_2.png
new file mode 100644
index 00000000..cc78d8c9
--- /dev/null
+++ b/Fiber_Optics_and_Optoelectronics_by_R._P._Khare/screenshots/Ch13LongitudinalDisplacement_2.png
Binary files differ
diff --git a/Machine_Design_by_U.C._Jindal/Ch10_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch10_2.ipynb
new file mode 100644
index 00000000..1e74026b
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch10_2.ipynb
@@ -0,0 +1,264 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:10 Pipes and pipe joints"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 10-1 - Page 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " t is 12.5 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "sigta=140/2#\n",
+ "nt=0.75#\n",
+ "#Let the flow rate be Q\n",
+ "Q=0.25#\n",
+ "v=1.2#\n",
+ "D=1.13*sqrt(Q/v)#\n",
+ "D=520#\n",
+ "p=0.7#\n",
+ "C=9#\n",
+ "t=(p*D)/(2*sigta*nt)+C#\n",
+ "print \" t is %0.1f mm \"%(t)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 10-2 - Page 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Pr is 302.25 kN \n",
+ "\n",
+ " D1 is 250 mm \n",
+ "\n",
+ " D2 is 392.6 mm \n",
+ "\n",
+ " CD is 252.6 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi,sqrt\n",
+ "p=3*8#\n",
+ "sigta=60#\n",
+ "d=150#\n",
+ "t=d/2*sqrt(((sigta+p)/(sigta-p))-1)#\n",
+ "t=75*sqrt((84/36)-1)#\n",
+ "t=40#\n",
+ "do=d+(2*t)#\n",
+ "D=d+(2*t)+20#\n",
+ "w=10#\n",
+ "Ds=d+(2*w)#\n",
+ "P=pi*(Ds**2)*8/4#\n",
+ "sigp=310#\n",
+ "FOS=4#\n",
+ "sigb=77.5#\n",
+ "At=P/(sigb*2)#\n",
+ "At=1300#\n",
+ "D=250#\n",
+ "db=45#\n",
+ "b=D#\n",
+ "a=1.8*b#\n",
+ "CD=D+(2*db*1.2)#\n",
+ "sigp=310#\n",
+ "Pr=0.75*sigp*At#\n",
+ "Pr=Pr*10**-3#\n",
+ "t=40#\n",
+ "D1=d+(2*t)+20#\n",
+ "D2=D1+(4.6*31)#\n",
+ "CD=D2-((3*t)+20)#\n",
+ "print \" Pr is %0.2f kN \"%(Pr)#\n",
+ "print \"\\n D1 is %0.0f mm \"%(D1)#\n",
+ "print \"\\n D2 is %0.1f mm \"%(D2)#\n",
+ "print \"\\n CD is %0.1f mm \"%(CD)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 10-3 - Page 296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 50 mm \n",
+ "\n",
+ " t is 10 mm \n",
+ "\n",
+ " B is 127 mm \n",
+ "\n",
+ " R is 22.5 mm \n",
+ "\n",
+ " Y is 40.66 mm \n",
+ "\n",
+ " tf is 44 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt,pi\n",
+ "p=14#\n",
+ "d=50#\n",
+ "sigyp=270#\n",
+ "FOS=3#\n",
+ "sigta=sigyp/FOS#\n",
+ "pt=2*p#\n",
+ "t=d/2*sqrt(((sigta+pt)/(sigta-pt))-1)#\n",
+ "t=10#\n",
+ "D1=d+(2*t)#\n",
+ "Ds=D1+20#\n",
+ "P=pi*(Ds**2)*p/4#\n",
+ "sigba=380/4#\n",
+ "At=P/(4*sigba)#\n",
+ "At=245#\n",
+ "db=20#\n",
+ "Dd=70+(2*20)+5#\n",
+ "R=db+2.5#\n",
+ "B=(Dd/sqrt(2))+(2*(db+2.5))#\n",
+ "B=127#\n",
+ "Y=Dd/(2*sqrt(2))#\n",
+ "Rm=34.12#\n",
+ "M=(P*Y/2)+(P*Rm/pi)#\n",
+ "sigfa=250/5#\n",
+ "b=127/70#\n",
+ "Z=b/6#\n",
+ "tf=sqrt(M/(sigfa*Z))#\n",
+ "tf=44#\n",
+ "print \" d is %0.0f mm \"%(d)#\n",
+ "print \"\\n t is %0.0f mm \"%(t)#\n",
+ "print \"\\n B is %0.0f mm \"%(B)#\n",
+ "print \"\\n R is %0.1f mm \"%(R)#\n",
+ "print \"\\n Y is %0.2f mm \"%(Y)#\n",
+ "print \"\\n tf is %0.0f mm \"%(tf)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 10-4 - Page 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " D is 200 mm \n",
+ "\n",
+ " t is 18 mm \n",
+ "\n",
+ " Y is 18.5 mm \n",
+ "\n",
+ " tf is 22 mm \n",
+ "\n",
+ " Deff is 267 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import tan,sqrt,pi\n",
+ "p=1.25#\n",
+ "D=200#\n",
+ "nt=0.75#\n",
+ "C=9#\n",
+ "sigta=20#\n",
+ "t=(p*D)/(2*sigta*nt)+C#\n",
+ "t=18#\n",
+ "D1=D+(2*t)#\n",
+ "dr=D1+10#\n",
+ "sigp=310#\n",
+ "sigba=sigp/4#\n",
+ "db=16#\n",
+ "Db=dr+32+5#\n",
+ "Do=Db+(2*db)#\n",
+ "P=pi*(251+db)**2*1.25/4#\n",
+ "n=6#\n",
+ "Y=(Db-dr)/2#\n",
+ "M=P/n*Y#\n",
+ "Z=dr*tan(30*pi/180)/6#\n",
+ "tf=sqrt(M/(sigta*Z))#\n",
+ "tf=22#\n",
+ "Deff=dr+db+5#\n",
+ "print \" D is %0.0f mm \"%(D)#\n",
+ "print \"\\n t is %0.0f mm \"%(t)#\n",
+ "print \"\\n Y is %0.1f mm \"%(Y)#\n",
+ "print \"\\n tf is %0.0f mm \"%(tf)#\n",
+ "print \"\\n Deff is %0.0f mm \"%(Deff)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch11_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch11_2.ipynb
new file mode 100644
index 00000000..81cd13ac
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch11_2.ipynb
@@ -0,0 +1,440 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:11 Riveted joints"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 11-1 - Page 322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " P is 60000 N \n",
+ "\n",
+ " Ts is 122.23 MPa \n",
+ "\n",
+ " sigb is 120 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "t=20#\n",
+ "p=100#\n",
+ "d=25#\n",
+ "sigt=40#\n",
+ "P=(p-d)*t*sigt#\n",
+ "Ts=(4*P)/(pi*d**2)#\n",
+ "sigb=P/(d*t)#\n",
+ "print \" P is %0.0f N \"%(P)#\n",
+ "print \"\\n Ts is %0.2f MPa \"%(Ts)#\n",
+ "print \"\\n sigb is %0.0f MPa \"%(sigb)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 11-2 - Page 322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " P is 115.5 kN \n",
+ "\n",
+ " Ts is 81.7 MPa \n",
+ "\n",
+ " sigb is 175 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "t=22#\n",
+ "t1=5*t/8#\n",
+ "d=30#\n",
+ "p=100#\n",
+ "sigt=75#\n",
+ "P=(p-d)*t*sigt#\n",
+ "Ts=(2*P)/(pi*d**2)#\n",
+ "sigb=P/(d*t)#\n",
+ "P=P*10**-3\n",
+ "print \" P is %0.1f kN \"%(P)#\n",
+ "print \"\\n Ts is %0.1f MPa \"%(Ts)#\n",
+ "print \"\\n sigb is %0.0f N/mm**2 \"%(sigb)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 11-3 - Page 323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " p is 100 mm \n",
+ "\n",
+ " n is 0.00 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "t=15#\n",
+ "t1=5*t/8#\n",
+ "d=25#\n",
+ "n=2#\n",
+ "Ta=80#\n",
+ "sigta=100#\n",
+ "sigba=120#\n",
+ "Ps=n*1.875*pi*d**2*Ta/4#\n",
+ "Pb=n*d*t*sigba#\n",
+ "p=Pb/(t*Ta)+d#\n",
+ "Pp=p*t*Ta#\n",
+ "n=Pb/Pp#\n",
+ "print \" p is %0.0f mm \"%(p)#\n",
+ "print \"\\n n is %0.2f \"%(n)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 11-4 - Page 323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 24 mm \n",
+ "\n",
+ " n1 is 6 \n",
+ "\n",
+ " Pt is 225280 N \n",
+ "\n",
+ " Pt2 is 232960 N \n",
+ "\n",
+ " Pt3 is 279040 N \n",
+ "\n",
+ " n2 is 88 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "b=200#\n",
+ "t=16#\n",
+ "d=6*sqrt(t)#\n",
+ "sigta=80#\n",
+ "Ta=60#\n",
+ "sigba=100#\n",
+ "Pt=(b-d)*t*sigta#\n",
+ "Ps=1.875*pi*d**2*Ta/4#\n",
+ "Pb=d*t*sigba#\n",
+ "n1=Pt/Pb#\n",
+ "n1=6#\n",
+ "Pt2=((b-(2*d))*t*sigta)+Pb#\n",
+ "Pt3=((b-(3*d))*t*sigta)+(3*Pb)#\n",
+ "Pp=b*t*sigta#\n",
+ "n2=Pt/Pp#\n",
+ "n2=n2*100#\n",
+ "print \" d is %0.0f mm \"%(d)#\n",
+ "print \"\\n n1 is %0.0f \"%(n1)#\n",
+ "print \"\\n Pt is %0.0f N \"%(Pt)#\n",
+ "print \"\\n Pt2 is %0.0f N \"%(Pt2)#\n",
+ "print \"\\n Pt3 is %0.0f N \"%(Pt3)#\n",
+ "print \"\\n n2 is %0.0f \"%(n2)#\n",
+ "#Answer to strength of rivet in bearing 'Pb' is calculated incorrectly in the book, hence Pt2,Pt3 is calculated subsequently incorrect."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 11-5 - Page 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " e is 371.7 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import atan\n",
+ "a=50#\n",
+ "b=75#\n",
+ "P=36*10**3#\n",
+ "d=24#\n",
+ "Ta=60#\n",
+ "n=9#\n",
+ "A=pi*d**2/4#\n",
+ "Td=P/(n*A)#\n",
+ "theta=atan(b/a)#\n",
+ "Ts=54.64#\n",
+ "r2=90.184#\n",
+ "e=A*29575.7/P#\n",
+ "print \" e is %0.1f mm \"%(e)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 11-6 - Page 325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 12 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "P=12*10**3#\n",
+ "Tmax=100#\n",
+ "n=6#\n",
+ "e=50+50+(5/2)#\n",
+ "T=P*e#\n",
+ "Td=P/n#\n",
+ "ra=125#\n",
+ "k=T/((2*125**2)+(2*75**2)+(2*25**2))#\n",
+ "Tr=(k*ra)+Td#\n",
+ "A=Tr/Tmax#\n",
+ "d=sqrt(A*4/pi)#\n",
+ "d=12#\n",
+ "print \" d is %0.0f mm \"%(d)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 11-7 - Page 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " n is 80 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt,pi\n",
+ "t=15#\n",
+ "d=6*sqrt(t)#\n",
+ "d=24#\n",
+ "sigta=75#\n",
+ "sigba=105#\n",
+ "Ta=60#\n",
+ "n=4#\n",
+ "Pt=n*pi*d**2*Ta/4#\n",
+ "x=d*t*sigta#\n",
+ "y=2*t*sigta#\n",
+ "p=(Pt+x)/y#\n",
+ "p=60#\n",
+ "C=4.17#\n",
+ "pmax=(C*t)+41.28#\n",
+ "Pt1=(y*p)-x#\n",
+ "Ps=n*pi*d**2*Ta/4#\n",
+ "Pb=n*d*t*sigba#\n",
+ "S=2*p*t*sigta#\n",
+ "n=Pt1/S#\n",
+ "n=n*100#\n",
+ "print \" n is %0.f \"%(n)# "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 11-8 - Page 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " n is 95 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "D=1500#\n",
+ "p=2#\n",
+ "nt=0.75#\n",
+ "sigut=420#\n",
+ "FOS=5#\n",
+ "sigta=sigut/FOS#\n",
+ "t=p*D/(2*sigta*nt)#\n",
+ "t=24#\n",
+ "d=6*sqrt(t)#\n",
+ "d=30#\n",
+ "Ta=330/5#\n",
+ "sigba=640/5#\n",
+ "Ps=2*1.875*pi*(d**2)*Ta/4#\n",
+ "p=(Ps/(t*sigta))+d#\n",
+ "p=117#\n",
+ "t1=5*t/8#\n",
+ "Pt=(p-d)*t*sigta#\n",
+ "Pp=p*t*sigta#\n",
+ "Pb=2*d*t*sigba#\n",
+ "n=Ps/Pb#\n",
+ "n=n*100#\n",
+ "print \" n is %0.0f \"%(n)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 11-9 - Page 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " n is 39 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "D=1200#\n",
+ "p=2.5#\n",
+ "sigba=110#\n",
+ "Pa=pi*D**2*p/4#\n",
+ "nt=0.8#\n",
+ "sigta=80#\n",
+ "t=p*D/(2*sigta*nt)#\n",
+ "t=24#\n",
+ "d=6*sqrt(t)#\n",
+ "d=30#\n",
+ "Ta=55#\n",
+ "Ps=pi*(d**2)*Ta/4#\n",
+ "Np=Pa/Ps#\n",
+ "Np=74#\n",
+ "nr=Np/2#\n",
+ "p=pi*(D+t)/nr#\n",
+ "pb=2*d#\n",
+ "m=1.5*d#\n",
+ "Pt=(p-d)*t*sigta#\n",
+ "Ps=2*Ps#\n",
+ "Pb=2*d*t*sigba#\n",
+ "Pp=p*t*sigta#\n",
+ "n=Ps/Pp#\n",
+ "n=n*100#\n",
+ "print \" n is %0.0f \"%(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.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch12_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch12_2.ipynb
new file mode 100644
index 00000000..01177ff1
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch12_2.ipynb
@@ -0,0 +1,444 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:12 Welded joints"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 12-1 - Page 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "T is 73.7 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "h=8#\n",
+ "F=100*10**3#\n",
+ "t=0.707*h#\n",
+ "A=4*60*t#\n",
+ "T=F/A#\n",
+ "print \"T is %0.1f MPa \"%(T)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 12-2 - Page 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "l is 639 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "FOS=3#\n",
+ "Ta=95/FOS#\n",
+ "P=350*10**3#\n",
+ "h=12.5#\n",
+ "t=0.707*h#\n",
+ "l=P/(2*t*Ta)#\n",
+ "print \"l is %0.0f mm \"%(l)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 12-3 - Page 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P is 81.446 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "h=12#\n",
+ "t=0.707*h#\n",
+ "l=60#\n",
+ "Ta=80#\n",
+ "P=2*l*t*Ta#\n",
+ "P=P*10**-3#\n",
+ "print \"P is %0.3f kN \"%(P)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 12-4 - Page 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "h is 3 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sin, pi, cos, sqrt\n",
+ "P=6*10**3#\n",
+ "e=150+(100/2)#\n",
+ "T=P*e#\n",
+ "A=200#\n",
+ "Td=P/A#\n",
+ "r=sqrt(2*50**2)#\n",
+ "Ixx=2*(100*50**2)#\n",
+ "Iyy=2*100**3/12#\n",
+ "IG=Ixx+Iyy#\n",
+ "Ts=r*T/IG#\n",
+ "Tmax=sqrt((Ts*sin(45*pi/180))**2+(Td+(Ts*cos(45*pi/180)))**2)#\n",
+ "Ta=80#\n",
+ "t=Tmax/Ta#\n",
+ "h=sqrt(2)*t#\n",
+ "h=3#\n",
+ "print \"h is %0.0f mm \"%(h)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 12-5 - Page 349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P is 4.972 KN \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "h=10#\n",
+ "t=10/sqrt(2)#\n",
+ "Ta=80#\n",
+ "x=((50*25)+(50*0))/(50+50)#\n",
+ "y=x#\n",
+ "ra=sqrt(x**2+37.5**2)#\n",
+ "Ixx=(7.07*50**3/12)+(50*7.07*(12.5**2))+(50*7.07*12.5**2)#\n",
+ "IG=2*Ixx#\n",
+ "e=100+(50-12.5)#\n",
+ "Tr=16.09*10**-3#\n",
+ "P=Ta/Tr#\n",
+ "P=P*10**-3#\n",
+ "print \"P is %0.3f KN \"%(P)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 12-6 - Page 350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "h is 5 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "P=16*10**3#\n",
+ "l=300#\n",
+ "r=50#\n",
+ "M=P*l#\n",
+ "A=2*pi*r#\n",
+ "Ixx=pi*r**3#\n",
+ "sigb=M*r/Ixx#\n",
+ "Td=P/A#\n",
+ "Tmax=sqrt((sigb/2)**2+(Td**2))#\n",
+ "Ta=90#\n",
+ "t=Tmax/Ta#\n",
+ "h=sqrt(2)*t#\n",
+ "h=5#\n",
+ "print \"h is %0.0f mm \"%(h)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 12-7 - Page 350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "l is 202 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "sigut=415#\n",
+ "sige=sigut/3#\n",
+ "Ka=0.5#\n",
+ "Kb=0.85#\n",
+ "Kc=0.897#\n",
+ "SCF=1.5#\n",
+ "Kd=1/SCF#\n",
+ "FOS=2#\n",
+ "sige1=sige*Ka*Kb*Kc*Kd/FOS#\n",
+ "Pa=50*10**3#\n",
+ "h=10#\n",
+ "t=0.707*h#\n",
+ "l=Pa/(2*sige1*t)#\n",
+ "print \"l is %0.0f mm \"%(l)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 12-8 - Page 351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "h is 3 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "l=300#\n",
+ "P=30*10**3#\n",
+ "T=P/(2*l)#\n",
+ "Ta=124#\n",
+ "t1=T/Ta#\n",
+ "h1=sqrt(2)*t1#\n",
+ "M=P*l#\n",
+ "Ixx=2*100*110**2#\n",
+ "sigb=M/Ixx*110#\n",
+ "#Let the allowable bending stress is Tab\n",
+ "Tab=200#\n",
+ "t2=sigb/Tab#\n",
+ "h2=t2/0.707#\n",
+ "h2=3#\n",
+ "print \"h is %0.0f mm \"%(h2)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 12-9 - Page 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " h is 20 mm \n",
+ "\n",
+ " a is 40 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "Ta=60#\n",
+ "l1=60#\n",
+ "l2=40#\n",
+ "P1=Ta*0.707*l1#\n",
+ "P2=Ta*0.707*l2#\n",
+ "P=80*10**3#\n",
+ "h=P/(P1+P2)#\n",
+ "h=20#\n",
+ "a=(P2*100)/(P1+P2)#\n",
+ "print \" h is %0.0f mm \"%(h)#\n",
+ "print \"\\n a is %0.0f mm \"%(a)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 12-10 - Page 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "h is 9 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "P=300*10**3#\n",
+ "l=500#\n",
+ "A=2*l#\n",
+ "Td=P/A#\n",
+ "T=(350-250)*P#\n",
+ "IG=(l**3*2/12)+(l*2*5**2)#\n",
+ "r=sqrt(250**2+5**2)#\n",
+ "Ts=T*r/IG#\n",
+ "Ts=Ts+Td#\n",
+ "Ta=110#\n",
+ "t=Ts/Ta#\n",
+ "h=t/0.707#\n",
+ "h=9#\n",
+ "print \"h is %0.0f mm \"%(h)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 12-11 - Page 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "l is 45.4 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "t=30#\n",
+ "sigut=417#\n",
+ "sige=sigut/2#\n",
+ "Ka=0.5#\n",
+ "Kb=0.85#\n",
+ "Kc=0.897#\n",
+ "SCF=1.2#\n",
+ "Kd=1/SCF#\n",
+ "FOS=1.5#\n",
+ "sige1=sige*Ka*Kb*Kc*Kd/FOS#\n",
+ "Pa=60*10**3#\n",
+ "l=Pa/(sige1*t)#\n",
+ "print \"l is %0.1f mm \"%(l)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch13_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch13_2.ipynb
new file mode 100644
index 00000000..020a19d3
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch13_2.ipynb
@@ -0,0 +1,291 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:13 Cotter and knuckle joints"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 13-1 - Page 371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 26 mm \n",
+ "\n",
+ " d1 is 32 mm \n",
+ "\n",
+ " d2 is 44 mm \n",
+ "\n",
+ " d3 is 64 mm \n",
+ "\n",
+ " d4 is 40 mm \n",
+ "\n",
+ " sigbc is 103.0 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "F=25*10**3#\n",
+ "sigat=50#\n",
+ "Ta=40#\n",
+ "pa=80#\n",
+ "d=sqrt((4*F)/(pi*sigat))#\n",
+ "d=26#\n",
+ "t=d/4#\n",
+ "t=7#\n",
+ "d1=1.2*d#\n",
+ "d1=32#\n",
+ "pc=F/(d1*t)#\n",
+ "t=10#\n",
+ "c=0.75*d#\n",
+ "c=20#\n",
+ "d2=44#\n",
+ "tw=(d2-d1)/2#\n",
+ "b=F/(2*t*Ta)#\n",
+ "b=34#\n",
+ "a=0.5*d#\n",
+ "d3=(F/(pa*t))+d1#\n",
+ "d3=64#\n",
+ "e=F/(Ta*(d3-d1))#\n",
+ "d4=sqrt((F*4/(pi*pa))+d1**2)#\n",
+ "d4=40#\n",
+ "f=0.5*d#\n",
+ "sigbc=3*F*d3/(t*b**2*4)#\n",
+ "print \" d is %0.0f mm \"%(d)#\n",
+ "print \"\\n d1 is %0.0f mm \"%(d1)#\n",
+ "print \"\\n d2 is %0.0f mm \"%(d2)#\n",
+ "print \"\\n d3 is %0.0f mm \"%(d3)#\n",
+ "print \"\\n d4 is %0.0f mm \"%(d4)#\n",
+ "print \"\\n sigbc is %0.1f MPa \"%(sigbc)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 13-2 - Page 372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 21 mm \n",
+ "\n",
+ " d1 is 28 mm \n",
+ "\n",
+ " t is 10 mm \n",
+ "\n",
+ " b is 31 mm \n",
+ "\n",
+ " d2 is 40 mm \n",
+ "\n",
+ " L is 138 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "P=40*10**3#\n",
+ "sigut=490#\n",
+ "FOS=4#\n",
+ "sigts=sigut/FOS#\n",
+ "sigcs=1.4*sigts#\n",
+ "sigs=0.8*sigts#\n",
+ "d=sqrt((4*P)/(pi*sigts))#\n",
+ "d=21#\n",
+ "sigcc=1.4*330/4#\n",
+ "Tc=0.8*330/4#\n",
+ "t=d/3#\n",
+ "b=P/(2*t*Tc)#\n",
+ "b=31#\n",
+ "t=10#\n",
+ "d1=28#\n",
+ "d2=40#\n",
+ "c=d/2#\n",
+ "c=15#\n",
+ "a=P/(2*(d2-d1)*98)#\n",
+ "a=20#\n",
+ "L=(2*a)+(2*b)+(2*c)+(2*3)#\n",
+ "print \" d is %0.0f mm \"%(d)#\n",
+ "print \"\\n d1 is %0.0f mm \"%(d1)#\n",
+ "print \"\\n t is %0.0f mm \"%(t)#\n",
+ "print \"\\n b is %0.0f mm \"%(b)#\n",
+ "print \"\\n d2 is %0.0f mm \"%(d2)#\n",
+ "print \"\\n L is %0.0f mm \"%(L)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 13-3 - Page 372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " a is 33 mm \n",
+ "\n",
+ " t is 11 mm \n",
+ "\n",
+ " t1 is 16 mm \n",
+ "\n",
+ " b is 20 mm \n",
+ "\n",
+ " b1 is 25 mm \n",
+ "\n",
+ " l1 is 14 mm \n",
+ "\n",
+ " l2 is 14 mm \n",
+ "\n",
+ " l3 is 20 mm \n",
+ "\n",
+ " l4 is 11 mm \n",
+ "\n",
+ " sigcr is 110.0 MPa \n",
+ "\n",
+ " sigcr1 is 113.0 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "P=40*10**3#\n",
+ "sigt=60#\n",
+ "sigc=125#\n",
+ "T=45#\n",
+ "a=sqrt(P*3/(2*sigt))#\n",
+ "a=33#\n",
+ "t=a/3#\n",
+ "b=P/(4.5*t*T)#\n",
+ "b=20#\n",
+ "b1=1.25*b#\n",
+ "t1=P*3/(4*a*sigt)#\n",
+ "t1=16#\n",
+ "l2=P/(2*2*T*t1)#\n",
+ "l2=14#\n",
+ "l1=P/(2*a*T)#\n",
+ "l1=14#\n",
+ "l3=(0.6*a)#\n",
+ "l3=20#\n",
+ "l4=11#\n",
+ "sigcr=P/(t*a)#\n",
+ "sigcr1=P/(2*t1*t)#\n",
+ "print \" a is %0.0f mm \"%(a)#\n",
+ "print \"\\n t is %0.0f mm \"%(t)#\n",
+ "print \"\\n t1 is %0.0f mm \"%(t1)#\n",
+ "print \"\\n b is %0.0f mm \"%(b)#\n",
+ "print \"\\n b1 is %0.0f mm \"%(b1)#\n",
+ "print \"\\n l1 is %0.0f mm \"%(l1)#\n",
+ "print \"\\n l2 is %0.0f mm \"%(l2)#\n",
+ "print \"\\n l3 is %0.0f mm \"%(l3)#\n",
+ "print \"\\n l4 is %0.0f mm \"%(l4)#\n",
+ "print \"\\n sigcr is %0.1f MPa \"%(sigcr)#\n",
+ "print \"\\n sigcr1 is %0.1f MPa \"%(sigcr1)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 13-4 - Page 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 30 mm \n",
+ "\n",
+ " sigt is 52.1 MPa \n",
+ "\n",
+ " b is 36 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "P=50*10**3#\n",
+ "sigp=380#\n",
+ "FOS=4#\n",
+ "sigca=80#\n",
+ "Ta=50#\n",
+ "sigta=sigp/FOS#\n",
+ "At=P/sigta#\n",
+ "d=30#\n",
+ "d1=1.5*d#\n",
+ "t=P/(sigca*d1)#\n",
+ "t=14#\n",
+ "A=(pi*(d1**2)/4)-(d1*t)#\n",
+ "#let tearing stress be sigt\n",
+ "sigt=P/A#\n",
+ "b=P/(2*t*Ta)#\n",
+ "b=36#\n",
+ "print \" d is %0.0f mm \"%(d)#\n",
+ "print \"\\n sigt is %0.1f MPa \"%(sigt)#\n",
+ "print \"\\n b is %0.0f mm \"%(b)#\n",
+ " \n",
+ "#The answer to tearing stress in bolt 'sigt' is calculated incorrectly in the book."
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch14_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch14_2.ipynb
new file mode 100644
index 00000000..955eef4c
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch14_2.ipynb
@@ -0,0 +1,420 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:14 Keys and couplings"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 14-1 - Page 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " FOS1 is 4.376 \n",
+ "\n",
+ " FOS2 is 4.85 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan, acos, cos\n",
+ "d=40#\n",
+ "r=d/2#\n",
+ "P=6*10**3#\n",
+ "N=350#\n",
+ "sigyt=380#\n",
+ "A=pi*12**2/2#\n",
+ "theta=pi-(2*atan(4/12))#\n",
+ "alpha=180-(theta*pi/180)#\n",
+ "l=2*12*cos(19.5*pi/180)#\n",
+ "A1=l*4/2#\n",
+ "Abcd=(A*141/180)-A1#\n",
+ "A2=A-Abcd#\n",
+ "A3=8*l#\n",
+ "w=2*pi*N/60#\n",
+ "T=P/w#\n",
+ "Pt=T*10**3/r#\n",
+ "sigb=Pt/A2#\n",
+ "#Let shear stress developed in key Tk\n",
+ "Tk=Pt/A3#\n",
+ "FOS1=sigyt/sigb#\n",
+ "FOS2=0.577*sigyt/Tk#\n",
+ "print \" FOS1 is %0.3f \"%(FOS1)#\n",
+ "print \"\\n FOS2 is %0.2f \"%(FOS2)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 14-2 - Page 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Ts is 3.39 N/mm**2 \n",
+ "\n",
+ " Th is 2.98 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "n=12#\n",
+ "phi=360*pi/(180*12*2)#\n",
+ "R1=45/2#\n",
+ "R2=50/2#\n",
+ "l=60#\n",
+ "Rm=(R1+R2)/2#\n",
+ "p=6.5#\n",
+ "Pn=(R2-R1)*l*p#\n",
+ "T=Pn*Rm#\n",
+ "T=T*n#\n",
+ "N=400#\n",
+ "w=2*pi*N/60#\n",
+ "P=T*w#\n",
+ "A=(pi*R1*l)/n#\n",
+ "Ts=Pn/A#\n",
+ "Ah=(pi*R2*l)/n#\n",
+ "Th=Pn/Ah#\n",
+ "print \" Ts is %0.2f N/mm**2 \"%(Ts)#\n",
+ "print \"\\n Th is %0.2f N/mm**2 \"%(Th)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 14-3 - Page 402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " l1 is 17 mm \n",
+ "\n",
+ " l2 is 19.85 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "N=360#\n",
+ "w=2*pi*N/60#\n",
+ "sigyt=380#\n",
+ "r=25#\n",
+ "P=40*10**3#\n",
+ "FOS=3#\n",
+ "T=P/w#\n",
+ "Pt=T*10**3/(2*r)#\n",
+ "siga=380/3#\n",
+ "Ta=0.577*380/3#\n",
+ "l1=Pt/(sqrt(2)*12*Ta)#\n",
+ "l2=Pt*sqrt(2)/(siga*12)#\n",
+ "print \" l1 is %0.0f mm \"%(l1)#\n",
+ "print \"\\n l2 is %0.2f mm \"%(l2)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 14-4 - Page 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 40 mm \n",
+ "\n",
+ " Tsh is 3.13 MPa \n",
+ "\n",
+ " b is 7 mm \n",
+ "\n",
+ " t is 7 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "N=300#\n",
+ "w=2*pi*N/60#\n",
+ "P=12*10**3#\n",
+ "Ks=1.25#\n",
+ "Pd=P*Ks#\n",
+ "T=Pd/w#\n",
+ "Tas=50#\n",
+ "d=16*T*10**3/(pi*Tas)#\n",
+ "d=d**(1/3)#\n",
+ "d=40#\n",
+ "Ts=10#\n",
+ "d1=(2*d)+13#\n",
+ "x=(d1**4-d**4)/d1#\n",
+ "#Let the shear stress in the key be Tsh\n",
+ "Tsh=T*10**3*16/(pi*x)#\n",
+ "l=3.5*d#\n",
+ "Ft=T*2*10**3/d#\n",
+ "l1=70#\n",
+ "sigak=50#\n",
+ "b=Ft/(l1*sigak)#\n",
+ "t=2*Ft/(100*l1)#\n",
+ "print \" d is %0.0f mm \"%(d)#\n",
+ "print \"\\n Tsh is %0.2f MPa \"%(Tsh)#\n",
+ "print \"\\n b is %0.0f mm \"%(b)#\n",
+ "print \"\\n t is %0.0f mm \"%(t)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 14-5 - Page 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 60 mm \n",
+ "\n",
+ " b is 13.6 mm \n",
+ "\n",
+ " t is 12 mm \n",
+ "\n",
+ " dr is 27.822 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "P=36*10**3#\n",
+ "N=200#\n",
+ "w=2*pi*N/60#\n",
+ "T=P/w#\n",
+ "Tas=45#\n",
+ "d=16*T*10**3/(pi*Tas)#\n",
+ "d=d**(1/3)#\n",
+ "d=60#\n",
+ "d1=(2*d)+13#\n",
+ "l=3.5*d#\n",
+ "Ftk=T*2/d#\n",
+ "lk=l/2#\n",
+ "Tak=40#\n",
+ "sigack=90#\n",
+ "b=Ftk*10**3/(lk*Tak)#\n",
+ "t=2*Ftk*10**3/(sigack*lk)#\n",
+ "n=4#\n",
+ "sigatb=60#\n",
+ "u=0.25#\n",
+ "dr=16*T*10**3/(u*pi**2*sigatb*n*d)#\n",
+ "dr=sqrt(dr)#\n",
+ "print \" d is %0.0f mm \"%(d)#\n",
+ "print \"\\n b is %0.1f mm \"%(b)#\n",
+ "print \"\\n t is %0.0f mm \"%(t)#\n",
+ "print \"\\n dr is %0.3f mm \"%(dr)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 14-6 - Page 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 32 mm \n",
+ "\n",
+ " b is 7 mm \n",
+ "\n",
+ " t is 8 mm \n",
+ "\n",
+ " db is 5.96 mm \n",
+ "\n",
+ " db1 is 6.15 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "P=16*10**3#\n",
+ "N=1000#\n",
+ "w=2*pi*N/60#\n",
+ "T=P/w#\n",
+ "Ks=1.4#\n",
+ "Td=T*Ks#\n",
+ "Tas=40#\n",
+ "d=16*T*10**3/(pi*Tas)#\n",
+ "d=d**(1/3)#\n",
+ "d=32#\n",
+ "d1=2*d#\n",
+ "l=1.5*d#\n",
+ "ds=1.5*d#\n",
+ "Tak=40#\n",
+ "sigack=70#\n",
+ "Ftk=Td*2/d#\n",
+ "b=Ftk*10**3/(l*Tak)#\n",
+ "t=2*Ftk*10**3/(sigack*l)#\n",
+ "Taf=10#\n",
+ "tf=Td*10**3*2/(pi*Taf*d1**2)#\n",
+ "Ftb=Td*10**3/(1.5*d*4)#\n",
+ "Tab=40#\n",
+ "db=sqrt(Ftb*4/(Tab*pi))#\n",
+ "D=4*d#\n",
+ "trp=d/6#\n",
+ "Ftb1=Td*10**3/(45*4)#\n",
+ "db1=sqrt(Ftb1*4/(Tab*pi))#\n",
+ "print \" d is %0.0f mm \"%(d)#\n",
+ "print \"\\n b is %0.0f mm \"%(b)#\n",
+ "print \"\\n t is %0.0f mm \"%(t)#\n",
+ "print \"\\n db is %0.2f mm \"%(db)#\n",
+ "print \"\\n db1 is %0.2f mm \"%(db1)#\n",
+ " \n",
+ "#The answer to Key thickness 't' is calculated incorrectly in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 14-7 - Page 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " sigmax is 36.77 MPa \n",
+ "\n",
+ " b is 9 mm \n",
+ "\n",
+ " t is 6 mm \n",
+ "\n",
+ " Lf is 36 mm \n",
+ "\n",
+ " Do is 180 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "P=30*10**3#\n",
+ "N=1440#\n",
+ "w=2*pi*N/60#\n",
+ "T=P/w#\n",
+ "d=36#\n",
+ "d1=30#\n",
+ "d2=2*d#\n",
+ "d3=d1*2#\n",
+ "l=1.5*d#\n",
+ "Dp=3.5*d#\n",
+ "n=6#\n",
+ "Ft=(2*T)/(Dp*n)#\n",
+ "p=0.5#\n",
+ "A=Ft/p#\n",
+ "Lf=d#\n",
+ "dp=A/Lf#\n",
+ "M=Ft*10**3*(5+(Lf/2))#\n",
+ "db=(32*M/(pi*40))**(1/3)#\n",
+ "db=15#\n",
+ "T=(4*526)/(pi*db**2)#\n",
+ "sigb=32*M/(pi*db**3)#\n",
+ "sigmax=(sigb/2)+sqrt(((sigb/2)**2)+(T**2))#\n",
+ "b=d/4#\n",
+ "t=6#\n",
+ "Lf=36#\n",
+ "La=10#\n",
+ "Do=126+30+(2*(5+1))+(2*6)#\n",
+ "print \" sigmax is %0.2f MPa \"%(sigmax)#\n",
+ "print \"\\n b is %0.0f mm \"%(b)#\n",
+ "print \"\\n t is %0.0f mm \"%(t)#\n",
+ "print \"\\n Lf is %0.0f mm \"%(Lf)#\n",
+ "print \"\\n Do is %0.0f mm \"%(Do)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch15_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch15_2.ipynb
new file mode 100644
index 00000000..2b3160d7
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch15_2.ipynb
@@ -0,0 +1,349 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:15 Shafts"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 15-2 - Page 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d is 17.73 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt, tan\n",
+ "dA=150#\n",
+ "dB=250#\n",
+ "alpha=20*pi/180#\n",
+ "W=400#\n",
+ "sigyt=400#\n",
+ "sigut=500#\n",
+ "Kb=1.5#\n",
+ "Kt=2#\n",
+ "T=W*dA/2#\n",
+ "Pt=T/(dB/2)#\n",
+ "Pr1=W*tan(alpha)#\n",
+ "Pr2=Pt*tan(alpha)#\n",
+ "RDH=((W*120)-(Pt*320))/440#\n",
+ "RcH=W-RDH-Pt#\n",
+ "#RcH=400+65.5-240#\n",
+ "McH=0#\n",
+ "MAH=RcH*120#\n",
+ "MBH=RDH*120#\n",
+ "RDV=((Pr1*120)-(Pr2*320))/440#\n",
+ "RcV=Pr1-RDV-Pr2#\n",
+ "MAV=RcV*120#\n",
+ "MBV=RDV*120#\n",
+ "Mmax=sqrt((MAH**2)+(MAV**2))#\n",
+ "T=30*10**3#\n",
+ "Ta=0.135*sigut#\n",
+ "d=16*sqrt((Kb*Mmax)**2+(Kt*T)**2)/(pi*Ta)#\n",
+ "d=d**(1/3)#\n",
+ "print \"d is %0.2f mm \"%(d)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 15-3 - Page 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d1 is 12.46 mm \n",
+ "\n",
+ "d2 is 13.23 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "P=16*746#\n",
+ "N=3000#\n",
+ "w=2*pi*N/60#\n",
+ "T=P/w*10**3#\n",
+ "sigy=400#\n",
+ "Ty=sigy/2#\n",
+ "FOS=2#\n",
+ "Ta=Ty/FOS#\n",
+ "d=T*16/(pi*Ta)#\n",
+ "d1=d**(1/3)#\n",
+ "r=3#\n",
+ "D=d1+(2*r)#\n",
+ "SCF=1.196\n",
+ "Tys=Ta/SCF#\n",
+ "d=T*16/(pi*Tys)#\n",
+ "d2=d**(1/3)#\n",
+ "d=14#\n",
+ "D=d+(2*r)#\n",
+ "print \"d1 is %0.2f mm \"%(d1)#\n",
+ "print \"\\nd2 is %0.2f mm \"%(d2)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 15-4 - Page 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d1 is 39.16 mm \n",
+ "\n",
+ " d2 is 29.25 mm \n",
+ "\n",
+ " d3 is 55.6 mm \n",
+ "\n",
+ " d4 is 44.67 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "P1=24*10**3#\n",
+ "P2=10*10**3#\n",
+ "sigyt=460#\n",
+ "Tya=sigyt*0.3#\n",
+ "SCF=2.84#\n",
+ "Ta=Tya/SCF#\n",
+ "N=400#\n",
+ "w=2*pi*N/60#\n",
+ "T1=P1/w#\n",
+ "T2=P2/w#\n",
+ "d1=T1*16*10**3/(pi*Ta)#\n",
+ "d1=d1**(1/3)#\n",
+ "d2=T2*16*10**3/(pi*Ta)#\n",
+ "d2=d2**(1/3)#\n",
+ "theta1=pi/3600#\n",
+ "l1=120#\n",
+ "G=84*10**3#\n",
+ "d3=T1*10**3*l1*32/(pi*G*theta1)#\n",
+ "d3=d3**(1/4)#\n",
+ "d4=T2*l1*10**3*32/(pi*G*theta1)#\n",
+ "d4=d4**(1/4)#\n",
+ "print \" d1 is %0.2f mm \"%(d1)#\n",
+ "print \"\\n d2 is %0.2f mm \"%(d2)#\n",
+ "print \"\\n d3 is %0.1f mm \"%(d3)#\n",
+ "print \"\\n d4 is %0.2f mm \"%(d4)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 15-5 - Page 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d is 33.6 mm \n",
+ "\n",
+ "theta is 0.33 degree \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sin, exp\n",
+ "d=200#\n",
+ "r=d/2#\n",
+ "N=300#\n",
+ "P=5000#\n",
+ "D=500#\n",
+ "R=D/2#\n",
+ "u=0.3#\n",
+ "E=205*10**3#\n",
+ "G=84*10**3#\n",
+ "Ta=60#\n",
+ "Kb=1.5#\n",
+ "Kt=2#\n",
+ "w=2*pi*N/60#\n",
+ "beta1=20*pi/180#\n",
+ "V=r*w#\n",
+ "v=R*w#\n",
+ "# Let T1-T2 =T\n",
+ "T=P/V#\n",
+ "x=u*pi/sin(beta1)#\n",
+ "T2=T/((exp(x)-1))#\n",
+ "T1=T2*exp(x)#\n",
+ "t=P/v#\n",
+ "y=u*pi#\n",
+ "T3=t/((exp(x)-1))#\n",
+ "T4=T3*exp(x)#\n",
+ "T=P/w#\n",
+ "Rc=2612##\n",
+ "RA=645.1#\n",
+ "MB=96.76#\n",
+ "MC=-208.96#\n",
+ "d=16*10**3*sqrt((Kb*MC)**2+(Kt*T)**2)/(pi*Ta)#\n",
+ "d=d**(1/3)#\n",
+ "l=380#\n",
+ "J=pi*d**4/32#\n",
+ "theta=T*10**3*l/(G*J)#\n",
+ "theta=theta*180/pi#\n",
+ "print \"d is %0.1f mm \"%(d)#\n",
+ "print \"\\ntheta is %0.2f degree \"%(theta)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "## exa 15-6 - Page 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d is 37 mm \n",
+ "\n",
+ "theta is 0.1735 deg \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "T=400#\n",
+ "Pt=4800#\n",
+ "Pg=3600#\n",
+ "sigyt=360#\n",
+ "E=205*10**3#\n",
+ "G=80*10**3#\n",
+ "Kb=2#\n",
+ "Kt=1.5#\n",
+ "FOS=3#\n",
+ "RC=((Pt*90)+(Pg*200))/140#\n",
+ "RA=8400-RC#\n",
+ "MB=RA*0.9#\n",
+ "MC=Pg*0.045#\n",
+ "Te=sqrt((Kb*MC)**2+(Kt*T)**2)#\n",
+ "Ta=0.577*sigyt/FOS#\n",
+ "d=16*10**3*Te/(pi*Ta)#\n",
+ "d=d**(1/3)#\n",
+ "L=110#\n",
+ "J=pi*d**4/32#\n",
+ "T=400#\n",
+ "theta=T*10**3*L/(G*J)#\n",
+ "theta=theta*180/pi#\n",
+ "print \"d is %0.0f mm \"%(d)#\n",
+ "print \"\\ntheta is %0.4f deg \"%(theta)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 15-7 - Page 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "n is 1.75 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "T=47*10**3#\n",
+ "M=32*10**3#\n",
+ "d=20#\n",
+ "siga=32*M/(pi*d**3)#\n",
+ "Tm=16*T/(pi*d**3)#\n",
+ "sige=75#\n",
+ "Tys=165#\n",
+ "n=1/sqrt((siga/sige)**2+(Tm/Tys)**2)#\n",
+ "print \"n is %0.2f \"%(n)#\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.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch16_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch16_2.ipynb
new file mode 100644
index 00000000..bc87342d
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch16_2.ipynb
@@ -0,0 +1,445 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:16 Power screws"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 16-1 - Page 450"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ttr is 110.148 Nm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import atan, pi, sqrt, tan\n",
+ "d=30#\n",
+ "W=20*10**3#\n",
+ "r1=8#\n",
+ "r2=16#\n",
+ "p=6#\n",
+ "u1=0.2#\n",
+ "u2=0.15#\n",
+ "dm=d-(p/2)#\n",
+ "alpha=atan(p/(pi*dm))#\n",
+ "phi=atan(u1)#\n",
+ "rm=(r1+r2)/2#\n",
+ "Ttr=W*((dm*tan(alpha+phi)/2)+(u2*rm))#\n",
+ "Ttr=Ttr*10**-3#\n",
+ "print \"Ttr is %0.3f Nm \"%(Ttr)#\n",
+ "#The answer to Ttr is slightly different than in the book due to rounding-off of values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 16-2 - Page 451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Tr is 187.49 Nm \n",
+ "\n",
+ " Te is 51.691 Nm \n",
+ "\n",
+ " n is 0.3489 \n",
+ "\n",
+ " Ph is 624.96 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import cos,pi,atan,tan\n",
+ "d=50#\n",
+ "W=20*10**3#\n",
+ "r1=10#\n",
+ "r2=30#\n",
+ "p=7#\n",
+ "u1=0.12/cos(15*pi/180)#\n",
+ "u2=0.15#\n",
+ "dm=d-(p/2)#\n",
+ "alpha=atan(3*p/(pi*dm))#\n",
+ "phi=atan(u1)#\n",
+ "rm=(r1+r2)/2#\n",
+ "Tr=W*((dm*tan(alpha+phi)/2)+(u2*rm))#\n",
+ "Tr=Tr*10**-3#\n",
+ "Te=W*((dm*tan(phi-alpha)/2)+(u2*rm))#\n",
+ "Te=Te*10**-3#\n",
+ "n=dm/2*tan(alpha)/(dm*tan(alpha+phi)/2+(u2*rm))#\n",
+ "L=0.30#\n",
+ "Ph=Tr/L#\n",
+ "print \" Tr is %0.2f Nm \"%(Tr)#\n",
+ "print \"\\n Te is %0.3f Nm \"%(Te)#\n",
+ "print \"\\n n is %0.4f \"%(n)#\n",
+ "print \"\\n Ph is %0.2f N \"%(Ph)#\n",
+ "#The answers to Tr, Te and Ph is slightly different than in the book due to rounding-off of values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 16-3 - Page 452"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Tr1 is 31.456 Nm \n",
+ "\n",
+ " n1 is 0.1265 \n",
+ "\n",
+ " T1 is 23.307 Nm \n",
+ "\n",
+ " n2 is 0.1707 \n",
+ "\n",
+ " Tr2 is 17.156 Nm \n",
+ "\n",
+ " n3 is 0.2319 \n",
+ "\n",
+ " Te is 9.007 Nm \n",
+ "\n",
+ " n4 is 0.4418 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan,tan\n",
+ "d=30#\n",
+ "W=5*10**3#\n",
+ "p=5#\n",
+ "rm=45/2#\n",
+ "u1=0.15/cos(14.5*pi/180)#\n",
+ "u2=0.15#\n",
+ "dm=d-(p/2)#\n",
+ "alpha=atan(p/(pi*dm))#\n",
+ "phi=atan(u1)#\n",
+ "Tr1=W*((dm*tan(alpha+phi)/2)+(u2*rm))#\n",
+ "Tr1=Tr1*10**-3#\n",
+ "n1=dm/2*tan(alpha)/(dm*tan(alpha+phi)/2+(u2*rm))#\n",
+ "T1=W*((dm*tan(phi-alpha)/2)+(u2*rm))#\n",
+ "T1=T1*10**-3#\n",
+ "n2=dm/2*tan(alpha)/(dm*tan(phi-alpha)/2+(u2*rm))#\n",
+ "u2=0.02#\n",
+ "Tr2=W*((dm*tan(alpha+phi)/2)+(u2*rm))#\n",
+ "Tr2=Tr2*10**-3#\n",
+ "n3=dm/2*tan(alpha)/(dm*tan(alpha+phi)/2+(u2*rm))#\n",
+ "Te=W*((dm*tan(phi-alpha)/2)+(u2*rm))#\n",
+ "Te=Te*10**-3#\n",
+ "n4=dm/2*tan(alpha)/(dm*tan(phi-alpha)/2+(u2*rm))#\n",
+ "print \" Tr1 is %0.3f Nm \"%(Tr1)#\n",
+ "print \"\\n n1 is %0.4f \"%(n1)#\n",
+ "print \"\\n T1 is %0.3f Nm \"%(T1)#\n",
+ "print \"\\n n2 is %0.4f \"%(n2)#\n",
+ "print \"\\n Tr2 is %0.3f Nm \"%(Tr2)#\n",
+ "print \"\\n n3 is %0.4f \"%(n3)#\n",
+ "print \"\\n Te is %0.3f Nm \"%(Te)#\n",
+ "print \"\\n n4 is %0.4f \"%(n4)#\n",
+ " \n",
+ " #The answer to T1 is misprinted in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 16-4 - Page 453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "F is 7.299 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import tan,atan,pi\n",
+ "d=28#\n",
+ "P=300#\n",
+ "L=180#\n",
+ "p=8#\n",
+ "r1=16#\n",
+ "r2=46#\n",
+ "rm=(r1+r2)/2#\n",
+ "u1=0.12#\n",
+ "u2=0.15#\n",
+ "dm=d-(p/2)#\n",
+ "alpha=atan(p/(pi*dm))#\n",
+ "phi=atan(u1)#\n",
+ "T=P*L#\n",
+ "F=T/((dm*tan(alpha+phi)/2)+(u2*rm))#\n",
+ "F=F*10**-3#\n",
+ "print \"F is %0.3f kN \"%(F)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 16-5 - Page 453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P is 23.6 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan,tan\n",
+ "d=25#\n",
+ "p=8#\n",
+ "F=392.4#\n",
+ "L=250#\n",
+ "l=p*2#\n",
+ "u=0.14#\n",
+ "dm=d-(p/2)#\n",
+ "alpha=atan(l/(pi*dm))#\n",
+ "phi=atan(u)#\n",
+ "T=dm*tan(alpha+phi)/2#\n",
+ "M=F*L#\n",
+ "P=M/T*10**-3#\n",
+ "print \"P is %0.1f kN \"%(P)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 16-6 - Page 454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P is 0.07 KW \n",
+ "\n",
+ "n is 0.1659 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi,atan,tan\n",
+ "d=52#\n",
+ "W=2.2*10**3#\n",
+ "p=8#\n",
+ "r1=15#\n",
+ "r2=30#\n",
+ "rm=(r1+r2)/2#\n",
+ "u1=0.15/cos(14.5*pi/180)#\n",
+ "dm=d-(p/2)#\n",
+ "alpha=atan(p/(pi*dm))#\n",
+ "phi=atan(u1)#\n",
+ "Ts=W*dm*tan(alpha+phi)/2#\n",
+ "u2=0.12#\n",
+ "Tc=u2*W*rm#\n",
+ "T=10**-3*(Ts+Tc)#\n",
+ "N=40#\n",
+ "w=2*pi*N/60#\n",
+ "P=T*w*10**-3#\n",
+ "To=W*dm/2*tan(alpha)#\n",
+ "n=To/(T*10**3)#\n",
+ "print \"P is %0.2f KW \"%(P)#\n",
+ "print \"\\nn is %0.4f \"%(n)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 16-7 - Page 455"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d is 24 mm \n",
+ "\n",
+ "p is 5 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi,atan,tan\n",
+ "alpha=atan(2*0.2/(pi*0.9))#\n",
+ "u1=0.15#\n",
+ "phi=atan(u1)#\n",
+ "P=200#\n",
+ "L=250#\n",
+ "Tt=P*L#\n",
+ "W=10*10**3#\n",
+ "u2=0.15#\n",
+ "x=Tt/W#\n",
+ "d=x/0.1716#\n",
+ "d=30#\n",
+ "p=6#\n",
+ "dr=0.8*d#\n",
+ "d=24#\n",
+ "p=5#\n",
+ "dr=d-p#\n",
+ "dm=d-(p/2)#\n",
+ "print \"d is %0.0f mm \"%(d)#\n",
+ "print \"\\np is %0.0f mm \"%(p)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 16-8 - Page 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " T is 145.242 Nm \n",
+ "\n",
+ " n is 0.4751 \n",
+ "\n",
+ " a is 0.04894 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi,atan,tan\n",
+ "FOS=3#\n",
+ "sigut=380#\n",
+ "Ta=0.577*sigut/FOS#\n",
+ "d=25#\n",
+ "Tus=460#\n",
+ "Ps=pi*d*Tus#\n",
+ "siga=127#\n",
+ "dr=sqrt(Ps*4/(pi*siga))#\n",
+ "d=30#\n",
+ "p=6#\n",
+ "dr=d-p#\n",
+ "dm=d-(p/2)#\n",
+ "u1=0.15#\n",
+ "alpha=atan(p*2/(pi*dm))#\n",
+ "phi=atan(u1)#\n",
+ "T=Ps*dm*tan(alpha+phi)/2#\n",
+ "T1=16*T/(pi*dr**3)#\n",
+ "sigc=4*Ps/(pi*dr**2)#\n",
+ "sigmax=sigc/2+sqrt((sigc/2**2)+(T1**2))#\n",
+ "Tmax=sqrt((sigc/2**2)+(T1**2))#\n",
+ "n=tan(alpha)/tan(alpha+phi)#\n",
+ "Uo=Ps/2#\n",
+ "Ui=Uo/n#\n",
+ "wav=pi/2#\n",
+ "wmax=2*wav#\n",
+ "I=Ui*2/wmax**2#\n",
+ "k=0.4#\n",
+ "Ir=0.9*I*10**-3#\n",
+ "m=Ir/k**2#\n",
+ "R=0.4#\n",
+ "rho=7200#\n",
+ "a=sqrt(m/(2*pi*R*rho))#\n",
+ "T=T*10**-3#\n",
+ "print \" T is %0.3f Nm \"%(T)#\n",
+ "print \"\\n n is %0.4f \"%(n)#\n",
+ "print \"\\n a is %0.5f mm \"%(a)#\n",
+ " \n",
+ "#The difference in the answers of T is due to rounding-off of values."
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch17_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch17_2.ipynb
new file mode 100644
index 00000000..bd4b86bc
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch17_2.ipynb
@@ -0,0 +1,366 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:17 Sliding contact bearings"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 17-1 - Page 482"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Tav is 47.29 degC \n",
+ "\n",
+ " delT is 7.3 degC \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "Ta=22#\n",
+ "u=7/10**9#\n",
+ "nj=20#\n",
+ "r=25#\n",
+ "l=2*r#\n",
+ "Ao=30000#\n",
+ "Uo=15.3/10**3#\n",
+ "c=0.025#\n",
+ "#specific weight of the material is rho\n",
+ "rho=8.46*(10**-6)#\n",
+ "Cp=179.8#\n",
+ "Tf=Ta+(16*pi**3*u*nj**2*l*r**3/(Uo*Ao*c))#\n",
+ "# avg mean film temperature is Tav\n",
+ "Tav=(Tf-Ta)/2#\n",
+ "x= l*c*rho*pi*r*nj*Cp*10**3#\n",
+ "y=Ao*Tav*Uo#\n",
+ "delT=y/x#\n",
+ "print \" Tav is %0.2f degC \"%(Tav)#\n",
+ "print \"\\n delT is %0.1f degC \"%(delT)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 17-2 - Page 482"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "u is 6.293 cP \n"
+ ]
+ }
+ ],
+ "source": [
+ "l=60#\n",
+ "d=60#\n",
+ "r=d/2#\n",
+ "ho=0.008#\n",
+ "c=0.04#\n",
+ "S=0.0446#\n",
+ "nj=1260/60#\n",
+ "W=6000#\n",
+ "p=W/(l*d)#\n",
+ "u=S*(c/r)**2*p/nj#\n",
+ "u=u*10**9#\n",
+ "print \"u is %0.3f cP \"%(u)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 17-3 - Page 483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " u is 3.469 cP \n",
+ "\n",
+ " Q is 0.2874 lpm \n"
+ ]
+ }
+ ],
+ "source": [
+ "d=60#\n",
+ "r=30#\n",
+ "l=60#\n",
+ "c=0.8*10**-3*r#\n",
+ "ho=0.2*c#\n",
+ "W=21000/2#\n",
+ "p=W/(l*d)#\n",
+ "S=0.0446#\n",
+ "nj=1440/60#\n",
+ "u=S*(c/r)**2*p/nj#\n",
+ "u=u*10**9#\n",
+ "# since Q/(r*nj*l)=4.62\n",
+ "Q=4.62*r*c*nj*l#\n",
+ "Q=Q*60/10**6#\n",
+ "print \" u is %0.3f cP \"%(u)#\n",
+ "print \"\\n Q is %0.4f lpm \"%(Q)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 17-4 - Page 483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " f is 0.00985 \n",
+ "\n",
+ " ho is 0.032 mm \n",
+ "\n",
+ " Q is 0.638 lpm \n",
+ "\n",
+ " delT is 8.3 degC \n",
+ "\n",
+ " Pf is 0.1337 KW \n"
+ ]
+ }
+ ],
+ "source": [
+ "from numpy import mat,pi,sqrt\n",
+ "l=60#\n",
+ "d=60#\n",
+ "r=d/2#\n",
+ "W=3000#\n",
+ "p=W/(l*d)#\n",
+ "u=30*10**-9#\n",
+ "c=0.06#\n",
+ "nj=1440/60#\n",
+ "S=(r/c)**2*u*nj/p#\n",
+ "#For ratio l/d=1, values of different parameters are given in matrix A corresponding to S\n",
+ "A=mat([[0,0,0,0,0,0],[0,1, 0.264, 0.6, 5.79, 3.99],[0,1, 0.121, 0.4 ,3.22, 4.33]])#\n",
+ "#let ho/c=x\n",
+ "x=(A[1,3])-((A[1,3]-(A[2,3]))*((A[1,2])-S)/((A[1,2])-(A[2,2])))#\n",
+ "#let y= (r/c)*f=CFV\n",
+ "y=(A[1,4])-(A[1,4]-(A[2,4]))*((A[1,2])-S)/((A[1,2])-(A[2,2]))#\n",
+ "#let z=Q/(r*c*nj*l)=FV\n",
+ "z=(A[1,5])-((A[1,5]-(A[2,5]))*((A[1,2])-S)/((A[1,2])-(A[2,2])))#\n",
+ "f=y*c/r#\n",
+ "ho=x*c#\n",
+ "Q=z*r*c*nj*l#\n",
+ "Q=Q*60/10**6#\n",
+ "delT=8.3*p*y/z#\n",
+ "#let power lost in friction be Pf\n",
+ "Pf=2*pi*nj*f*W*r/10**6#\n",
+ "print \" f is %0.5f \"%(f)#\n",
+ "print \"\\n ho is %0.3f mm \"%(ho)#\n",
+ "print \"\\n Q is %0.3f lpm \"%(Q)#\n",
+ "print \"\\n delT is %0.1f degC \"%(delT)#\n",
+ "print \"\\n Pf is %0.4f KW \"%(Pf)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 17-5 - Page 484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 96 mm \n",
+ "\n",
+ " l is 96 mm \n",
+ "\n",
+ " ho is 0.0166 mm \n",
+ "\n",
+ " Q is 1.701 lpm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "W=22000#\n",
+ "nj=960/60#\n",
+ "p=2.4#\n",
+ "u=20*10**-9#\n",
+ "d=sqrt(W/p)#\n",
+ "d=96#\n",
+ "r=d/2#\n",
+ "l=d#\n",
+ "S=0.0446#\n",
+ "pact=W/(l*d)#\n",
+ "#x=r/c#\n",
+ "x=sqrt(S*pact/(u*nj))#\n",
+ "c=r/x#\n",
+ "ho=0.2*c#\n",
+ "Q=r*c*nj*l*4.62#\n",
+ "Q=Q*60/10**6#\n",
+ "print \" d is %0.0f mm \"%(d)#\n",
+ "print \"\\n l is %0.0f mm \"%(l)#\n",
+ "print \"\\n ho is %0.4f mm \"%(ho)#\n",
+ "print \"\\n Q is %0.3f lpm \"%(Q)#\n",
+ "#The difference in answer to Q is due to rounding -off the value of c."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 17-6 - Page 485"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " pi is 3.946 MPa \n",
+ "\n",
+ " Q is 25.52 lpm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log,pi\n",
+ "W=400*10**3#\n",
+ "Ro=200#\n",
+ "Ri=160#\n",
+ "ho=0.1#\n",
+ "t=150#\n",
+ "# specific gravity is rho\n",
+ "rho=0.86#\n",
+ "pi=2*W*log(Ro/Ri)/(pi*(Ro**2-Ri**2))#\n",
+ "zk=(0.22*t)-(180/t)#\n",
+ "z=rho*zk#\n",
+ "u=z/(10**9)#\n",
+ "Q=pi*pi*ho**3/(6*u*log(Ro/Ri))#\n",
+ "Q=Q*60/10**6#\n",
+ "print \" pi is %0.3f MPa \"%(pi)#\n",
+ "print \"\\n Q is %0.2f lpm \"%(Q)#\n",
+ " \n",
+ "#The difference in answer to Q is due to rounding -off of values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 17-7 - Page 486"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "pi is 4.44 MPa \n",
+ "\n",
+ "Q is 19.629 lpm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log, pi\n",
+ "#let number of pads be n\n",
+ "n=4#\n",
+ "W=100*10**3#\n",
+ "Ro=125#\n",
+ "Ri=50#\n",
+ "t=200#\n",
+ "ho=0.15#\n",
+ "pi=2*W*log(Ro/Ri)/(pi*(Ro**2-Ri**2))#\n",
+ "zk=(0.22*t)-(180/t)#\n",
+ "# specific gravity is rho\n",
+ "rho=0.86#\n",
+ "z=rho*zk#\n",
+ "u=z/(10**9)#\n",
+ "Q=pi*pi*ho**3/(6*u*log(Ro/Ri))#\n",
+ "Q=Q*60/10**6#\n",
+ "print \"pi is %0.2f MPa \"%(pi)#\n",
+ "print \"\\nQ is %0.3f lpm \"%(Q)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch18_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch18_2.ipynb
new file mode 100644
index 00000000..edb3ac36
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch18_2.ipynb
@@ -0,0 +1,460 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:18 Rolling bearings"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 18-1 - Page 507"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Pf is 53.08 W \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi\n",
+ "Pr=16*10**3#\n",
+ "u=0.0011#\n",
+ "F=u*Pr#\n",
+ "r=20*10**-3#\n",
+ "#Let frictional moment be M\n",
+ "M=F*r#\n",
+ "N=1440#\n",
+ "w=2*pi*N/60#\n",
+ "Pf=M*w#\n",
+ "print \"Pf is %0.2f W \"%(Pf)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 18-2 - Page 508"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "L1 is 57.3 million revolutions \n",
+ "\n",
+ "L2 is 43.46 million revoltions \n"
+ ]
+ }
+ ],
+ "source": [
+ "C=5590#\n",
+ "Ca=2500#\n",
+ "Pa=625#\n",
+ "Pr=1250#\n",
+ "V=1#\n",
+ "X=0.56#\n",
+ "Y=1.2#\n",
+ "P1=(X*V*Pr)+(Y*Pa)#\n",
+ "L1=(C/P1)**3#\n",
+ "V=1.2#\n",
+ "P2=(X*V*Pr)+(Y*Pa)#\n",
+ "L2=(C/P2)**3#\n",
+ "print \"L1 is %0.1f million revolutions \"%(L1)#\n",
+ "print \"\\nL2 is %0.2f million revoltions \"%(L2)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 18-4 - Page 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Lh is 199.424 hrs \n"
+ ]
+ }
+ ],
+ "source": [
+ "P=20*10**3#\n",
+ "Co=22400#\n",
+ "C=41000#\n",
+ "Ln=(C/P)**3#\n",
+ "Lh=Ln*10**6/(720*60)#\n",
+ "print \"Lh is %0.3f hrs \"%(Lh)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 18-5 - Page 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Designation of Bearing B1 is 61805 \n",
+ "\n",
+ "d1 is 25 mm \n",
+ "\n",
+ "D1 is 37 mm \n",
+ "\n",
+ "B1 is 7 mm \n",
+ "\n",
+ "C1 is 3120 N \n",
+ "\n",
+ "Designation of Bearing B2 is 16005 \n",
+ "\n",
+ "d2 is 25 mm \n",
+ "\n",
+ "D2 is 47 mm \n",
+ "\n",
+ "B2 is 8 mm \n",
+ "\n",
+ "C2 is 7620 N \n",
+ "Bearing 61805 at B1 and 16005 at B2 can be installed.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "R1x=120#\n",
+ "R1y=250#\n",
+ "R2x=300#\n",
+ "R2y=400#\n",
+ "Lh=8000#\n",
+ "N=720#\n",
+ "Ln=Lh*60*N*10**-6#\n",
+ "R1=sqrt(R1x**2+R1y**2)#\n",
+ "R2=sqrt(R2x**2+R2y**2)#\n",
+ "#Let load factor be Ks\n",
+ "Ks=1.5#\n",
+ "P1=R1*Ks#\n",
+ "P2=R2*Ks#\n",
+ "C1=P1*(Ln**(1/3))#\n",
+ "C2=P2*(Ln**(1/3))#\n",
+ "#let designation,d,D,B,C at bearing B1 be De1,d1,D1,B1,C1\n",
+ "d1=25#\n",
+ "D1=37#\n",
+ "B1=7#\n",
+ "C1=3120#\n",
+ "De1=61805#\n",
+ "#let designation,d,D,B,C at bearing B2 be De2,d2,D2,B2,C2\n",
+ "d2=25#\n",
+ "D2=47#\n",
+ "B2=8#\n",
+ "C2=7620#\n",
+ "De2=16005#\n",
+ "print \"Designation of Bearing B1 is %0.0f \"%(De1)#\n",
+ "print \"\\nd1 is %0.0f mm \"%(d1)#\n",
+ "print \"\\nD1 is %0.0f mm \"%(D1)#\n",
+ "print \"\\nB1 is %0.0f mm \"%(B1)#\n",
+ "print \"\\nC1 is %0.0f N \"%(C1)#\n",
+ "print \"\\nDesignation of Bearing B2 is %0.0f \"%(De2)#\n",
+ "print \"\\nd2 is %0.0f mm \"%(d2)#\n",
+ "print \"\\nD2 is %0.0f mm \"%(D2)#\n",
+ "print \"\\nB2 is %0.0f mm \"%(B2)#\n",
+ "print \"\\nC2 is %0.0f N \"%(C2)#\n",
+ "print 'Bearing 61805 at B1 and 16005 at B2 can be installed.'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 18-6 - Page 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Lh1 is 14585 hrs \n",
+ "\n",
+ "Lh2 is 24216 hrs \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import tan, pi,sqrt\n",
+ "P=7500#\n",
+ "N=1440#\n",
+ "w=2*pi*N/60#\n",
+ "T=P/w#\n",
+ "r=0.2#\n",
+ "#Let T1-T2=t\n",
+ "t=T/r#\n",
+ "T2=t/2.5#\n",
+ "T1=3.5*T2#\n",
+ "R=0.125#\n",
+ "Ft=T/R#\n",
+ "Fr=Ft*tan(20*pi/180)#\n",
+ "# RD & RA are reaction forces calculated in vertical and horizontal directions from FBD by force equilibrium\n",
+ "RDv=186.5#\n",
+ "RAv=236.2#\n",
+ "RDh=36.2#\n",
+ "RAh=108.56#\n",
+ "RA=sqrt(RAv**2+RAh**2)#\n",
+ "RD=sqrt(RDv**2+RDh**2)#\n",
+ "Ks=1.4#\n",
+ "P1=RA*Ks#\n",
+ "P2=RD*Ks#\n",
+ "#let designation,d,D,B,C at bearing B1 be De1,d1,C1\n",
+ "d1=25#\n",
+ "C1=3120#\n",
+ "De1=61805#\n",
+ "#let designation,d,D,B,C at bearing B2 be De2,d2,C2\n",
+ "d2=25#\n",
+ "\n",
+ "C2=2700#\n",
+ "De2=61804#\n",
+ "L1=(C1/P1)**3#\n",
+ "Lh1=L1*10**6/(720*60)#\n",
+ "L2=(C2/P2)**3#\n",
+ "Lh2=L2*10**6/(720*60)#\n",
+ "print \"Lh1 is %0.0f hrs \"%(Lh1)#\n",
+ "print \"\\nLh2 is %0.0f hrs \"%(Lh2)#\n",
+ "#Incorrect value of P2 is taken in the book while calculating L2."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 18-7 - Page 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "C is 44589 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log\n",
+ "P=3500#\n",
+ "Lh=6000#\n",
+ "N=1400#\n",
+ "R98=0.98#\n",
+ "R90=0.9#\n",
+ "L98=Lh*60*N/10**6#\n",
+ "x=(log(1/R98)/log(1/R90))**(1/1.17)#\n",
+ "L90=L98/x#\n",
+ "C=P*L90**(1/3)#\n",
+ "print \"C is %0.0f N \"%(C)#\n",
+ "#The difference in the value of C is due to rounding-off of value of L."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 18-8 - Page 512"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "C is 6.337 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log\n",
+ "n=3#\n",
+ "P=3#\n",
+ "#Let Reliability of system be R\n",
+ "R=0.83#\n",
+ "L94=6#\n",
+ "R94=(R)**(1/n)#\n",
+ "x=(log(1/R94)/log(1/0.90))**(1/1.17)#\n",
+ "L90=L94/x#\n",
+ "C=P*L90**(1/3)#\n",
+ "print \"C is %0.3f kN \"%(C)#\n",
+ "#The difference in the value of C is due to rounding-off of value of L."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 18-9 - Page 512"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "C is 34219 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "P1=3000#\n",
+ "P2=4000#\n",
+ "P3=5000#\n",
+ "N1=1440#\n",
+ "N2=1080#\n",
+ "N3=720#\n",
+ "t1=1/4#\n",
+ "t2=1/2#\n",
+ "t3=1/4#\n",
+ "n1=N1*t1#\n",
+ "n2=N2*t2#\n",
+ "n3=N3*t3#\n",
+ "N=(n1+n2+n3)#\n",
+ "Pe=(((n1*P1**3)+(n2*P2**3)+(n3*P3**3))/N)**(1/3)#\n",
+ "Lh=10*10**3#\n",
+ "L=Lh*60*N/10**6#\n",
+ "C=Pe*L**(1/3)#\n",
+ "print \"C is %0.0f N \"%(C)#\n",
+ "#The difference in the value of C is due to rounding-off of value of Pe"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 18-10 - Page 513"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Lh is 227.66 hrs \n"
+ ]
+ }
+ ],
+ "source": [
+ "Co=695#\n",
+ "C=1430#\n",
+ "Pa1=200#\n",
+ "Pr1=600#\n",
+ "x=Pa1/Co#\n",
+ "y=Pa1/Pr1#\n",
+ "e=0.37+((0.44-0.37)*0.038/0.28)#\n",
+ "X=1#\n",
+ "Y=0#\n",
+ "P1=600#\n",
+ "Pa2=120#\n",
+ "Pr2=300#\n",
+ "X=0.56#\n",
+ "Y=1.2-(0.2*0.042/0.12)#\n",
+ "P2=(X*Pr2)+(Y*Pa2)#\n",
+ "N1=1440#\n",
+ "N2=720#\n",
+ "t1=2/3#\n",
+ "t2=1/3#\n",
+ "n1=N1*t1#\n",
+ "n2=N2*t2#\n",
+ "N=(n1+n2)#\n",
+ "Pe=(((n1*P1**3)+(n2*P2**3))/N)**(1/3)#\n",
+ "L=(C/Pe)**3#\n",
+ "Lh=L*10**6/(N*60)#\n",
+ "print \"Lh is %0.2f hrs \"%(Lh)#\n",
+ "#The difference in the value of Lh is due to rounding-off of value of Pe"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch19_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch19_2.ipynb
new file mode 100644
index 00000000..e42db53e
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch19_2.ipynb
@@ -0,0 +1,389 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:19 Flywheel"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 19-1 - Page 530"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "axial stress is 12.76 MPa \n",
+ "\n",
+ "tensile stress for theta=30deg is 38.9 MPa \n",
+ "\n",
+ "tensile stress for theta=0deg is 31.74 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, cos, sin\n",
+ "R=1200#\n",
+ "b=300#\n",
+ "t=150#\n",
+ "N=500#\n",
+ "m=7100*10**-9*b*t#\n",
+ "Ar=b*t#\n",
+ "Aa=Ar/4#\n",
+ "C=(20280/t**2)+0.957+(Ar/Aa)#\n",
+ "w=2*pi*N/60#\n",
+ "V=w*R*10**-3#\n",
+ "siga=2*10**3*m*V**2/(C*Aa*3)#\n",
+ "theta=30*pi/180#\n",
+ "alpha=30*pi/180#\n",
+ "x1=10**3*m*(V**2)/(b*t)#\n",
+ "y1=cos(theta)/(3*C*sin(alpha))#\n",
+ "z1=2000*R*10**-3/(C*t)*((1/alpha)-(cos(theta)/sin(alpha)))#\n",
+ "sigrr1=x1*(1-y1+z1)#\n",
+ "theta=0*pi/180#\n",
+ "x2=10**3*m*(V**2)/(b*t)#\n",
+ "y2=cos(theta)/(3*C*sin(alpha))#\n",
+ "z2=2000*R*10**-3/(C*t)*((1/alpha)-(cos(theta)/sin(alpha)))#\n",
+ "sigrr2=x2*(1-y2-z2)#\n",
+ "print \"axial stress is %0.2f MPa \"%(siga)#\n",
+ "print \"\\ntensile stress for theta=30deg is %0.1f MPa \"%(sigrr1)#\n",
+ "print \"\\ntensile stress for theta=0deg is %0.2f MPa \"%(sigrr2)#\n",
+ "#The difference in the value of sigrr1 and sigrr2 is due to rounding-off of values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 19-2 - Page 530"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t is 63.37 mm \n",
+ "\n",
+ "b is 126.74 mm \n",
+ "\n",
+ "R is 0.682 m \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import asin, cos, sqrt,pi\n",
+ "N=350#\n",
+ "theta1=asin(sqrt((3-0.6)/4))#\n",
+ "theta1=theta1*180/pi#\n",
+ "theta2=(180)-theta1#\n",
+ "#Ti=16000+6000*sind(3*theta)#\n",
+ "#To=16000+3600*sind(theta)#\n",
+ "a=-3600*(cos(pi/180*theta2)-cos(pi/180*theta1))#\n",
+ "b=2000*(cos(pi/180*3*theta2)-cos(pi/180*3*theta1))#\n",
+ "c=a+b#\n",
+ "delU=c#\n",
+ "Ks=0.05#\n",
+ "w=2*pi*N/60#\n",
+ "I=delU/(Ks*w**2)#\n",
+ "V=25#\n",
+ "Ir=I*0.95#\n",
+ "R=V/w#\n",
+ "Mr=Ir/R**2#\n",
+ "rho=7150#\n",
+ "t=sqrt(Mr*(10**6)/(2*pi*R*2*rho))#\n",
+ "b=2*t#\n",
+ "print \"t is %0.2f mm \"%(t)#\n",
+ "print \"\\nb is %0.2f mm \"%(b)#\n",
+ "print \"\\nR is %0.3f m \"%(R)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 19-3 - Page 531"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t is 28.16 mm \n",
+ "\n",
+ "b is 42.24 mm \n",
+ "\n",
+ "R is 0.2816 m \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "N=300#\n",
+ "Ks=0.03#\n",
+ "rho=7150#\n",
+ "Kr=0.9#\n",
+ "w=2*pi*N/60#\n",
+ "WD=(300*2*pi)+(4*pi*200/4)#\n",
+ "Tm=400#\n",
+ "delU=pi*200/16#\n",
+ "Ir=Kr*delU/(w**2*Ks)#\n",
+ "R=Ir/(rho*1.5*0.1*0.1*2*pi)#\n",
+ "R=R**(1/5)#\n",
+ "t=0.1*R*1000#\n",
+ "b=1.5*t#\n",
+ "print \"t is %0.2f mm \"%(t)#\n",
+ "print \"\\nb is %0.2f mm \"%(b)#\n",
+ "print \"\\nR is %0.4f m \"%(R)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 19-4 - Page 532"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t is 26.9 mm \n",
+ "\n",
+ "b is 53.8 mm \n",
+ "\n",
+ "R is 0.5 m \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "d=20#\n",
+ "t=12#\n",
+ "Tus=450#\n",
+ "Pmax=pi*d*t*Tus#\n",
+ "WD=Pmax*t/2*10**-3#\n",
+ "n=0.95#\n",
+ "Wi=WD/n#\n",
+ "delU=5*Wi/6#\n",
+ "N=300#\n",
+ "w=2*pi*N/60#\n",
+ "Ks=0.2#\n",
+ "I=delU/(Ks*w**2)#\n",
+ "Ir=I*0.9#\n",
+ "R=0.5#\n",
+ "m=Ir/R**2#\n",
+ "rho=7150#\n",
+ "t=sqrt(m*10**6/(rho*2*pi*R*2))#\n",
+ "b=2*t#\n",
+ "print \"t is %0.1f mm \"%(t)#\n",
+ "print \"\\nb is %0.1f mm \"%(b)#\n",
+ "print \"\\nR is %0.1f m \"%(R)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 19-5 - Page 533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R is 0.364 m \n",
+ "\n",
+ "sigmax is 0.29 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "U=(500*2*pi)+(3*pi*500/2)#\n",
+ "Tm=U/(2*pi)#\n",
+ "delU=2.25*pi*125/2#\n",
+ "Ks=0.1#\n",
+ "N=250#\n",
+ "w=2*pi*N/60#\n",
+ "I=delU/(Ks*w**2)#\n",
+ "t=0.03#\n",
+ "rho=7800#\n",
+ "R=(I*2/(pi*rho*t))**(1/4)#\n",
+ "V=R*w#\n",
+ "v=0.3#\n",
+ "sigmax=rho*V**2*(3+v)/8*10**-6#\n",
+ "print \"R is %0.3f m \"%(R)#\n",
+ "print \"\\nsigmax is %0.2f MPa \"%(sigmax)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 19-6 - Page 534"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t is 24.8 mm \n",
+ "\n",
+ "b is 37.2 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "N=1.5*8*60#\n",
+ "l=200#\n",
+ "t=1.5/2#\n",
+ "W=350*10**3#\n",
+ "WD=0.15*l*W*10**-6#\n",
+ "n=0.9# #since frictional effect is 10%, effciency of system is 90%\n",
+ "Wi=WD/n#\n",
+ "L=400#\n",
+ "delU=(L-(0.15*l))/(L)*10**3*Wi#\n",
+ "Ks=0.12#\n",
+ "w=2*pi*N/60#\n",
+ "I=delU/(Ks*w**2)#\n",
+ "Ir=I*0.9#\n",
+ "R=0.7#\n",
+ "m=Ir/R**2#\n",
+ "rho=7150#\n",
+ "t=sqrt(m*10**6/(rho*2*pi*R*1.5))#\n",
+ "b=1.5*t#\n",
+ "print \"t is %0.1f mm \"%(t)#\n",
+ "print \"\\nb is %0.1f mm \"%(b)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 19-7 - Page 535"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t is 40 mm \n",
+ "\n",
+ "b is 80 mm \n",
+ "\n",
+ "R is 400 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "N=144#\n",
+ "#Let n be no. of punches/ min\n",
+ "n=8#\n",
+ "#Let t be timr for 1 punch\n",
+ "t=60/n#\n",
+ "theta=N/60*2*pi*0.6#\n",
+ "T=2.1#\n",
+ "U=T*theta#\n",
+ "#Let U1 be revolution of crankshaft in t sec\n",
+ "U1=t*N/60*2*pi#\n",
+ "delU=(U1-theta)/U1*U*10**3#\n",
+ "w=2*pi*1440/60#\n",
+ "Ks=0.1#\n",
+ "I=delU/(Ks*w**2)#\n",
+ "Ir=I*0.9#\n",
+ "rho=7100#\n",
+ "\n",
+ "R=Ir/(rho*0.2*0.1*2*pi)#\n",
+ "R=R**(1/5)#\n",
+ "t=0.1*R*1000#\n",
+ "b=0.2*R*10**3#\n",
+ "t=40#\n",
+ "b=80#\n",
+ "R=400#\n",
+ "# printing data in scilab o/p window\n",
+ "print \"t is %0.0f mm \"%(t)#\n",
+ "print \"\\nb is %0.0f mm \"%(b)#\n",
+ "print \"\\nR is %0.0f mm \"%(R)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch20_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch20_2.ipynb
new file mode 100644
index 00000000..c0fb17e3
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch20_2.ipynb
@@ -0,0 +1,480 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:20 Flat belt drive"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 20-1 - Page 565"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "T1 is 4167.4 N \n",
+ "\n",
+ "T2 is 1667.4 N \n",
+ "\n",
+ "t is 9.75 mm \n",
+ "\n",
+ "theta is 3.35 rad \n",
+ "\n",
+ "sigmax is 3.44 N/mm**2 \n",
+ "\n",
+ "sigmin is 0.855 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, asin, exp, degrees\n",
+ "b=0.2#\n",
+ "P=50*10**3#\n",
+ "v=20#\n",
+ "m=1.95#\n",
+ "d=0.3#\n",
+ "D=0.9#\n",
+ "C=5.8#\n",
+ "u=0.4#\n",
+ "#Let density be rho\n",
+ "rho=1000#\n",
+ "E=40#\n",
+ "#Let T1-T2 = T\n",
+ "T=P/v#\n",
+ "#Let the centrifugal tension be Tc\n",
+ "Tc=m*v**2#\n",
+ "alpha=degrees(asin((D+d)/(2*C)))#\n",
+ "theta=180+(2*alpha)#\n",
+ "theta=theta*pi/180#\n",
+ "x = exp(u*theta)#\n",
+ "T2=(((1-x)*Tc)-T)/(1-x)#\n",
+ "#T1=T+T2#\n",
+ "T1=T+T2#\n",
+ "t=m/(b*rho)*10**3#\n",
+ "#Let maximum stress be sigmax\n",
+ "b=200#\n",
+ "d=300#\n",
+ "sigmax=(T1/(b*t)+((E*t)/d))#\n",
+ "sigmin=(T2/(b*t))#\n",
+ "print \"T1 is %0.1f N \"%(T1)#\n",
+ "print \"\\nT2 is %0.1f N \"%(T2)#\n",
+ "print \"\\nt is %0.2f mm \"%(t)\n",
+ "print \"\\ntheta is %0.2f rad \"%(theta)\n",
+ "print \"\\nsigmax is %0.2f N/mm**2 \"%(sigmax)#\n",
+ "print \"\\nsigmin is %0.3f N/mm**2 \"%(sigmin)#\n",
+ "#The answer for T1 is miscalculated in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 20-2 - Page 566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "b is 79.64 mm \n",
+ "\n",
+ "L is 5.10 m \n",
+ "\n",
+ "b1 is 79650.98 mm \n",
+ "\n",
+ "h1 is 0.6 mm \n",
+ "\n",
+ "h2 is 1.0 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import degrees,asin,pi,exp,sqrt\n",
+ "P=12*10**3#\n",
+ "d=0.2#\n",
+ "D=0.5#\n",
+ "C=2#\n",
+ "sigmax=2*10**6#\n",
+ "t=8*10**-3#\n",
+ "#Let density be rho\n",
+ "rho=950#\n",
+ "u=0.38#\n",
+ "N=1500#\n",
+ "#Let angle of contact = thetad\n",
+ "thetad=180-(2*degrees(asin((D-d)/(2*C))))#\n",
+ "thetad=thetad*pi/180#\n",
+ "thetaD=(2*pi)-thetad#\n",
+ "v=(2*pi*N*d)/(60*2)#\n",
+ "#Let T1-T2=T\n",
+ "T=P/v#\n",
+ "x=exp(u*thetad)#\n",
+ "b=(T*x)/((1-x)*t*((rho*v**2)-(sigmax)))#\n",
+ "b=b*10**3#\n",
+ "#Let breadth of the pulley be b1\n",
+ "b1=b*10**3+13# #Table 20-3\n",
+ "L=sqrt((4*C**2)-(C*(D-d)**2))+((D*thetaD)+(d*thetad))/2#\n",
+ "# Let pulley crown for d=h1, D=h2\n",
+ "h1=0.6# #Table 20-4\n",
+ "h2=1#\n",
+ "print \"b is %0.2f mm \"%(b)\n",
+ "print \"\\nL is %0.2f m \"%(L)\n",
+ "print \"\\nb1 is %0.2f mm \"%(b1)#\n",
+ "print \"\\nh1 is %0.1f mm \"%(h1)#\n",
+ "print \"\\nh2 is %0.1f mm \"%(h2)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 20-3 - Page 567"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "v is 15.08 m/s \n",
+ "\n",
+ "b is 97.364 mm \n",
+ "\n",
+ "L is 6.0733 m \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import exp, degrees,asin,pi,sqrt\n",
+ "P=11#\n",
+ "N=1440#\n",
+ "n=480#\n",
+ "C=2.4#\n",
+ "#Let power transmitte dfrom high speed belt =P1\n",
+ "P1=0.0118#\n",
+ "V=5#\n",
+ "Ks=1.2#\n",
+ "v=15#\n",
+ "d=v*10**3*60/(2*pi*N)#\n",
+ "d=0.2#\n",
+ "D=N/n*d#\n",
+ "#Let angle of contact =thetaA\n",
+ "thetaA=180-(2*degrees(asin((D-d)/(2*C))))#\n",
+ "thetaA=thetaA*pi/180#\n",
+ "v=(2*pi*N*d)/(60*2)#\n",
+ "#Let the arc of contact correction factor be Ka\n",
+ "Ka=1.05#\n",
+ "Pd=P*Ka*Ks#\n",
+ "#Let corrected load rating=Pc\n",
+ "Pc=P1*v/V#\n",
+ "b=Pd/(Pc*4)#\n",
+ "thetaB=(2*pi)-thetaA#\n",
+ "L=sqrt((4*C**2)-((D-d)**2))+((d*thetaA/2)+(D*thetaB)/2)#\n",
+ "\n",
+ "print \"v is %0.2f m/s \"%(v)\n",
+ "print \"\\nb is %0.3f mm \"%(b)\n",
+ "print \"\\nL is %0.4f m \"%(L)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 20-4 - Page 568"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "V is 16.6 m/s \n",
+ "\n",
+ "b is 80 mm \n",
+ "\n",
+ "L is 8.404 m \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import exp, degrees,asin,pi,sqrt\n",
+ "N=1440#\n",
+ "i=2.5#\n",
+ "C=3600#\n",
+ "#let load factor be LF\n",
+ "LF=1.3#\n",
+ "P=12*10**3#\n",
+ "n=N/i#\n",
+ "V=16#\n",
+ "d=V*10**3*60/(2*pi*N)#\n",
+ "d=220#\n",
+ "D=d*i#\n",
+ "V=2*pi*N*d/(2*60*1000)#\n",
+ "v=5#\n",
+ "#Let power transmitte dfrom high speed belt =P1\n",
+ "P1=0.0118#\n",
+ "#Let LR be the load rating of belt\n",
+ "LR=P1/v*V#\n",
+ "theta=180+(2*degrees(asin((D-d)/(2*C))))#\n",
+ "theta=theta*pi/180#\n",
+ "#Let Arc of contact connection factor be CF\n",
+ "CF=1-(0.03/2)#\n",
+ "Pd=P*LF*CF#\n",
+ "b=Pd/(LR*5)#\n",
+ "b=80#\n",
+ "L=sqrt((4*C**2)-(D+d)**2)+(theta*(D+d)/2)#\n",
+ "L=L*10**-3#\n",
+ "print \"V is %0.1f m/s \"%(V)\n",
+ "print \"\\nb is %0.0f mm \"%(b)\n",
+ "print \"\\nL is %0.3f m \"%(L)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 20-5 - Page 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "V is 16.59 m/s \n",
+ "\n",
+ "Pd is 197.77 KW \n",
+ "\n",
+ "P is 149.8 KW \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import exp, degrees,asin,pi,sqrt\n",
+ "i=3.6#\n",
+ "N=1440#\n",
+ "d=220#\n",
+ "Ks=1.2#\n",
+ "Kf=1.1#\n",
+ "C=5000#\n",
+ "u=0.8#\n",
+ "D=i*d#\n",
+ "#From table 20-7, the following data is available\n",
+ "t=5#\n",
+ "b=120#\n",
+ "Fa=30.64#\n",
+ "#let weight density be w\n",
+ "w=0.106*10**5#\n",
+ "Cp=0.71# #From table 20-6\n",
+ "Cv=1#\n",
+ "T1=Fa*b*t*Cp*Cv#\n",
+ "m=w*b*t/10**6#\n",
+ "V=2*pi*N*d/(2*60*1000)#\n",
+ "Tc=m*V**2/9.81#\n",
+ "theta=180+(2*degrees(asin((D-d)/(2*C))))#\n",
+ "theta=theta*pi/180#\n",
+ "x=u*theta#\n",
+ "T2=Tc+((T1-Tc)/exp(x))#\n",
+ "Pd=(T1-T2)*V*10**-3#\n",
+ "P=Pd/(Ks*Kf)#\n",
+ "print \"V is %0.2f m/s \"%(V)#\n",
+ "print \"\\nPd is %0.2f KW \"%(Pd)#\n",
+ "print \"\\nP is %0.1f KW \"%(P)#\n",
+ "#The value of T2 is calculated incorrectly, therefore there is a difference in the values of Pd and P."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 20-6 - Page 570"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "V is 10.05 m/s \n",
+ "\n",
+ "b is 86.537 mm \n",
+ "\n",
+ "L is 10.049 m \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import exp, degrees,asin,pi,sqrt\n",
+ "i=2.5#\n",
+ "C=4500#\n",
+ "N=960#\n",
+ "P=20*10**3#\n",
+ "Ks=1.15#\n",
+ "Kf=1.10#\n",
+ "t=8#\n",
+ "#let weight density be w\n",
+ "w=0.110*10**5#\n",
+ "m=w*t/10**6#\n",
+ "Fa=8.75#\n",
+ "d=200#\n",
+ "D=i*d#\n",
+ "u=0.4#\n",
+ "V=2*pi*N*d/(2*60*1000)#\n",
+ "Pd=P*Ks*Kf#\n",
+ "Cp=1#\n",
+ "Cv=0.6#\n",
+ "#to find b\n",
+ "T1=Fa*t*Cp*Cv#\n",
+ "Tc=m*V**2/9.81#\n",
+ "theta=180-(2*degrees(asin((D-d)/(2*C))))\n",
+ "theta=theta*pi/180#\n",
+ "x=u*theta#\n",
+ "T2=Tc+((T1-Tc)/exp(x))#\n",
+ "T=Pd/V#\n",
+ "b=T/(T1-T2)#\n",
+ "#b=90#\n",
+ "L=sqrt((4*C**2)-(D+d)**2)+(theta*(D+d)/2)#\n",
+ "L=L*10**-3#\n",
+ "print \"V is %0.2f m/s \"%(V)\n",
+ "print \"\\nb is %0.3f mm \"%(b)\n",
+ "print \"\\nL is %0.3f m \"%(L)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 20-7 - Page 571"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tc is 186 N \n",
+ "\n",
+ "T1 is 541.46 N \n",
+ "\n",
+ "T2 is 292.78 N \n",
+ "\n",
+ "Kf is 1.25 \n",
+ "\n",
+ "Pd is 4.5 KW \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import exp, degrees,asin,pi,sqrt\n",
+ "b=160#\n",
+ "t=7#\n",
+ "P=3*10**3#\n",
+ "Ks=1.2#\n",
+ "d=160#\n",
+ "N=1440#\n",
+ "D=480#\n",
+ "C=2400#\n",
+ "w=11200#\n",
+ "u=0.4#\n",
+ "Fa=7.2#\n",
+ "m=w*b*t/10**6#\n",
+ "V=2*pi*N*d/(2*60*1000)#\n",
+ "Tc=m*V**2/9.81#\n",
+ "Cp=0.6# #from table 20-6\n",
+ "Cv=0.98# #from table 20-7\n",
+ "Ta=Fa*b*Cp*Cv#\n",
+ "T=P/V#\n",
+ "theta=180-(2*degrees(asin((D-d)/(2*C))))\n",
+ "theta=theta*pi/180#\n",
+ "x=u*theta#\n",
+ "#T2=Tc+((T1-Tc)/exp(x))#\n",
+ "T2=(T+((exp(x)*Tc)-Tc))/(exp(x)-1)#\n",
+ "T1=T+T2#\n",
+ "Kf=Ta/T1#\n",
+ "Pd=P*Ks*Kf#\n",
+ "Pd=Pd*10**-3#\n",
+ "print \"Tc is %0.0f N \"%(Tc)#\n",
+ "print \"\\nT1 is %0.2f N \"%(T1)#\n",
+ "print \"\\nT2 is %0.2f N \"%(T2)#\n",
+ "print \"\\nKf is %0.2f \"%(Kf)#\n",
+ "print \"\\nPd is %0.1f KW \"%(Pd)#\n",
+ "#The difference in values of T1 and T2 is due to rounding-off of values.\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.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch21_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch21_2.ipynb
new file mode 100644
index 00000000..269495fb
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch21_2.ipynb
@@ -0,0 +1,350 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:21 V belt drive"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 21-1 - Page 579"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tc is 140.5 N \n",
+ "\n",
+ "T1 is 483 N \n",
+ "\n",
+ "T2 is 288.2 N \n",
+ "\n",
+ "P2 is 4589 W \n",
+ "\n",
+ "n is 3 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, asin, degrees, exp\n",
+ "P1=12*10**3#\n",
+ "d=0.3#\n",
+ "D=0.9#\n",
+ "C=0.9#\n",
+ "A=230*10**-6#\n",
+ "#density is rho\n",
+ "rho=1100#\n",
+ "N=1500#\n",
+ "#Maximum stress is sig\n",
+ "sig=2.1*10**6#\n",
+ "#semi groove angle is b\n",
+ "b=20*pi/180#\n",
+ "u=0.22#\n",
+ "m=rho*A#\n",
+ "v=2*pi*N*d/(60*2)#\n",
+ "Tc=m*v**2#\n",
+ "T1=A*sig#\n",
+ "#wrap angle is thetaA\n",
+ "ang=(D-d)/(2*C)#\n",
+ "thetaA=pi/180*(180-(2*degrees(asin(ang))))\n",
+ "thetaB=((2*pi)-thetaA)#\n",
+ "x=u*thetaB#\n",
+ "T2=Tc+((T1-Tc)/exp(x))#\n",
+ "P2=(T1-T2)*v#\n",
+ "n=P1/P2#\n",
+ "n=3# #(rounding off to nearest whole number)\n",
+ "print \"Tc is %0.1f N \"%(Tc)#\n",
+ "print \"\\nT1 is %0.0f N \"%(T1)#\n",
+ "print \"\\nT2 is %0.1f N \"%(T2)#\n",
+ "print \"\\nP2 is %0.0f W \"%(P2)#\n",
+ "print \"\\nn is %0.0f \"%(n)#\n",
+ " \n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 21-2 - Page 579"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tc is 107.15 N \n",
+ "\n",
+ "T1 is 3290 N \n",
+ "\n",
+ "T2 is 98.93 N \n",
+ "\n",
+ "Lp is 3.239 m \n",
+ "\n",
+ "v is 74.15 m/s \n",
+ "\n",
+ "The designation of the belt is B-3251-45 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, asin, degrees, exp,sin\n",
+ "D=0.6#\n",
+ "d=0.3#\n",
+ "C=0.9#\n",
+ "m=0.193#\n",
+ "n=2#\n",
+ "N=1500#\n",
+ "u=0.3#\n",
+ "v=2*pi*N/60*d/2#\n",
+ "P=150*10**3#\n",
+ "Tc=m*v**2#\n",
+ "#let T1-T2=T\n",
+ "T=P/(n*v)#\n",
+ "thetaA=pi/180*(180-(2*degrees(asin((D-d)/(2*C)))))#\n",
+ "thetaB=((2*pi)-thetaA)#\n",
+ "#Groove angle=b\n",
+ "b=17.5*pi/180#\n",
+ "x=u*thetaA/sin(b)#\n",
+ "y=exp(x)#\n",
+ "c=(Tc*(1-y))#\n",
+ "T2=(T+(Tc*(1-y)))/(y-1)#\n",
+ "#T2=(T-y)/Tc#\n",
+ "T1=T+Tc#\n",
+ "Lp=2*sqrt((C**2)-((D-d)/2)**2)+(thetaA*d/2)+(thetaB*D/2)#\n",
+ "v=sqrt(T/(3*m))#\n",
+ "print \"Tc is %0.2f N \"%(Tc)#\n",
+ "print \"\\nT1 is %0.0f N \"%(T1)#\n",
+ "print \"\\nT2 is %0.2f N \"%(T2)#\n",
+ "print \"\\nLp is %0.3f m \"%(Lp)#\n",
+ "print \"\\nv is %0.2f m/s \"%(v)#\n",
+ "print \"\\nThe designation of the belt is B-3251-45 \"#\n",
+ "#The difference in values of T1 and T2 is due to rounding-off of values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 21-3 - Page 580"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tc is 59.97 N \n",
+ "\n",
+ "T1 is 520.7 N \n",
+ "\n",
+ "T2 is 102.7 N \n",
+ "\n",
+ "n is 4.0 \n",
+ "\n",
+ "Lp is 3.410 m \n",
+ "\n",
+ "The designation of the belt is C-3414-47 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, asin, degrees, exp,tan\n",
+ "C=1#\n",
+ "m=0.35#\n",
+ "d=0.25#\n",
+ "P=22*10**3#\n",
+ "#Let the smaller pulley dia be n\n",
+ "#Let the larger pulley dia be N\n",
+ "n=1000#\n",
+ "N=400#\n",
+ "D=d*n/N#\n",
+ "v=2*pi*n*d/(60*2)#\n",
+ "Tc=m*v**2#\n",
+ "topwidth=22#\n",
+ "h=14#\n",
+ "bottomwidth=topwidth-(2*h*tan(20*pi/180))#\n",
+ "A=(topwidth+bottomwidth)/2*h#\n",
+ "#let allowable tension be Ta\n",
+ "Ta=2.2#\n",
+ "T1=A*Ta#\n",
+ "u=0.28#\n",
+ "thetaA=pi/180*(180-(2*degrees(asin((D-d)/(2*C)))))\n",
+ "thetaB=((2*pi)-thetaA)#\n",
+ "#Groove angle=b=19\n",
+ "b=19*pi/180#\n",
+ "x=u*thetaA/sin(b)#\n",
+ "T2=Tc+((T1-Tc)/exp(x))#\n",
+ "n=P/((T1-T2)*v)#\n",
+ "Lp=2*sqrt((C**2)-((D-d)/2)**2)+(thetaA*d/2)+(thetaB*D/2)#\n",
+ "print \"Tc is %0.2f N \"%(Tc)#\n",
+ "print \"\\nT1 is %0.1f N \"%(T1)#\n",
+ "print \"\\nT2 is %0.1f N \"%(T2)#\n",
+ "print \"\\nn is %0.1f \"%(n)#\n",
+ "print \"\\nLp is %0.3f m \"%(Lp)#\n",
+ "print \"\\nThe designation of the belt is C-3414-47 \"#\n",
+ " \n",
+ "# difference in value of Lp is due to rounding-off the values of thetaA and thetaB."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 21-4 - Page 580"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "D is 600.0 mm \n",
+ "\n",
+ "C is 1000.0 mm \n",
+ "\n",
+ "n is 3.000 \n",
+ "\n",
+ "Li is 3252 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "P=12*10**3#\n",
+ "Ks=1.1#\n",
+ "Pd=12*10**3*Ks#\n",
+ "N=1440#\n",
+ "B=17#\n",
+ "t=11#\n",
+ "d=200#\n",
+ "i=3#\n",
+ "D=i*d#\n",
+ "C=1000#\n",
+ "# since angle of contact theta is very small\n",
+ "theta=(D-d)/C#\n",
+ "theta=theta*180/pi#\n",
+ "Kc=0.8#\n",
+ "Lp=(2*C)+(pi/2*(D+d))+(((D-d)**2)/(4*C))#\n",
+ "Li=Lp-45#\n",
+ "Ki=1.1#\n",
+ "#let number of v-belts required = n\n",
+ "#let the KW rating be KWR\n",
+ "KWR=5.23#\n",
+ "n=(P*Ks)/(KWR*Ks*Ki*10**3)#\n",
+ "n=3#\n",
+ "print \"D is %0.1f mm \"%(D)#\n",
+ "print \"\\nC is %0.1f mm \"%(C)#\n",
+ "print \"\\nn is %0.3f \"%(n)#\n",
+ "print \"\\nLi is %0.0f mm \"%(Li)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 21-5 - Page 581"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " C is 1.0603 m \n",
+ "\n",
+ " Pd is 30 KW \n",
+ "\n",
+ " n is 4.01 KW \n"
+ ]
+ }
+ ],
+ "source": [
+ "from sympy import symbols, solve\n",
+ "from math import pi\n",
+ "N=800;\n",
+ "P=20;\n",
+ "i=2.5;\n",
+ "Ks=1.5; #(from table for 3-5 hrs/day)\n",
+ "Pd=P*Ks;\n",
+ "d=250;\n",
+ "D=i*d;\n",
+ "C=1.6*D;\n",
+ "Lp=(2*C)+(pi*(D+d)/2)+((D-d)**2)/(4*C);\n",
+ "Li=Lp+74;\n",
+ "Listd=3454;\n",
+ "Lp=Listd+74;\n",
+ "p=[1, -1.0768, 0.0175];\n",
+ "P = symbols('P')\n",
+ "expr = P**2*p[0]+P*p[1]+p[2]\n",
+ "z = solve(expr, P)[1]\n",
+ "KW=9.4;\n",
+ "Kc=0.795;\n",
+ "K1=1;\n",
+ "n=Pd/(KW*Kc*K1);\n",
+ "print \" C is %0.4f m \"%(z)\n",
+ "print \"\\n Pd is %0.0f KW \"%(Pd)\n",
+ "print \"\\n n is %0.2f KW \"%(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.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch22_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch22_2.ipynb
new file mode 100644
index 00000000..b14d854b
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch22_2.ipynb
@@ -0,0 +1,606 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:22 Friction clutches"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 22-1 - Page 588"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "The force is 1759.3 N\n",
+ "\n",
+ "The Torque is 44.33 Nm\n",
+ "\n",
+ "The Power is 1393 W\n",
+ "\n",
+ "The angular acceleration is 6.16 rad/sec**2\n",
+ "\n",
+ "The time taken is 5.1 sec\n",
+ "\n",
+ "The energy is 3553.06 Nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi\n",
+ "u=0.28 #(coefficient of friction)\n",
+ "N=300 #(Engine rpm)\n",
+ "I=7.2 \n",
+ "Pmax= 0.1# \n",
+ "R1=70#\n",
+ "R2=110#\n",
+ "n=2# #(Both sides of the plate are effective)\n",
+ "#Using Uniform Wear Theory\n",
+ "#Axial Force W\n",
+ "W=n*pi*Pmax*R1*(R2-R1)#\n",
+ "#Frictional Torque Tf\n",
+ "Tf=u*W*(R1+R2)/2*(10**-3)#\n",
+ "w=2*pi*N/60#\n",
+ "#Power P\n",
+ "P=Tf*w#\n",
+ "#Torque = Mass moment of inertia*angular acceleration\n",
+ "a=Tf/I#\n",
+ "t=w/a# \n",
+ "#Angle turned by driving shaft theta1 through which slipping takes place\n",
+ "theta1=w*t#\n",
+ "#angle turned by driven shaft theta2\n",
+ "theta2=a*(t**2)/2#\n",
+ "E=Tf*(theta1-theta2)#\n",
+ "print \"\\nThe force is %0.1f N\"%(W)#\n",
+ "print \"\\nThe Torque is %0.2f Nm\"%(Tf)#\n",
+ "print \"\\nThe Power is %0.0f W\"%(P)#\n",
+ "print \"\\nThe angular acceleration is %0.2f rad/sec**2\"%(a)#\n",
+ "print \"\\nThe time taken is %0.1f sec\"%(t)#\n",
+ "print \"\\nThe energy is %0.2f Nm\"%(E)#\n",
+ "\n",
+ "#The difference in the answer of energy 'E' is due to rounding-off of values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 22-2 - Page 589"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "The Torque is 254.65 Nm\n",
+ "\n",
+ "The width is 50 mm\n",
+ "\n",
+ "The force is 6283 N\n",
+ "\n",
+ "The Axial force per spring is 800 N\n",
+ "\n",
+ "The Spring stiffness is 80 N/mm\n",
+ "\n",
+ "The Spring wire diameter is 11 mm\n",
+ "\n",
+ "The Mean coil diameter is 66 mm\n",
+ "\n",
+ "The Free length is 110 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "#Power P\n",
+ "P=80*10**3# #(Watt)\n",
+ "N=3000# #(Engine rpm)\n",
+ "w=2*pi*3*10**3/60\n",
+ "Tf=8*10**4/w#\n",
+ "Rm=100##(mm)\n",
+ "p=0.2 #N/mm**2\n",
+ "u=0.22 \n",
+ "# let width b= (R1-R2). \n",
+ "#Axial force W=2*pi*Rm*b*p\n",
+ "#Torque T=u*W*Rm\n",
+ "b=Tf/(u*2*pi*(Rm**2)*p)#\n",
+ "b=50# \n",
+ "R2=Rm+b#\n",
+ "R1=Rm-b#\n",
+ "Di=2*R1# #inner diameter\n",
+ "W=2*pi*Rm*b*p#\n",
+ "n=8# #n is number of springs\n",
+ "#Axial force per spring W1\n",
+ "W1=W/n#\n",
+ "W1=W1+15#\n",
+ "#axial deflection del\n",
+ "Del=10# \n",
+ "#stiffness k\n",
+ "k=W1/Del#\n",
+ "# Spring index C\n",
+ "C=6#\n",
+ "#number of coils n1\n",
+ "n1=6# #Assumption\n",
+ "d=k*n*n1*(C**3)/(80*10**3)#\n",
+ "d=11# # Rounding off to nearest standard value\n",
+ "D=C*d#\n",
+ "clearance=2#\n",
+ "FL=((n1+2)*d)+(2*Del)+clearance# # two end coils, therefore (2*del)\n",
+ "\n",
+ "print \"\\nThe Torque is %0.2f Nm\"%(Tf)#\n",
+ "print \"\\nThe width is %0.0f mm\"%(b)#\n",
+ "print \"\\nThe force is %0.0f N\"%(W)#\n",
+ "print \"\\nThe Axial force per spring is %0.0f N\"%(W1)#\n",
+ "print \"\\nThe Spring stiffness is %0.0f N/mm\"%(k)#\n",
+ "print \"\\nThe Spring wire diameter is %0.0f mm\"%(d)#\n",
+ "print \"\\nThe Mean coil diameter is %0.0f mm\"%(D)#\n",
+ "print \"\\nThe Free length is %0.0f mm\"%(FL)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 22-3 - Page 589"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "The Speed factor is 1.3 \n",
+ "\n",
+ "The clutch poweris 123 KW\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Power P\n",
+ "P=40*10**3 #Watt\n",
+ "n1=100# #rpm\n",
+ "n2=400# #rpm\n",
+ "#Speed factor Ks\n",
+ "Ks=0.9+0.001*n2#\n",
+ "#Clutch power Pc\n",
+ "Pc=P*n2/(n1*Ks)*10**-3#\n",
+ "print \"\\nThe Speed factor is %0.1f \"%(Ks)#\n",
+ "print \"\\nThe clutch poweris %0.0f KW\"%(Pc)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 22-4 - Page 590"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEPCAYAAABRHfM8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X2UXGWV7/HvJiG6eIntC1c0oI2QQUCwEYx4gTWNyXBb\nmGWSyzgkF3EaFHMhcQwvA4IOIGsYDQqDaAjx5SYXGQ3Im+giBhAqojcEgqkEISGJ0kMSlIUgaBwd\nE3vfP041pyiqu09V13n/fdbqlXqqzql+sld3PV17n2eXuTsiIiKj2S3tCYiISD5owRARkUi0YIiI\nSCRaMEREJBItGCIiEokWDBERiSTWBcPM+sxso5ltNrOLRjjuvWa2y8xOafVcERFJRmwLhpmNA74K\n9AGHArPN7JBhjlsA/LDVc0VEJDlxvsOYAmxx9wF33wksA6Y3Oe6TwK3Ac22cKyIiCYlzwZgEbK0b\nb6vd9zIzm0SwECyq3TW07XzUc0VEJFlxLhhReo5cC3zag/4kVvuKeq6IiCRofIzPvR3Yv268P8E7\nhXpHAcvMDOBNwAfNbGfEczEzLSwiIm1wdxv9qFeK8x3GGmCymXWb2QTgVOCu+gPc/R3ufoC7H0BQ\nxzjb3e+Kcm7dc+jLncsuuyz1OWTlS7FQLBSLkb/aFds7DHffZWbzgBXAOOCb7r7BzObUHl/c6rlx\nzbUIBgYG0p5CZigWIcUipFiMXZwpKdx9ObC84b6mC4W7nzHauSIikh7t9C6I/v7+tKeQGYpFSLEI\nKRZjZ2PJZ6XNzDzP8xcRSYOZ4RkrekuCKpVK2lPIDMUipFiEFIuxi7WGISLx+cUv4Hvfgz32gNe/\nHrq6gn+Hbnd1pT1DKRqlpERyZs0auOoqeOABOOUUcIff/hZefDH4d+jrpZfg+ONh2TJ485vTnrVk\nSbspKb3DEMkBd1ixIlgotmyB886Db34T9t57+HP+8he44gp473vh1lthypTk5ivFpBpGQSg/GypS\nLHbuhJtugne/Gy68EM48M0hFzZ8/8mIBMG4cnHBCheuug7/9W1iyJJk5Z1WRfi7SoncYIhm0Ywd8\n4xtwzTUweTJ88Ytw4olgLScRYMYMOPjg4N9HH4V/+zfYfffOz1mKTzUMkQx59lm47jpYvBimToV/\n+ic4+ujOPPdLL8FHPhL8+93vqq5RZrqsViTHNm2COXPgkEOC4vXq1XDzzZ1bLABe97rgqqoTTgjq\nGg8/3LnnlnLQglEQys+G8hSL1auDK52OOw7e8hZ48klYuBAOPLAzz98Yi912g899jlLWNfL0c5FV\nqmGIJGxwEO6+O6hLPP00nH8+3Hgj7LlncnNQXUPaoRqGSEL+/Gf49reDheI1rwmuevq7v4PxKf7Z\nprpGOamGIZJRv/sdfOlL8I53BAvGl78c/FU/a1a6iwWoriGt0YJREMrPhrISi2eegU9/Gg44AH72\nM/j+9+Gee2DatPYuj21HlFiUpa6RlZ+LPNOCIdJhGzbAxz4G73oX/Od/Bq08vv1tOPLItGc2shkz\nYOVK+MIXYN68YNOgSD3VMEQ65Kc/DVp3PPRQ8IJ7zjnwxjemPavWqa5RfKphiKRgcDCoARx7LHz0\no9DXB089Bf/8z/lcLEB1DRmeFoyCUH42lEQs/uu/guZ/hx4K//IvQW+nTZvg7LODduNZ0W4siljX\n0O/I2MW6YJhZn5ltNLPNZnZRk8enm9k6M1trZo+a2QfqHhsws/W1x/Q3jmTCiy/CggVBIfu22+CG\nG4K/wD/84aDZX9GoriH1YqthmNk44ElgGrAdeASY7e4b6o7Z093/ULt9OHCHux9UGz8FHOXuL4zw\nPVTDkERs2wbXXhv8pX3yyXDBBXDEEWnPKjmqaxRLFmsYU4At7j7g7juBZcD0+gOGFouavYDfNDxH\nQhcfijT3859Df3+wOAwOwtq1wa7sMi0WoLqGBOJcMCYBW+vG22r3vYKZzTCzDcBy4B/rHnLgPjNb\nY2ZnxTjPQlB+NjTWWLjDj38c5O7/5m/gr/4q+AyKa66Bt72tM3NMSid/LvJe19DvyNjFuc80Uq7I\n3e8E7jSz44FvAQfXHjrW3X9lZvsA95rZRnd/MKa5ivCXv8CddwatO154IWgtfuut8NrXpj2zbFEf\nqvKKc8HYDuxfN96f4F1GU+7+oJmNN7M3uvvz7v6r2v3PmdkdBCmuVy0Y/f39dHd3A9DV1UVPTw+9\nvb1A+BdFGca9vb2Zmk+exu97Xy833ghXXFHhda+DK6/s5UMfggcfrPDQQ+nPb6zjIZ18/kMOgauv\nrnDllTB1ai/f/S5s2JCN/+9w46H7sjKfJMeVSoWlS5cCvPx62Y44i97jCYreU4FngId5ddH7QOCX\n7u5m9h7gu+5+oJntAYxz99+b2Z7APcDn3P2ehu+hore07YUXYNEi+MpXgrz8hRcGbcaTattRBIOD\nQZpqyRJ9bnieZK7o7e67gHnACuAJ4GZ332Bmc8xsTu2wU4DHzGwt8GVgVu3+fYEHzawKrAZ+0LhY\nyCs1/jVZZqPF4umn4dxz4aCDYMsW+NGPgj5Pxx9fvMUi7p+L3XJU19DvyNjF2ivT3ZcTFLPr71tc\nd/sq4Kom5/0S6IlzblI+69YF9Ynly+HMM2H9ethvv7RnVQyqa5SDeklJobnDAw8EPZ7Wrw92ZM+Z\nE1wmKp2n/Rr5kLmUlEiadu2CW24JahNz58Lf/33Q4+nCC7VYxEn7NYpNC0ZBKD8b+NOfYP78Cgcf\nHOTVL70UHn88SEG95jVpzy55afxcZLWuod+RsdNnekthDA7C7NlBUfvGG4MOspKe+rrGz34WbHxU\nXSPfVMOQwrjkEvjJT+C++2DChLRnI0NU18ge1TCk1L71LVi2LOggq8UiWxrrGo88kvaMpF1aMAqi\nzPnZVavg/PPhrrtgn33KHYtGWYlFfV3j5JOhtuk4UVmJRZ6phiG59h//AaecEhRW3/WutGcjo2nc\nr6G6Rr6ohiG5tWNH+NGo55+f9mykFaprpEs1DCmVwUE4/XQ4+mg477y0ZyOtUl0jn7RgFETZ8rOf\n/Sw8/3zQPLCx/1PZYjGSLMci6bpGlmORF6phSO4MXRG1erWuiCoC1TXyQzUMyZVVq2D6dLj/fhW5\ni0Z1jeSohiGFpyuiik11jezTglEQRc/P7tgBH/pQcDXUySePfGzRY9GKvMUizrpG3mKRRaphSObp\niqjyUV0jm1TDkMxTj6jyUl0jHqphSCGpR1S5qa6RLVowCqKI+dnGHlFRFTEW7SpCLDpV1yhCLNIW\n64JhZn1mttHMNpvZRU0en25m68xsrZk9amYfiHquFJuuiJJGM2bAypXw+c/DJz8JO3emPaPyia2G\nYWbjgCeBacB24BFgtrtvqDtmT3f/Q+324cAd7n5QlHNr56iGUUDqESUjUV1j7LJYw5gCbHH3AXff\nCSwDptcfMLRY1OwF/CbquVJMuiJKRqO6RnriXDAmAVvrxttq972Cmc0wsw3AcuAfWzlXQkXJz47U\nIyqqosSiE4oai3bqGkWNRZLi3IcRKVfk7ncCd5rZ8cC3zOydrXyT/v5+uru7Aejq6qKnp4fe3l4g\n/AHROB/jSy6psGQJrF/fy4QJ7T/fkLT/P1kYV6vVTM2n0+OuLli5spcZM+B736swdy5Mm9b8+Gq1\nmvp80xpXKhWW1lbVodfLdsRZwzgGuNzd+2rji4FBd18wwjm/IEhHTY5yrmoYxaEeUTIWqmu0Jos1\njDXAZDPrNrMJwKnAXfUHmNmBZkHiwczeA+Duz0c5V4pDV0TJWKmukYzYFgx33wXMA1YATwA3u/sG\nM5tjZnNqh50CPGZma4EvA7NGOjeuuRZBYzomL1rpERVVXmMRhzLFYrdR6hplikVcYu0l5e7LCYrZ\n9fctrrt9FXBV1HOlWHRFlMRBfajio15Skhr1iJI4qa4xvCzWMESGpR5RErfGusa6dWnPKP+0YBRE\nnvKz7faIiipPsYhb2WMxVNf4zGfgH/6hkvZ0ck8LhiRKV0RJGs48E7ZuhccfT3sm+aYahiRGPaIk\nTZdfDs89BwsXpj2T9LVbw9CCIYkYHAzeWbzhDfCNb7Tf9kOkXdu3w+GHw8AATJyY9mzSpaJ3yWU9\nV92JHlFRZT0WSVIsQps3V5g6FW66Ke2Z5JcWDImdroiSrJg7N0hJKTHRHqWkJFbqESVZ4h78HC5c\nCLUefaWklJRkjq6Ikqwxg3POgeuvT3sm+aQFoyCylquOo0dUVFmLRZoUi9BQLE4/Pegu8Mwz6c4n\nj7RgSMepR5Rk2cSJMGsWfO1rac8kf1TDkI5TjyjJuscfhxNPDC6xLWNjQtUwJBN0RZTkwWGHweTJ\ncOedac8kX7RgFEQWctVx94iKKguxyArFItQYi3PO0a7vVmnBkI54+mldESX5MnMmbNqk/lKtUA1D\nxmzHDjjuuKDQrR5Rkidl7S+lXlKSCvWIkjwra38pFb1LLq1cdZI9oqJS3j6kWISaxWLSJNRfqgWx\nLhhm1mdmG81ss5ld1OTx08xsnZmtN7OfmtkRdY8N1O5fa2YPxzlPac9NN+mKKMk/9ZeKLraUlJmN\nA54EpgHbgUeA2e6+oe6Y9wNPuPtLZtYHXO7ux9Qeewo4yt1fGOF7KCWVEvWIkqIoY3+pLKakpgBb\n3H3A3XcCy4Dp9Qe4+yp3f6k2XA3s1/AcGUlySD1dESVFov5S0cW5YEwCttaNt9XuG87HgLvrxg7c\nZ2ZrzOysGOZXKEnlqtPsERWV8vYhxSI0UizUXyqa8TE+d+RckZmdAJwJHFt397Hu/isz2we418w2\nuvuDjef29/fT3d0NQFdXFz09PfTW3lcO/YBo3Jnx/fdXuPRSOOqoXs47L/35DDcekpX5pDmuVquZ\nmk+a42q1OuzjEyfC8cdXuOQSWLo0G/Pt5LhSqbB06VKAl18v2xFnDeMYgppEX218MTDo7gsajjsC\nuB3oc/ctwzzXZcAOd7+64X7VMBKkHlFSZGXqL5XFGsYaYLKZdZvZBOBU4K76A8zsbQSLxUfqFwsz\n28PM9q7d3hM4EXgsxrnKKHRFlBSd+kuNLrYFw913AfOAFcATwM3uvsHM5pjZnNphlwKvBxY1XD67\nL/CgmVUJiuE/cPd74pprETSmYzpp1aqgTXnaPaKiijMWeaNYhKLEQv2lRhZnDQN3Xw4sb7hvcd3t\njwMfb3LeL4GeOOcm0eiKKCmTmTNh/vwgPXXYYWnPJnvUGkSGpR5RUkZl6C+lXlLSUeoRJWVVhv5S\nWSx6S4I6navOYo+oqJS3DykWoaixUH+p4WnBkFfRFVFSduov1ZxSUvIKQz2iHnhART8pr6L3l1JK\nSsas/oooLRZSZuov1ZwWjIIYa656qEfUBRdkt0dUVMrbhxSLUKuxUH+pV9OCIQwOBr8cRx0F556b\n9mxEsmHiRJg1C772tbRnkh2qYYh6RIkMo6j9pVTDkLboiiiR4am/1CtpwSiIdnLVQz2ivv/9fPSI\nikp5+5BiEWo3FuovFdKCUVK6IkokmpkzYdOmID1VdqphlNBQj6iPfjR4hyEiIytafyn1kpJI1CNK\npHVF6y+lonfJRc3P5rlHVFTK24cUi9BYYqH+UgEtGCWiK6JE2qf+UkpJlYZ6RImMTZH6SyklJcPS\nFVEiY6f+UlowCmO4/GyRekRFpbx9SLEIdSIWZe8vFeuCYWZ9ZrbRzDab2UVNHj/NzNaZ2Xoz+6mZ\nHRH1XBmdekSJdFbZ+0sNW8Mws2+5++lmNt/dr235ic3GAU8C04DtwCPAbHffUHfM+4En3P0lM+sD\nLnf3Y6KcWztfNYwRqEeUSOcVob9UHDWMo8zsrcCZZvaGxq8Izz0F2OLuA+6+E1gGTK8/wN1XuftL\nteFqYL+o58rIdEWUSDzK3F9qpAXjBuBHwMHAow1fayI89yRga914W+2+4XwMuLvNc0uvPj9b1B5R\nUSlvH1IsQp2MRVn7S40f4bEz3P0QM7vB3f93G88dOVdkZicAZwLHtnpuf38/3d3dAHR1ddHT00Nv\n7Zq3oR+QMo2ffRbOPbeXJUvguecqVCrZml8S4yFZmU+a42q1mqn5pDmuVqsde76ZM+HssyssWQJn\nnJGN/99I40qlwtKlSwFefr1sx0g1jLXufmTbT2x2DEFNoq82vhgYdPcFDccdAdwO9Ln7lhbPVQ2j\njnpEiSQnz/2lOt5Lysy2AdcAzZ7U3f2aUSY0nqBwPRV4BniYVxe93wbcD3zE3R9q5dzacVowatQj\nSiRZee4vFUfRexywN7BXk6+9R3tid98FzANWAE8AN7v7BjObY2ZzaoddCrweWGRma83s4ZHObfU/\nVyann14pfI+oqBpTU2WmWIQ6HYsy9pcaqYbxa3f/3Fie3N2XA8sb7ltcd/vjwMejnivN3X473H8/\nrF+vK6JEkjR3bvB19tnl+EMtthpGEpSSgpdegkMPhZtvDuoXIpKcvPaXiqOG8UZ3f37MM4uRFozg\nr5udO8u781QkbQsXwsqVcMstac8kuo7XMLK+WAg89FCQjvrCF5SrrqdYhBSLUFyxKFN/KTUfzKmd\nO2HOHLj66uDKKBFJR5n6S+nzMHLqi1+Ee++FFSvKUWwTybK89ZfS52GUyMAALFigS2hFsqIs/aW0\nYOSMe1DoPu88OPDA8H7lqkOKRUixCMUdizL0l9KCkTO33hq8w7jggrRnIiL1Zs6ETZuC9FRRqYaR\nI9pzIZJteekv1fF9GHlQtgVDey5Esi0v/aVU9C64+j0XzShXHVIsQopFKIlYFL2/lBaMHNCeC5H8\nmDs3SEkVMfmhlFQOaM+FSH7kob+UahgFNTAARx8Nq1e/8jJaEcmurPeXUg2jgIbbc9GMctUhxSKk\nWISSjEVR+0tpwcgw7bkQyaei9pdSSiqjtOdCJN+y3F9KKamCueQSOPlkLRYieVXE/lJaMDJotD0X\nzShXHVIsQopFKI1YFK2/VKwLhpn1mdlGM9tsZhc1efydZrbKzP5kZuc3PDZgZuvNbK2ZPRznPLNE\ney5EiqNo/aViq2GY2TjgSWAasB14BJjt7hvqjtkHeDswA/itu19d99hTwFHu/sII36NwNQztuRAp\nliz2l8piDWMKsMXdB9x9J7AMmF5/gLs/5+5rgJ3DPEepXjL1ORcixXPWWfCd78Dvfpf2TMYuzgVj\nErC1brytdl9UDtxnZmvM7KyOziyDWtlz0Yxy1SHFIqRYhNKKRZH6S42P8bnHmis61t1/VUtb3Wtm\nG939wcaD+vv76e7uBqCrq4uenh56a/vxh35A8jC+9VZ4/PEK8+cDpD+fPI+HZGU+aY6r1Wqm5pPm\nuFqtpvb9586F/v4KhxwCJ5yQ/PevVCosXboU4OXXy3bEWcM4Brjc3ftq44uBQXdf0OTYy4Ad9TWM\nKI8XpYahPRcixZa1/lJZrGGsASabWbeZTQBOBe4a5thXTNzM9jCzvWu39wROBB6Lca6p0p4LkWIz\nCy6xvf76tGcyNrEtGO6+C5gHrACeAG529w1mNsfM5gCY2b5mthU4F/ismT1tZnsB+wIPmlkVWA38\nwN3viWuuaWpnz0UzjemYMlMsQopFKO1YFKG/VJw1DNx9ObC84b7Fdbd/Dezf5NQdQE+cc8sC7bkQ\nKY/6/lKXX572bNqjXlIp0p4LkXLJSn+pLNYwZATacyFSPnnvL6UFIwVj3XPRTNr52SxRLEKKRSgr\nschzfyktGCnQ51yIlFee+0uphpEw7bkQkbT7S+kzvXNi7tzg6qiifRKXiES3fTscfniQaZg4Mfnv\nr6J3DnRqz0UzWcnPZoFiEVIsQlmKRV77S2nBSIj2XIhIvblzg5RUnpIkSkklRHsuRKRemv2lVMPI\nsIEBOPpoWL26c5fRikj+LVwIK1fCLbck+31Vw8ioOPZcNJOl/GzaFIuQYhHKYizy1l9KC0bMtOdC\nRIZT318qD5SSipH2XIjIaNLoL6WUVAbpcy5EZDR56i+lBSMmce65aCaL+dm0KBYhxSKU5Vjkpb+U\nFowYaM+FiLQiL/2lVMOIgfZciEirkuwvpX0YGaE9FyLSjiT7S6nonQFJ7bloJsv52aQpFiHFIpT1\nWOShv1SsC4aZ9ZnZRjPbbGYXNXn8nWa2ysz+ZGbnt3JuFmnPhYiMRdb7S8WWkjKzccCTwDRgO/AI\nMNvdN9Qdsw/wdmAG8Ft3vzrqubXjMpOS0p4LERmrpPpLZTElNQXY4u4D7r4TWAZMrz/A3Z9z9zXA\nzlbPzRrtuRCRsTILLrG9/vq0Z9JcnAvGJGBr3Xhb7b64z01c0nsumsl6fjZJikVIsQjlJRZZ7i81\nPsbnHkuuKPK5/f39dHd3A9DV1UVPTw+9tfdyQz8gcY537YLzz+/l6qth/fr4v5/Go4+HZGU+aY6r\n1Wqm5pPmuFqtZmo+I41nzYJLLqnQ39+Z56tUKixduhTg5dfLdsRZwzgGuNzd+2rji4FBd1/Q5NjL\ngB11NYxI52ahhqE9FyLSaXH3l8piDWMNMNnMus1sAnAqcNcwxzZOvJVzUzMwAAsWwKJFWixEpHOy\n2l8qtgXD3XcB84AVwBPAze6+wczmmNkcADPb18y2AucCnzWzp81sr+HOjWuu7Uhzz0UzjemYMlMs\nQopFKG+xyGJ/qThrGLj7cmB5w32L627/Gtg/6rlZMrTn4o470p6JiBTRzJkwf36QnjrssLRnE1Br\nkDZoz4WIJCGu/lLqJZWguXODjrR5+ZQsEcmnuPpLZbHoXUhZ2HPRTN7ys3FSLEKKRSiPschafykt\nGC3Q51yISNKy1F9KKakWaM+FiCQtjv5SqmHETJ9zISJpWbgQVq6EW27pzPOphhGjrO25aCaP+dm4\nKBYhxSKU51hkpb+UFowI9DkXIpKmiRNh1qz0r8xUSmoU2nMhIlnQyf5SSknFRJ9zISJZkIX+Ulow\nRpDVPRfN5Dk/22mKRUixCBUhFmn3l9KCMQztuRCRrJk5EzZtCtJTaVANYxjacyEiWdSJ/lLah9FB\n2nMhIlnVif5SKnp3SB72XDRThPxspygWIcUiVJRYpNlfSgtGg9tu054LEcm2tPpLKSVVR3suRCQP\nxtpfSimpDvjMZ7TnQkSyzyy4xPb665P9vrEuGGbWZ2YbzWyzmV00zDHX1R5fZ2ZH1t0/YGbrzWyt\nmT0c5zwhKHDfdls+9lw0U5T8bCcoFiHFIlS0WKTRXyq2BcPMxgFfBfqAQ4HZZnZIwzEnAQe5+2Tg\nE8Ciuocd6HX3I919SlzzhGDPxSc+oT0XIpIfafSXiq2GYWbvBy5z977a+NMA7v6FumNuAB5w95tr\n443AX7v7s2b2FHC0uz8/wvfoSA3jS1+Ce+7RngsRyZd2+0tlsYYxCdhaN95Wuy/qMQ7cZ2ZrzOys\nuCY5MBCkoRYt0mIhIvmSdH+pOBeMqH/6D/cyfZy7Hwl8EJhrZsd3ZlqhvO65aKZo+dmxUCxCikWo\nqLFIsr/U+Bifezuwf914f4J3ECMds1/tPtz9mdq/z5nZHcAU4MHGb9Lf3093dzcAXV1d9PT00Fu7\nzmzoB2S48RVXVHj8cbjjjmjHa5yP8ZCszCfNcbVazdR80hxXq9VMzadT45kze5k/H5YsqXDAAc2P\nr1QqLF26FODl18t2xFnDGA88CUwFngEeBma7+4a6Y04C5rn7SWZ2DHCtux9jZnsA49z992a2J3AP\n8Dl3v6fhe7Rdw9CeCxEpilb7S2Wyl5SZfRC4FhgHfNPdP29mcwDcfXHtmKErqf4AnOHuPzOzdwC3\n155mPPDv7v75Js/f9oIxbx78+c/pf4KViMhYtdpfKpMLRtzaXTBWr4YZM4IrDIpyGW2lUnn5rWjZ\nKRYhxSJU9Fh8+MNwwglBTWM0WbxKKpO050JEiiiJ/lKle4ehPRciUkSt9JdSSioCfc6FiBTZwoWw\nciXccsvIxyklNYoi7blopvGS0jJTLEKKRagMsYi7v1RpFgx9zoWIFF3c/aVKkZLSngsRKYso/aWU\nkhqBPudCRMoizv5ShV8w8v45F1GVIT8blWIRUixCZYpFXP2lCr1gaM+FiJTRzJmwaVOQnuqkQtcw\ntOdCRMpqpP5S2ofRQHsuRKTMRuovpaJ3naLvuWimTPnZ0SgWIcUiVLZYTJoEU6fCTTd17jkLuWBo\nz4WISOf7SxUuJaU9FyIigeH6SyklVaM9FyIiAbPgEtvrr+/M8xVqwSjLnotmypafHYliEVIsQmWN\nRSf7SxVmwdCeCxGRV+tkf6nC1DC050JEpLnG/lKlrmEMDARpqEWLtFiIiDTqVH+pWBcMM+szs41m\nttnMLhrmmOtqj68zsyNbORfKueeimbLmZ5tRLEKKRajssehEf6nYFgwzGwd8FegDDgVmm9khDcec\nBBzk7pOBTwCLop47RHsuAtVqNe0pZIZiEVIsQmWPRSf6S8X5DmMKsMXdB9x9J7AMmN5wzIeA/wvg\n7quBLjPbN+K5AHzqU7B4MUyYENd/Ix9efPHFtKeQGYpFSLEIlT0Wu+8eXBg0lktsx3duOq8yCdha\nN94GvC/CMZOAt0Y4F9CeCxGRqM46K+gv1a4432FEvfxqTGXqMu65aGZgYCDtKWSGYhFSLEKKRdhf\nql2xXVZrZscAl7t7X218MTDo7gvqjrkBqLj7stp4I/DXwAGjnVu7P7/XBIuIpKidy2rjTEmtASab\nWTfwDHAqMLvhmLuAecCy2gLzors/a2bPRzi3rf+wiIi0J7YFw913mdk8YAUwDvimu28wszm1xxe7\n+91mdpKZbQH+AJwx0rlxzVVEREaX653eIiKSnFzs9B7LBsCiGS0WZnZaLQbrzeynZnZEGvNMQtTN\nnWb2XjPbZWb/M8n5JSni70ivma01s5+bWSXhKSYmwu/Im8zsh2ZWrcWiP4Vpxs7M/o+ZPWtmj41w\nTGuvm+6e6S+ClNQWoBvYHagChzQccxJwd+32+4CH0p53irF4P/C62u2+Msei7rj7gR8Ap6Q97xR/\nLrqAx4H9auM3pT3vFGNxOfD5oTgAzwPj0557DLE4HjgSeGyYx1t+3czDO4x2NwC+OdlpJmLUWLj7\nKnd/qTYHBMjLAAAD3UlEQVRcDeyX8ByTEnVz5yeBW4HnkpxcwqLE4n8Bt7n7NgB3/03Cc0xKlFj8\nChj6lOuJwPPuvivBOSbC3R8EfjvCIS2/buZhwRhuc99oxxTxhTJKLOp9DLg71hmlZ9RYmNkkgheL\nRbW7ilqwi/JzMRl4g5k9YGZrzOz0xGaXrCix+DpwmJk9A6wDPpXQ3LKm5dfNOC+r7ZR2NwAW8cUh\n8v/JzE4AzgSOjW86qYoSi2uBT7u7m5kxxk2iGRYlFrsD7wGmAnsAq8zsIXffHOvMkhclFpcAVXfv\nNbMDgXvN7N3u/vuY55ZFLb1u5mHB2A7sXzfen2AlHOmY/Wr3FU2UWFArdH8d6HP3kd6S5lmUWBxF\nsMcHglz1B81sp7vflcwUExMlFluB37j7H4E/mtmPgXcDRVswosTivwNXArj7L8zsKeBggr1jZdLy\n62YeUlIvbwA0swkEm/gaf+HvAj4KL+8wf9Hdn012mokYNRZm9jbgduAj7r4lhTkmZdRYuPs73P0A\ndz+AoI5xdgEXC4j2O/I94DgzG2dmexAUOZ9IeJ5JiBKLjcA0gFrO/mDgl4nOMhtaft3M/DsMH8MG\nwKKJEgvgUuD1wKLaX9Y73X1KWnOOS8RYlELE35GNZvZDYD0wCHzd3Qu3YET8ufhXYImZrSP4o/lC\nd38htUnHxMy+Q9Bq6U1mthW4jCA12fbrpjbuiYhIJHlISYmISAZowRARkUi0YIiISCRaMEREJBIt\nGCIiEokWDBERiUQLhkiLzGyg1j6+amb3mdlbI5zzFjNbYWZvN7M/1rUZ/4aZ7VY75igz+3L8/wOR\n9mjBEGmdA73u3gP8BLg4wjl9wA9rt7e4+5HAEQSfXz8TwN0fdfeyNsKTHNCCITI2DwEHAtTaUdxf\n+zCa+8ysvk/P/wCWU9fszd0HgYfrzu81s+8nN3WR1mjBEGnP0At/H/Dz2u2vAEvc/d3AvwPXAZjZ\nOOBgd9/4iicwey1B64afI5IDme8lJZJRD5jZG4BdwLtq9x0DzKjdvgm4qnb7fQQfZjXkQDNbS5CO\n+pG7F/UzS6Rg9A5DpD29wNsJUlJn1d3f7DM3PkiQjhryi1oN40DgnWZ2dFyTFOkkLRgibXL3vwDz\ngfPNbC/g/wGzag+fBvy4dvsDwH1Nzn8e+AxB91SRzNOCIdK6l1s8u/uvCT5/ZC7B54efUWubfRrw\nKTPbB/iTu/9hmPPvBP6bmU2p3a/20ZJZam8uEiMzOw2Y5O5XjXqwSMZpwRARkUiUkhIRkUi0YIiI\nSCRaMEREJBItGCIiEokWDBERiUQLhoiIRKIFQ0REIvn/nx/g/9fIFs8AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f74c4109e50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, xlabel, ylabel, show, grid\n",
+ "\n",
+ "# plot Torque vs Ro/Ri\n",
+ "#x=Ro/Ri\n",
+ "#According to Uniform Wear theory\n",
+ "x=[0, 0.2, 0.4, 0.577, 0.6, 0.8, 1.0]#\n",
+ "n=len(x)#\n",
+ "Tf = range(0,n)\n",
+ "for i in range(0,n):\n",
+ " Tf[i]=(x[i]-(x[i]**3))#\n",
+ "\n",
+ "plot (x,Tf)#\n",
+ "xlabel(' Ro/Ri ')#\n",
+ "ylabel('Tf')#\n",
+ "grid()#\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 22-5 - Page 591"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "The angular speed is 146.61 rad/sec\n",
+ "\n",
+ "The Torque is 102.314 Nm\n",
+ "\n",
+ "The uniform pressure is 0.084 N/mm**2\n",
+ "\n",
+ "The Force is 1031.1 N\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "n1=4#\n",
+ "n2=3#\n",
+ "n=(n1+n2-1)#\n",
+ "R2=80#\n",
+ "R1=50#\n",
+ "#According to Uniform Pressure Theory\n",
+ "#W=p*pi*((R2**2)-(R1**2)) T=n*2*u*W*((R2**3)-(R1**3))/(((R2**2)-(R1**2))*3)\n",
+ "P=15*10**3#\n",
+ "N=1400#\n",
+ "u=0.25#\n",
+ "w=2*pi*N/60#\n",
+ "T=P/w#\n",
+ "W=T*3*((R2**2)-(R1**2))/(n*2*u*((R2**3)-(R1**3)))*10**3#\n",
+ "p=W/(pi*((R2**2)-(R1**2)))#\n",
+ "print \"\\nThe angular speed is %0.2f rad/sec\"%(w)#\n",
+ "print \"\\nThe Torque is %0.3f Nm\"%(T)#\n",
+ "print \"\\nThe uniform pressure is %0.3f N/mm**2\"%(p)#\n",
+ "print \"\\nThe Force is %0.1f N\"%(W)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 22-6 - Page 592"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "The angular speed is 104.72 rad/sec\n",
+ "\n",
+ "The Torque is 47.746 Nm\n",
+ "\n",
+ "The Inner radius is 37.5 mm\n",
+ "\n",
+ "The Outer radius is 62.5 mm\n",
+ "\n",
+ "The number of contacting surfaces is 4 \n",
+ "\n",
+ "The max. pressure is 0.4 N/mm**2\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "P=5*10**3#\n",
+ "N=1000#\n",
+ "w=2*pi*N/60#\n",
+ "Rm=50#\n",
+ "pm=0.3#\n",
+ "Tf=P/w#\n",
+ "u=0.1#\n",
+ "R2=50*2/(0.6+1)#\n",
+ "R1=0.6*R2#\n",
+ "#According to uniform Wear theory\n",
+ "W=pm*Rm*(R2-R1)*2*pi#\n",
+ "n=Tf*(10**3)/(u*W*Rm)#\n",
+ "pmax=pm*Rm/R1#\n",
+ "print \"\\nThe angular speed is %0.2f rad/sec\"%(w)#\n",
+ "print \"\\nThe Torque is %0.3f Nm\"%(Tf)#\n",
+ "print \"\\nThe Inner radius is %0.1f mm\"%(R1)#\n",
+ "print \"\\nThe Outer radius is %0.1f mm\"%(R2)#\n",
+ "print \"\\nThe number of contacting surfaces is %0.0f \"%(n)#\n",
+ "print \"\\nThe max. pressure is %0.1f N/mm**2\"%(pmax)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 22-7 - Page 593"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "The angular speed is 78.54 rad/sec\n",
+ "\n",
+ "The Torque is 152.8 Nm\n",
+ "\n",
+ "The Inner radius is 81.4 mm\n",
+ "\n",
+ "The Outer radius is 101.1 mm\n",
+ "\n",
+ "The mean radius is 91.23 mm\n",
+ "\n",
+ "The axial force is 1208 N\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "P=12*10**3#\n",
+ "N=750 #Speed=N\n",
+ "w=2*pi*N/60#\n",
+ "Tf=P/w#\n",
+ "p1=0.12#\n",
+ "a=12.5##Semi-cone angle\n",
+ "u=0.3#\n",
+ "k=u*0.18246*1.121/0.21644#\n",
+ "R1=(Tf*(10**3)/k)**(1/3)#\n",
+ "R2=R1*1.242#\n",
+ "Rm=1.121*R1#\n",
+ "W=2*pi*p1*R1*(R2-R1)#\n",
+ "print \"\\nThe angular speed is %0.2f rad/sec\"%(w)#\n",
+ "print \"\\nThe Torque is %0.1f Nm\"%(Tf)#\n",
+ "print \"\\nThe Inner radius is %0.1f mm\"%(R1)#\n",
+ "print \"\\nThe Outer radius is %0.1f mm\"%(R2)#\n",
+ "print \"\\nThe mean radius is %0.2f mm\"%(Rm)#\n",
+ "print \"\\nThe axial force is %0.0f N\"%(W)#\n",
+ "\n",
+ "#The difference in the answer is due to rounding-off of values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 22-8 - Page 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "The Torque is 15.648 Nm\n",
+ "\n",
+ "The angular acceleration is 39.120 rad/sec**2\n",
+ "\n",
+ "The angular speed is 150.8 rad/sec\n",
+ "\n",
+ "The time taken is 3.85 sec\n",
+ "\n",
+ "The Energy lost in friction is 4548 Nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sin,pi\n",
+ "#semi-cone angle is given as 15 degree\n",
+ "k=sin(15*pi/180)#\n",
+ "u=0.3#\n",
+ "W=300#\n",
+ "Rm=90/2#\n",
+ "Tf=u*W*Rm/k#\n",
+ "Tf=Tf*(10**-3)#\n",
+ "I=0.4#\n",
+ "a=Tf/I#\n",
+ "N=1440#\n",
+ "w=2*pi*N/60#\n",
+ "t=w/a#\n",
+ "#During Slipping\n",
+ "theta1=w*t#\n",
+ "theta2=theta1/2#\n",
+ "U=Tf*(theta1-theta2)#\n",
+ "print \"\\nThe Torque is %0.3f Nm\"%(Tf)#\n",
+ "print \"\\nThe angular acceleration is %0.3f rad/sec**2\"%(a)#\n",
+ "print \"\\nThe angular speed is %0.1f rad/sec\"%(w)#\n",
+ "print \"\\nThe time taken is %0.2f sec\"%(t)#\n",
+ "print \"\\nThe Energy lost in friction is %0.0f Nm\"%(U)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 22-9 - Page 595"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "The Torque is 95.49 Nm\n",
+ "\n",
+ "The shaft diameter is 25 mm\n",
+ "\n",
+ "The width is 40 mm\n",
+ "\n",
+ "The Inner radius is 119.8 mm\n",
+ "\n",
+ "The Outer radius is 130.2 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sin\n",
+ "P=15*10**3#\n",
+ "Ka=1.25#\n",
+ "N=1500#\n",
+ "w=2*pi*N/60#\n",
+ "Tf=P/w#\n",
+ "d=(Tf*16/(50*pi))**(1/3)#\n",
+ "d=25#\n",
+ "Rm=5*d#\n",
+ "Pav=0.12#\n",
+ "u=0.22#\n",
+ "b=Tf/(pi*u*Pav*(Rm**2))#\n",
+ "b=40#\n",
+ "R1=Rm-(b*sin(15*pi/180)/2)#\n",
+ "R2=Rm+(b*sin(15*pi/180)/2)#\n",
+ "print \"\\nThe Torque is %0.2f Nm\"%(Tf)#\n",
+ "print \"\\nThe shaft diameter is %0.0f mm\"%(d)#\n",
+ "print \"\\nThe width is %0.0f mm\"%(b)#\n",
+ "print \"\\nThe Inner radius is %0.1f mm\"%(R1)#\n",
+ "print \"\\nThe Outer radius is %0.1f mm\"%(R2)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 22-10 - Page 596"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "The full speed is 146.6 rad/sec\n",
+ "\n",
+ "The engagement speed is 117.29 rad/sec\n",
+ "\n",
+ "The number of shoes is 4 \n",
+ "\n",
+ "The Torque is 272.8 Nm\n",
+ "\n",
+ "The Torque per shoe is 68.2 Nm\n",
+ "\n",
+ "The mass per shoe is 1.93 kg\n",
+ "\n",
+ "The length of friction lining is 0.16755 m\n",
+ "\n",
+ "The width is 115.7 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "w2=2*pi*1400/60#\n",
+ "w1=0.8*w2#\n",
+ "P=40*10**3#\n",
+ "T=P/w2#\n",
+ "n=4#\n",
+ "T1=T/4#\n",
+ "R=0.16##Inner radius of drum\n",
+ "r=0.13##radial distance of each shoe from axis of rotation\n",
+ "u=0.22##coefficient of friction\n",
+ "x=u*r*R*((w2**2)-(w1**2))\n",
+ "m =T1/x#\n",
+ "l=R*pi/3#\n",
+ "N=T1/(R*u)#\n",
+ "p=1*10**5#\n",
+ "b=N/(p*l)*10**3#\n",
+ "print \"\\nThe full speed is %0.1f rad/sec\"%(w2)#\n",
+ "print \"\\nThe engagement speed is %0.2f rad/sec\"%(w1)#\n",
+ "print \"\\nThe number of shoes is %0.0f \"%(n)#\n",
+ "print \"\\nThe Torque is %0.1f Nm\"%(T)#\n",
+ "print \"\\nThe Torque per shoe is %0.1f Nm\"%(T1)#\n",
+ "print \"\\nThe mass per shoe is %0.2f kg\"%(m)#\n",
+ "print \"\\nThe length of friction lining is %0.5f m\"%(l)#\n",
+ "print \"\\nThe width is %0.1f mm\"%(b)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch23_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch23_2.ipynb
new file mode 100644
index 00000000..2edefb8f
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch23_2.ipynb
@@ -0,0 +1,442 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:23 Brakes"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 23-1 - Page 618"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "T is 10254.8 Nm \n",
+ "\n",
+ "P is 20.5097 kW \n",
+ "\n",
+ "b is 0.18 m \n",
+ "\n",
+ "L is 0.271 m \n",
+ "\n",
+ "theta2 is 54 deg \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import asin, pi\n",
+ "W=20e3#\n",
+ "m=W/9.81#\n",
+ "#diameter of brake drum\n",
+ "Db=0.6#\n",
+ "p=1#\n",
+ "Vi=1#\n",
+ "Vf=0#\n",
+ "D=1#\n",
+ "R=0.5#\n",
+ "wi=Vi/R#\n",
+ "wf=0#\n",
+ "w=1#\n",
+ "Vav=0.5#\n",
+ "S=2#\n",
+ "t=S/Vav#\n",
+ "#angle turned by by hoist drum=theta\n",
+ "theta=0.5*wi*t#\n",
+ "K_E=0.5*m*Vi**2#\n",
+ "P_E=2*W#\n",
+ "T_E=K_E+P_E#\n",
+ "T=T_E/theta#\n",
+ "P=wi*T*10**-3#\n",
+ "Rb=Db/2#\n",
+ "Ft=0.5*T*p/Rb#\n",
+ "u=0.35#\n",
+ "N=Ft/u#\n",
+ "#contact area of brake lining=A\n",
+ "A=N/p#\n",
+ "b=0.3*Db#\n",
+ "L=A*10**-6/(b)#\n",
+ "#angle subtended at brake drum centre=theta2\n",
+ "theta2=2*(asin(L/Db))#\n",
+ "theta2=theta2*180/pi# # converting radian to degree\n",
+ "print \"T is %0.1f Nm \"%(T)#\n",
+ "print \"\\nP is %0.4f kW \"%(P)#\n",
+ "print \"\\nb is %0.2f m \"%(b)#\n",
+ "print \"\\nL is %0.3f m \"%(L)#\n",
+ "print \"\\ntheta2 is %0.0f deg \"%(theta2)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 23-2 - Page 618"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "F1 is 9600 N \n",
+ "\n",
+ "F2 is 4046.4 N \n",
+ "\n",
+ "T is 1110.72 Nm \n",
+ "\n",
+ "OA is 42.15 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import exp,pi\n",
+ "b=80#\n",
+ "t=2#\n",
+ "theta=225*pi/180#\n",
+ "u=0.22#\n",
+ "#F1/F2=e**(u*theta)\n",
+ "#let F1/F2=x#\n",
+ "x=exp(u*theta)#\n",
+ "#maximum tensile stress in steel tape is siga\n",
+ "siga=60#\n",
+ "A=b*t#\n",
+ "F1=siga*A#\n",
+ "F2=F1/x#\n",
+ "r=0.2#\n",
+ "T=(F1-F2)*r#\n",
+ "OA=30#\n",
+ "OB=100#\n",
+ "OC=350#\n",
+ "P=((F2*OB)+(F1*OA))/OC#\n",
+ "OA=F2*OB/F1#\n",
+ "print \"F1 is %0.0f N \"%(F1)#\n",
+ "print \"\\nF2 is %0.1f N \"%(F2)#\n",
+ "print \"\\nT is %0.2f Nm \"%(T)#\n",
+ "print \"\\nOA is %0.2f mm \"%(OA)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 23-3 - Page 619"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "T is 957.75 Nmm \n",
+ "\n",
+ "R is 187.222 mm \n",
+ "\n",
+ "Rx is 8.526 kN \n",
+ "\n",
+ "Ry is 2.56 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sin,pi\n",
+ "theta=pi/3#\n",
+ "r=160#\n",
+ "u=0.3#\n",
+ "pmax=0.9#\n",
+ "b=40#\n",
+ "R=(4*r*sin(theta))/((2*theta)+sin(2*theta))#\n",
+ "#frictional torque is T\n",
+ "T=2*u*pmax*b*(r**2)*sin(theta)#\n",
+ "T=2*T*10**-3#\n",
+ "Rx=0.5*pmax*b*r*((2*theta)+(sin(2*theta)))*10**-3#\n",
+ "Ry=u*Rx#\n",
+ "print \"T is %0.2f Nmm \"%(T)#\n",
+ "print \"\\nR is %0.3f mm \"%(R)#\n",
+ "print \"\\nRx is %0.3f kN \"%(Rx)#\n",
+ "print \"\\nRy is %0.2f kN \"%(Ry)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 23-4 - Page 620"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tr is 576 Nm \n",
+ "\n",
+ "Mf is 695.51 Nm \n",
+ "\n",
+ "Mp is 1342.49 Nm \n",
+ "\n",
+ "Tl is 182.9 Nm \n",
+ "\n",
+ "Mfl is 220.79 Nm \n",
+ "\n",
+ "Mpl is 426.18 Nm \n",
+ "\n",
+ "F is 2812.9 N \n",
+ "\n",
+ "T is 758.9 Nm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sin, cos, pi, sqrt\n",
+ "d=320#\n",
+ "r=d/2#\n",
+ "b=50#\n",
+ "u=0.3#\n",
+ "pmax=1#\n",
+ "c=115*2#\n",
+ "# From to fig. 23-9, distance OA=R is calculated.\n",
+ "R=sqrt(115**2+66.4**2)#\n",
+ "C=115*2#\n",
+ "theta1=0#\n",
+ "theta2=120*pi/180#\n",
+ "theta0=120*pi/180#\n",
+ "thetamax=pi/2#\n",
+ "Tr=u*pmax*b*r**2*(cos(theta1)-cos(theta2))/sin(thetamax)*10**-3#\n",
+ "#the notation 'r' is used for moments of right hand shoe, similarly 'l' for the left shoe.\n",
+ "Mfr=u*pmax*b*r*(4*r*(cos(theta1)-cos(theta2))+(R*(cos(2*theta1)-cos(2*theta2))))/(4*sin(thetamax))*10**-3#\n",
+ "Mpr=pmax*b*r*R*((2*theta0)-(sin(2*theta2)-(sin(theta1))))/(4*sin(thetamax))*10**-3#\n",
+ "F=(Mpr-Mfr)/c*10**3#\n",
+ "#Mpl+Mfl=F*c#\n",
+ "x=F*c*10**-3#\n",
+ "y=(Mpr/pmax)+(Mfr/pmax)#\n",
+ "pmax2=x/y#\n",
+ "Tl=pmax2*Tr#\n",
+ "Mpl=pmax2*Mpr#\n",
+ "Mfl=pmax2*Mfr#\n",
+ "T=Tl+Tr#\n",
+ "print \"Tr is %0.0f Nm \"%(Tr)#\n",
+ "print \"\\nMf is %0.2f Nm \"%(Mfr)#\n",
+ "print \"\\nMp is %0.2f Nm \"%(Mpr)#\n",
+ "print \"\\nTl is %0.1f Nm \"%(Tl)# \n",
+ "print \"\\nMfl is %0.2f Nm \"%(Mfl)#\n",
+ "print \"\\nMpl is %0.2f Nm \"%(Mpl)#\n",
+ "print \"\\nF is %0.1f N \"%(F)#\n",
+ "print \"\\nT is %0.1f Nm \"%(T)#\n",
+ " \n",
+ "#The difference in the answers are due to rounding-off of values.\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 23-5 - Page 621"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "S is 36.11 m \n",
+ "\n",
+ "E is 49307.97 Nm \n",
+ "\n",
+ "T is 300.40 Nm \n",
+ "\n",
+ "delT is 8.93 \n"
+ ]
+ }
+ ],
+ "source": [
+ "m=1100#\n",
+ "V=65*5/18#\n",
+ "t=4#\n",
+ "r=0.22#\n",
+ "mb=12#\n",
+ "C=460#\n",
+ "S=0.5*V*t#\n",
+ "#Total kinetic energy TE=K.E(vehicle)+K.E(rotating parts).\n",
+ "TE=((0.5*m*(V**2))+(0.1*0.5*m*(V**2)))#\n",
+ "E=TE/4#\n",
+ "w=V/r#\n",
+ "theta=S/r#\n",
+ "T=E/theta#\n",
+ "delT=E/(mb*C)#\n",
+ "print \"S is %0.2f m \"%(S)#\n",
+ "print \"\\nE is %0.2f Nm \"%(E)#\n",
+ "print \"\\nT is %0.2f Nm \"%(T)#\n",
+ "print \"\\ndelT is %0.2f \"%(delT)#\n",
+ " \n",
+ "#The difference in the answers are due to rounding-off of values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 23-6 - Page 621"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "N is 437.5 N \n",
+ "\n",
+ "b is 25 mm \n",
+ "\n",
+ "P is 173.4 N \n",
+ "\n",
+ "R is 316.81 N \n",
+ "\n",
+ "Q is 366.52 J/s \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,asin,pi\n",
+ "T=35000#\n",
+ "u=0.4#\n",
+ "p=0.7#\n",
+ "r=200#\n",
+ "N=T/(u*r)\n",
+ "b=sqrt(N/p)#\n",
+ "l=b#\n",
+ "#2theta = theta2\n",
+ "theta2=2*asin(l/(2*r))#\n",
+ "F=u*N#\n",
+ "P=((250*N)-(u*N*80))/550#\n",
+ "Ry=N-P#\n",
+ "Rx=u*N#\n",
+ "R=sqrt(Rx**2+Ry**2)#\n",
+ "w=2*pi*100/60#\n",
+ "# Rate of heat generated is Q\n",
+ "Q=u*N*w*r/1000#\n",
+ "print \"N is %0.1f N \"%(N)#\n",
+ "print \"\\nb is %0.0f mm \"%(b)#\n",
+ "print \"\\nP is %0.1f N \"%(P)#\n",
+ "print \"\\nR is %0.2f N \"%(R)#\n",
+ "print \"\\nQ is %0.2f J/s \"%(Q)#\n",
+ "\n",
+ "#The answer to Rate of heat generated 'Q' is calculated incorrectly in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 23-7 - Page 622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "KE is 1234.6 Nm \n",
+ "\n",
+ "N is 123.46 N \n",
+ "\n",
+ "t is 6.4 mm \n",
+ "\n",
+ "b is 19.2 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi,sqrt\n",
+ "Vi=20*5/18#\n",
+ "Vf=0#\n",
+ "m=80#\n",
+ "pmax=1#\n",
+ "u=0.1#\n",
+ "S=50#\n",
+ "KE=0.5*m*Vi**2#\n",
+ "N=KE/(u*S*2)#\n",
+ "t=sqrt(N/(pmax*3))#\n",
+ "b=3*t#\n",
+ "print \"KE is %0.1f Nm \"%(KE)#\n",
+ "print \"\\nN is %0.2f N \"%(N)#\n",
+ "print \"\\nt is %0.1f mm \"%(t)#\n",
+ "print \"\\nb is %0.1f mm \"%(b)#\n",
+ "\n",
+ "#The difference in the answers are due to rounding-off of values."
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch24_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch24_2.ipynb
new file mode 100644
index 00000000..f165e145
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch24_2.ipynb
@@ -0,0 +1,195 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:24 Rope drive"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 24-1 - Page 635"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "n is 13 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, exp, sin, asin\n",
+ "P=150000#\n",
+ "m=0.4#\n",
+ "D=1.8#\n",
+ "d=0.6#\n",
+ "C=4.2#\n",
+ "V=15#\n",
+ "Fc=m*V**2#\n",
+ "BL=44.81*10**3#\n",
+ "FOS=35#\n",
+ "F1=BL/FOS#\n",
+ "theta=pi-(2*asin((D-d)/(2*C)))#\n",
+ "beta=22.5*pi/180#\n",
+ "u=0.13#\n",
+ "x=u*theta/sin(beta)#\n",
+ "F2=(F1-Fc)/exp(x)#\n",
+ "n=P/((F1-F2)*V)#\n",
+ "n=13#\n",
+ "print \"n is %0.0f \"%(n)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 24-2 - Page 635"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " annual FOS is 5.02 \n",
+ "\n",
+ " FOS neglecting bending load is 13.9 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "W=1000#\n",
+ "m=0.498#\n",
+ "BL=78#\n",
+ "d=12#\n",
+ "Am=0.39*d**2#\n",
+ "dw=sqrt(Am*4/(6*19*pi))#\n",
+ "Ew=74.4*10**3#\n",
+ "Ds=56*d#\n",
+ "sigb=Ew*dw/Ds#\n",
+ "Wb=sigb*pi*(d**2)/4*10**-3#\n",
+ "l=20#\n",
+ "Ws=m*l#\n",
+ "a=1.2#\n",
+ "Wa=a*(W/2+Ws)*10**-3#\n",
+ "#Let the static load be Ps\n",
+ "Ps=(W/2+Ws)*9.81*10**-3#\n",
+ "#let the effective load be Peff\n",
+ "Peff=Ps+Wb+Wa#\n",
+ "FOS1=BL/Peff#\n",
+ "FOS2=BL/(5+0.612)#\n",
+ "print \" annual FOS is %0.2f \"%(FOS1)#\n",
+ "print \"\\n FOS neglecting bending load is %0.1f \"%(FOS2)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 24-3 - Page 636"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "W is 28.224 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "d=12#\n",
+ "sigut=1960#\n",
+ "Pb=0.0025*sigut#\n",
+ "Ds=480#\n",
+ "F=Pb*d*Ds/2#\n",
+ "W=F*2*10**-3#\n",
+ "print \"W is %0.3f kN \"%(W)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 24-4 - Page 637"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d is 12 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "sigut=1770#\n",
+ "Pb=0.0018*sigut#\n",
+ "W=4000#\n",
+ "a=2.5/2#\n",
+ "Ws=90*0.5#\n",
+ "Wa=(W+Ws)*a/9.81#\n",
+ "Weff=W+Wa#\n",
+ "d=sqrt(Weff*2/(23*Pb))#\n",
+ "d=12#\n",
+ "print \"d is %0.0f mm \"%(d)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch25_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch25_2.ipynb
new file mode 100644
index 00000000..f713233b
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch25_2.ipynb
@@ -0,0 +1,387 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:25 Gears"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 25-1 - Page 669"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "dp is 125 mm \n",
+ "\n",
+ "dg is 300 mm \n",
+ "\n",
+ "CD is 212.5 mm \n",
+ "\n",
+ "ha is 5 mm \n",
+ "\n",
+ "hf is 6.25 mm \n",
+ "\n",
+ "c is 1.25 mm \n",
+ "\n",
+ "r is 2 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi\n",
+ "Zp=25#\n",
+ "Zg=60#\n",
+ "m=5#\n",
+ "dp=m*Zp#\n",
+ "dg=m*Zg#\n",
+ "CD=(dp+dg)/2#\n",
+ "ha=m#\n",
+ "hf=1.25*m#\n",
+ "c=hf-ha#\n",
+ "r=0.4*m#\n",
+ "print \"dp is %0.0f mm \"%(dp)#\n",
+ "print \"\\ndg is %0.0f mm \"%(dg)#\n",
+ "print \"\\nCD is %0.1f mm \"%(CD)#\n",
+ "print \"\\nha is %0.0f mm \"%(ha)#\n",
+ "print \"\\nhf is %0.2f mm \"%(hf)#\n",
+ "print \"\\nc is %0.2f mm \"%(c)#\n",
+ "print \"\\nr is %0.0f mm \"%(r)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 25-2 - Page 669"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "dp is 77 mm \n",
+ "\n",
+ "dg is 309 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "from sympy import symbols, solve\n",
+ "N=800#\n",
+ "P=6000#\n",
+ "n=200#\n",
+ "Cs=1.4#\n",
+ "sigb=150#\n",
+ "FOS=2#\n",
+ "Zp=18#\n",
+ "Zg=Zp*N/n#\n",
+ "Y=pi*(0.154-(0.912/Zp))#\n",
+ "p=[1 ,0 ,-9.5846, -38.135]#\n",
+ "P = symbols('P')\n",
+ "expr = P**3*p[0]+P**2*p[1]+P*p[2]+p[3]\n",
+ "m=solve(expr, P)[0]#\n",
+ "dp=m*Zp#\n",
+ "dg=m*Zg#\n",
+ "# printing data in scilab o/p window\n",
+ "print \"dp is %0.0f mm \"%(dp)#\n",
+ "print \"\\ndg is %0.0f mm \"%(dg)#\n",
+ "# Answer is given wrong in the textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 25-3 - Page 670"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Sb is 16110 N \n",
+ "\n",
+ "Sw is 25200 N \n",
+ "\n",
+ "P is 11.657 kW \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "Zp=30#\n",
+ "N=1000#\n",
+ "Zg=75#\n",
+ "m=5#\n",
+ "b=60#\n",
+ "sigut=450#\n",
+ "BHN=350#\n",
+ "Cs=1.5#\n",
+ "FOS=2#\n",
+ "dp=m*Zp#\n",
+ "dg=m*Zg#\n",
+ "v=2*pi*N*dp/(60*1000*2)#\n",
+ "Cv=3/(3+v)#\n",
+ "sigb=450/3#\n",
+ "Y=0.358#\n",
+ "Sb=m*b*sigb*Y#\n",
+ "Q=(2*Zg)/(Zp+Zg)#\n",
+ "K=0.16*(BHN/100)**2#\n",
+ "Sw=b*dp*Q*K#\n",
+ "Pt=Sb*Cv/(Cs*FOS)#\n",
+ "P=Pt*v#\n",
+ "P=P*10**-3#\n",
+ "print \"Sb is %0.0f N \"%(Sb)#\n",
+ "print \"\\nSw is %0.0f N \"%(Sw)#\n",
+ "print \"\\nP is %0.3f kW \"%(P)#\n",
+ "\n",
+ "#The difference in the value of Sw is due to rounding-off of the value of Q."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 25-4 - Page 670"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "BHN is 333 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "n=240#\n",
+ "P=8000#\n",
+ "N=1200#\n",
+ "CD=300#\n",
+ "Cs=1.5#\n",
+ "alpha=20*pi/180#\n",
+ "G=N/n#\n",
+ "dp=CD*2/6#\n",
+ "dg=5*dp#\n",
+ "v=2*pi*N*dp/(60*1000*2)#\n",
+ "Cv=3/(3+v)#\n",
+ "Pt=P/v#\n",
+ "Peff=Pt*Cs/Cv#\n",
+ "m=4#\n",
+ "b=10*m#\n",
+ "FOS=2#\n",
+ "Sb=Peff*FOS#\n",
+ "sigut=600#\n",
+ "sigb=sigut/3#\n",
+ "Zp=dp/m#\n",
+ "Zg=dg/m#\n",
+ "Q=(2*Zg)/(Zp+Zg)#\n",
+ "K=Sb/(b*dp*Q)#\n",
+ "BHN=sqrt(K/0.16)*100#\n",
+ "BHN=333#\n",
+ "print \"BHN is %0.0f \"%(BHN)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 25-5 - Page 671"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ps is 2166.67 N \n",
+ "\n",
+ "Pd is 1358.6 N \n",
+ "\n",
+ "BHN is 282 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "alpha=20*pi/180#\n",
+ "N=800#\n",
+ "P=6000#\n",
+ "sigut=450#\n",
+ "i=5#\n",
+ "Cs=1.3#\n",
+ "v=3.6#\n",
+ "FOS=2#\n",
+ "Pt=P/v#\n",
+ "Cv=3/(3+v)#\n",
+ "sigb=sigut/3#\n",
+ "dp=3.6*1000*2*60/(2*pi*N)#\n",
+ "dp=86#\n",
+ "Sb=Pt*Cs/Cv*FOS#\n",
+ "#Let x be m**2*Y\n",
+ "x=Sb/(10*sigb)#\n",
+ "m=5#\n",
+ "Zp=18#\n",
+ "dp=m*Zp#\n",
+ "Zg=i*Zp#\n",
+ "dg=m*Zg#\n",
+ "b=10*m#\n",
+ "phip=m+(0.25*sqrt(dp))#\n",
+ "ep=32+(2.5*phip)#\n",
+ "phig=m+(0.25*sqrt(dg))#\n",
+ "eg=32+(2.5*phig)#\n",
+ "e=ep+eg#\n",
+ "e=e*10**-3#\n",
+ "Ps=Cs*Pt#\n",
+ "r1=dp/2#\n",
+ "r2=dg/2#\n",
+ "Pd=e*N*Zp*b*r1*r2/(2530*sqrt(r1**2+r2**2))#\n",
+ "Q=(2*Zg)/(Zp+Zg)#\n",
+ "K=Sb/(b*dp*Q)#\n",
+ "BHN=sqrt(K/0.16)*100#\n",
+ "print \"Ps is %0.2f N \"%(Ps)#\n",
+ "print \"\\nPd is %0.1f N \"%(Pd)#\n",
+ "print \"\\nBHN is %0.0f \"%(BHN)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 25-4 - Page 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "m is 6 mm \n",
+ "\n",
+ "Pd is 434.590 N \n",
+ "\n",
+ "Sw is 13244 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "P=9000#\n",
+ "N=900#\n",
+ "n=150#\n",
+ "sigut=750#\n",
+ "BHN=300#\n",
+ "Cs=1.5#\n",
+ "FOS=2#\n",
+ "i=N/n#\n",
+ "x=sqrt(i)#\n",
+ "Zp=18#\n",
+ "Zg=x*Zp#\n",
+ "Zg=44#\n",
+ "#Let actual speed reduction be xa\n",
+ "xa=Zg/Zp#\n",
+ "n1=N/xa**2#\n",
+ "T1=P*60/(2*pi*N)#\n",
+ "i2=N/xa#\n",
+ "T2=N/i2*T1#\n",
+ "m=6#\n",
+ "dp=Zp*m#\n",
+ "dg=m*Zg#\n",
+ "phip=m+(0.25*sqrt(dp))#\n",
+ "ep=16+(1.25*phip)#\n",
+ "phig=m+(0.25*sqrt(dg))#\n",
+ "eg=16+(1.25*phig)#\n",
+ "e=ep+eg#\n",
+ "e=e*10**-3#\n",
+ "Pt=26000#\n",
+ "Ps=Cs*Pt#\n",
+ "r1=dp/2#\n",
+ "r2=dg/2#\n",
+ "b=10*m#\n",
+ "Pd=e*i2*Zp*b*r1*r2/(2530*sqrt(r1**2+r2**2))#\n",
+ "Q=(2*Zg)/(Zp+Zg)#\n",
+ "sigb=sigut/3#\n",
+ "Y=0.308#\n",
+ "\n",
+ "Sb=b*m*sigb*Y#\n",
+ "K=0.16*(BHN/100)**2#\n",
+ "Sw=b*dp*K*Q#\n",
+ "print \"m is %0.0f mm \"%(m)#\n",
+ "print \"\\nPd is %0.3f N \"%(Pd)#\n",
+ "print \"\\nSw is %0.0f N \"%(Sw) \n",
+ "#The difference in the values is due to rounding-off of the values."
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch26_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch26_2.ipynb
new file mode 100644
index 00000000..c9bde487
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch26_2.ipynb
@@ -0,0 +1,273 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:26 Helical gears"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 26-1 - Page 698"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "m is 4.14 mm \n",
+ "\n",
+ "alpha is 20.647 deg \n",
+ "\n",
+ "Pa is 90.8 mm \n",
+ "\n",
+ "Pd is 72.8 mm \n",
+ "\n",
+ "Ga is 215 mm \n",
+ "\n",
+ "Gd is 197 mm \n",
+ "\n",
+ "b is 48.55 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, sin, cos, tan, atan\n",
+ "Zp=20#\n",
+ "Zg=50#\n",
+ "alphan=20*pi/180#\n",
+ "phi=15*pi/180#\n",
+ "mn=4#\n",
+ "m=mn/cos(phi)#\n",
+ "alpha=180/pi*atan(tan(alphan)/(cos(phi)))#\n",
+ "dp=Zp*m#\n",
+ "dg=Zg*m#\n",
+ "ha=4#\n",
+ "hd=1.25*mn#\n",
+ "#Let addendum circle dia of pinion be Pa\n",
+ "Pa=dp+(2*mn)#\n",
+ "#Let dedendum circle dia of pinion be Pd\n",
+ "Pd=dp-(2.5*mn)#\n",
+ "#Let addendum circle dia of gear be Ga\n",
+ "Ga=dg+(2*mn)#\n",
+ "#Let dedendum circle dia of gear be Gd\n",
+ "Gd=dg-(2.5*mn)#\n",
+ "b=pi*mn/sin(phi)#\n",
+ "print \"m is %0.2f mm \"%(m)#\n",
+ "print \"\\nalpha is %0.3f deg \"%(alpha)#\n",
+ "print \"\\nPa is %0.1f mm \"%(Pa)#\n",
+ "print \"\\nPd is %0.1f mm \"%(Pd)#\n",
+ "print \"\\nGa is %0.0f mm \"%(Ga)#\n",
+ "print \"\\nGd is %0.0f mm \"%(Gd)#\n",
+ "print \"\\nb is %0.2f mm \"%(b)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 26-2 - Page 698"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Pt is 747.78 N \n",
+ "\n",
+ "Pa is 272.2 N \n",
+ "\n",
+ "Pr is 289.64 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sin, cos, tan\n",
+ "P=5000#\n",
+ "Zp=25#\n",
+ "Zg=50#\n",
+ "mn=4#\n",
+ "alphan=20*pi/180#\n",
+ "phi=20*pi/180#\n",
+ "N=1200#\n",
+ "m=mn/cos(phi)#\n",
+ "dp=Zp*m#\n",
+ "dg=Zg*m#\n",
+ "v=2*pi*N*dp/(60*2*1000)#\n",
+ "Pt=P/v#\n",
+ "Pa=Pt*tan(phi)#\n",
+ "Pr=Pt*tan(alphan)/cos(phi)#\n",
+ "print \"Pt is %0.2f N \"%(Pt)#\n",
+ "print \"\\nPa is %0.1f N \"%(Pa)#\n",
+ "print \"\\nPr is %0.2f N \"%(Pr)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 26-3 - Page 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P is 22.936 kW \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, sin, cos, tan\n",
+ "Zp=24#\n",
+ "Zg=72#\n",
+ "alphan=20*pi/180#\n",
+ "phi=24*pi/180#\n",
+ "N=720#\n",
+ "mn=5#\n",
+ "b=50#\n",
+ "sigut=600#\n",
+ "BHN=360#\n",
+ "Cs=1.4#\n",
+ "FOS=2#\n",
+ "sigb=sigut/3#\n",
+ "dp=mn*Zp/cos(phi)#\n",
+ "Zp=Zp/(cos(phi))**3#\n",
+ "Zg=Zg/(cos(phi))**3#\n",
+ "Y=0.358+((0.364-0.358)*1.48/2)#\n",
+ "Sb=b*mn*sigb*Y#\n",
+ "Q=(2*Zg)/(Zp+Zg)#\n",
+ "K=0.16*(BHN/100)**2#\n",
+ "Sw=b*dp*Q*K/(cos(phi)**2)#\n",
+ "v=2*pi*N*dp/(60*2*1000)#\n",
+ "Cv=5.6/(5.6+sqrt(v))#\n",
+ "Peff=Sb/FOS#\n",
+ "Pt=Peff*Cv/Cs#\n",
+ "P=Pt*v#\n",
+ "P=P*10**-3#\n",
+ "print \"P is %0.3f kW \"%(P)#\n",
+ "#The difference in the value is due to rounding-off of the values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 26-4 - Page 700"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "mn is 2.5 mm \n",
+ "\n",
+ "TC is 1965 N \n",
+ "\n",
+ "Sb is 5790.8 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, sin, cos, tan, atan\n",
+ "Zp=25#\n",
+ "Zg=100#\n",
+ "P=5000#\n",
+ "N=2000#\n",
+ "alphan=20*pi/180#\n",
+ "phi=15*pi/180#\n",
+ "sigut=660#\n",
+ "Cs=1.5#\n",
+ "FOS=1.8#\n",
+ "v=10#\n",
+ "Zp1=Zp/(cos(phi))**3#\n",
+ "Zg1=Zg/(cos(phi))**3#\n",
+ "Y=0.348+(0.74*0.004)#\n",
+ "sigb=sigut/3#\n",
+ "Cv=5.6/(5.6+sqrt(v))#\n",
+ "#Sb=FOS*Peff\n",
+ "mn=FOS*P*Cs*60*1000*2*cos(phi)/(2*pi*N*Cv*Zp*12*sigb*Y)#\n",
+ "mn=mn**(1/3)#\n",
+ "mn=2.5#\n",
+ "dp=mn*Zp/cos(phi)#\n",
+ "Q=(2*Zg)/(Zp+Zg)#\n",
+ "b=12*mn#\n",
+ "Sb=12*sigb*Y#\n",
+ "K=Sb*(cos(phi)**2)/(dp*Q*b)#\n",
+ "BHN=sqrt(K/0.16)*100#\n",
+ "dg=mn*Zg/cos(phi)#\n",
+ "phip=mn+(0.25*sqrt(dp))#\n",
+ "ep=16+(1.25*phip)#\n",
+ "phig=mn+(0.25*sqrt(dg))#\n",
+ "eg=16+(1.25*phig)#\n",
+ "e=ep+eg#\n",
+ "e=e*10**-3#\n",
+ "r1=dp/2#\n",
+ "r2=dg/2#\n",
+ "Pd=e*N*Zp1*b*r1*r2/(2530*sqrt(r1**2+r2**2))#\n",
+ "v=2*pi*N*dp/(60*2*1000)#\n",
+ "#Let tangential component be TC\n",
+ "TC=(Cs*1845/mn)+(Pd*cos(alphan)*cos(phi))#\n",
+ "\n",
+ "Sb=b*mn*sigb*Y#\n",
+ "print \"mn is %0.1f mm \"%(mn)#\n",
+ "print \"\\nTC is %0.0f N \"%(TC)#\n",
+ "print \"\\nSb is %0.1f N \"%(Sb)#\n",
+ "#The difference in the value of Sb is due to rounding-off of t"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch27_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch27_2.ipynb
new file mode 100644
index 00000000..adcb8623
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch27_2.ipynb
@@ -0,0 +1,468 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:27 Straight bevel gears"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 27-1 - Page 712"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Pt is 1061 N \n",
+ "\n",
+ "Ps is 386.18 N \n",
+ "\n",
+ "Pr is 345.41 N \n",
+ "\n",
+ "Pa is 172.71 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan, sin, tan, cos\n",
+ "from __future__ import division\n",
+ "P=8000#\n",
+ "N1=400#\n",
+ "N2=200#\n",
+ "i=N1/N2# #i=Zg/Zp=dg/dp\n",
+ "gamma1=atan(1/i)#\n",
+ "gamma2=90-gamma1#\n",
+ "rp=200#\n",
+ "R=rp/sin(gamma1)#\n",
+ "b=0.2*R#\n",
+ "rm1=rp-(b*sin(gamma1)/2)#\n",
+ "Pt=P*1000*60/(2*pi*N1*rm1)#\n",
+ "alpha=20*pi/180#\n",
+ "Ps=Pt*tan(alpha)#\n",
+ "Pr=Ps*cos(gamma1)#\n",
+ "Pa=Ps*sin(gamma1)#\n",
+ "print \"Pt is %0.0f N \"%(Pt)#\n",
+ "print \"\\nPs is %0.2f N \"%(Ps)#\n",
+ "print \"\\nPr is %0.2f N \"%(Pr)#\n",
+ "print \"\\nPa is %0.2f N \"%(Pa)#\n",
+ "\n",
+ "#The difference in the values is due to rounding-off of the values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 27-2 - Page 712"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Zpv is 22.88 \n",
+ "\n",
+ "Sb is 6653 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan, sin, tan, cos\n",
+ "alpha=20*pi/180#\n",
+ "Zp=20#\n",
+ "Zg=36#\n",
+ "m=4#\n",
+ "sigut=600#\n",
+ "b=25#\n",
+ "dp=m*Zp#\n",
+ "rp=dp/2#\n",
+ "dg=m*Zg#\n",
+ "rg=dg/2#\n",
+ "gamma1=atan(rp/rg)#\n",
+ "Zpv=Zp/cos(gamma1)#\n",
+ "Y=0.33+0.003*0.88#\n",
+ "sigb=sigut/3#\n",
+ "Sb=m*b*sigb*Y#\n",
+ "print \"Zpv is %0.2f \"%(Zpv)#\n",
+ "print \"\\nSb is %0.0f N \"%(Sb)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 27-3 - Page 712"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "gamma1 is 33.7 deg \n",
+ "\n",
+ "gamma2 is 56.3 deg \n",
+ "\n",
+ "R is 162.25 mm \n",
+ "\n",
+ "FCA is 35.808 deg \n",
+ "\n",
+ "RCA is 31.04 deg \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan, sin, tan, cos,asin\n",
+ "m=6#\n",
+ "Zp=30#\n",
+ "Zg=45#\n",
+ "dp=m*Zp#\n",
+ "rp=dp/2#\n",
+ "dg=m*Zg#\n",
+ "rg=dg/2#\n",
+ "R=sqrt(rg**2+rp**2)#\n",
+ "gamma1=180/pi*asin(rp/R)#\n",
+ "gamma2=(90-gamma1)#\n",
+ "ha=6#\n",
+ "hf=1.25*ha#\n",
+ "phi=180/pi*atan(ha/R)#\n",
+ "beta=180/pi*atan(hf/R)#\n",
+ "#let Face Cone Angle be FCA\n",
+ "FCA=(gamma1+phi)#\n",
+ "#Let Root cone angle be RCA\n",
+ "RCA=(gamma1-beta)#\n",
+ "print \"gamma1 is %0.1f deg \"%(gamma1)#\n",
+ "print \"\\ngamma2 is %0.1f deg \"%(gamma2)#\n",
+ "print \"\\nR is %0.2f mm \"%(R)#\n",
+ "print \"\\nFCA is %0.3f deg \"%(FCA)#\n",
+ "print \"\\nRCA is %0.2f deg \"%(RCA)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 27-4 - Page 713"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Sw is 12142.4 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan, sin, tan, cos\n",
+ "alpha=20*pi/180#\n",
+ "Zp=25#\n",
+ "Zg=40#\n",
+ "m=5#\n",
+ "b=30#\n",
+ "BHN=400#\n",
+ "dp=m*Zp#\n",
+ "rp=dp/2#\n",
+ "dg=m*Zg#\n",
+ "rg=dg/2#\n",
+ "gamma1=atan(rp/rg)#\n",
+ "gamma1=180/pi*gamma1#\n",
+ "gamma2=(90-gamma1)#\n",
+ "a=cos(pi/180*gamma2)#\n",
+ "Zp1=Zp/cos(gamma1)#\n",
+ "Zg1=Zg/a#\n",
+ "Q=(2*Zg1)/(Zp1+Zg1)#\n",
+ "K=0.16*(BHN/100)**2#\n",
+ "Sw=0.75*b*dp*Q*K/cos(pi/180*gamma1)#\n",
+ "print \"Sw is %0.1f N \"%(Sw)#\n",
+ " \n",
+ " #The difference in the value of Sw is due to rounding-off of the value of Q."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 27-5 - Page 713"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Sb is 4633 N \n",
+ "\n",
+ "Sw is 5438.0 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan, sin, tan, cos\n",
+ "Zp=20#\n",
+ "Zg=36#\n",
+ "m=4#\n",
+ "b=25#\n",
+ "BHN=360#\n",
+ "Np=750#\n",
+ "FOS=1.75#\n",
+ "dp=m*Zp#\n",
+ "rp=dp/2#\n",
+ "dg=m*Zg#\n",
+ "rg=dg/2#\n",
+ "gamma1=atan(dp/dg)#\n",
+ "gamma1=180/pi*gamma1#\n",
+ "gamma2=(90-gamma1)#\n",
+ "a=cos(pi/180*gamma2)#\n",
+ "Zp1=Zp/cos(pi/180*gamma1)#\n",
+ "Zg1=Zg/a#\n",
+ "Q=(2*Zg1)/(Zp1+Zg1)#\n",
+ "K=0.16*(BHN/100)**2#\n",
+ "R=sqrt(rp**2+rg**2)#\n",
+ "Y=0.33+0.003*0.86#\n",
+ "sigut=600#\n",
+ "sigb=sigut/3#\n",
+ "Sb=m*b*Y*sigb*(1-(b/R))#\n",
+ "Sw=0.75*b*dp*Q*K/cos(pi/180*gamma1)#\n",
+ "print \"Sb is %0.0f N \"%(Sb)#\n",
+ "print \"\\nSw is %0.1f N \"%(Sw)#\n",
+ "\n",
+ "#The answwer to Sb is calculated incorrectly in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 27-6 - Page 713"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "m*Y is 2.613 mm**2 \n",
+ "\n",
+ "m is 6 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan, sin, tan, cos\n",
+ "Dp=300#\n",
+ "rp=150#\n",
+ "#Let the angular velocity ratio be i\n",
+ "i=2/3#\n",
+ "rg=rp/i#\n",
+ "Dg=2*rg#\n",
+ "R=sqrt(rp**2+rg**2)#\n",
+ "P=15000#\n",
+ "N=300#\n",
+ "Cs=1.5#\n",
+ "FOS=2#\n",
+ "sigb=100#\n",
+ "gamma1=atan(Dp/Dg)#\n",
+ "gamma1=180/pi*gamma1#\n",
+ "gamma2=(90-gamma1)#\n",
+ "v=2*pi*N*rp/(60*1000)#\n",
+ "Cv=5.6/(5.6+sqrt(v))#\n",
+ "Pt=P/v#\n",
+ "Peff=Pt*Cs/Cv#\n",
+ "Sb=Peff*FOS#\n",
+ "b=R/4#\n",
+ "#let x=m*Y\n",
+ "x=Sb/(b*sigb*(1-(b/R)))#\n",
+ "m=6#\n",
+ "print \"m*Y is %0.3f mm**2 \"%(x)#\n",
+ "print \"\\nm is %0.0f mm \"%(m)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 27-7 - Page 714"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "m is 4 mm \n",
+ "\n",
+ "BHN is 189 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan, sin, tan, cos\n",
+ "Zp=24#\n",
+ "Zg=36#\n",
+ "N=1400#\n",
+ "P=11600#\n",
+ "Cs=1.4#\n",
+ "FOS=2#\n",
+ "sigut=600#\n",
+ "sigb=sigut/3#\n",
+ "gamma1=atan(Zp/Zg)#\n",
+ "gamma1=180/pi*gamma1#\n",
+ "gamma2=(90-gamma1)#\n",
+ "a=cos(pi/180*gamma2)#\n",
+ "Zp1=Zp/cos(pi/180*gamma1)#\n",
+ "Zg1=Zg/a#\n",
+ "Q=(2*Zg1)/(Zp1+Zg1)#\n",
+ "v=1.76#\n",
+ "Pt=P/v#\n",
+ "Cv=5.6/(5.6+sqrt(v))#\n",
+ "Peff=Pt*Cs/Cv#\n",
+ "x=Peff*FOS#\n",
+ "Y=0.352+(0.003*0.85)#\n",
+ "y=2*sigb*Y*(1-(6/21.63))#\n",
+ "m=sqrt(x/y)#\n",
+ "# Design is safe for m=4\n",
+ "m=4#\n",
+ "b=6*m#\n",
+ "dp=24*m#\n",
+ "rp=48#\n",
+ "dp=dp/cos(pi/180*gamma1)#\n",
+ "v=2*pi*N*rp/(60*1000)#\n",
+ "Cv=5.6/(5.6+sqrt(v))#\n",
+ "Sb=y*m**2#\n",
+ "#Sw=Sb#\n",
+ "K=Sb/(0.75*b*dp*Q)#\n",
+ "BHN=sqrt(K/0.16)*100#\n",
+ "print \"m is %0.0f mm \"%(m)#\n",
+ "print \"\\nBHN is %0.0f \"%(BHN)#\n",
+ " \n",
+ "#The answwer to BHN is calculated incorrectly in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 27-8 - Page 714"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "m is 6 mm \n",
+ "\n",
+ "b is 36 mm \n",
+ "\n",
+ "R is 216 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan, sin, tan, cos\n",
+ "Zp=40#\n",
+ "Zg=60#\n",
+ "P=3500#\n",
+ "N=600#\n",
+ "Cs=1.5#\n",
+ "sigb=55#\n",
+ "gamma1=atan(Zp/Zg)#\n",
+ "gamma1=180/pi*gamma1#\n",
+ "gamma2=(90-gamma1)#\n",
+ "a=cos(pi/180*gamma2)#\n",
+ "Zp1=Zp/cos(pi/180*gamma1)#\n",
+ "Zg1=Zg/a#\n",
+ "Q=(2*Zg1)/(Zp1+Zg1)#\n",
+ "# Design is safe for m=6\n",
+ "m=6#\n",
+ "b=6*m#\n",
+ "dp=Zp*m#\n",
+ "rp=dp/2#\n",
+ "dg=Zg*m#\n",
+ "rg=dg/2#\n",
+ "R=sqrt(rp**2+rg**2)#\n",
+ "print \"m is %0.0f mm \"%(m)#\n",
+ "print \"\\nb is %0.0f mm \"%(b)#\n",
+ "print \"\\nR is %0.0f mm \"%(R)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch28_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch28_2.ipynb
new file mode 100644
index 00000000..9f1fda0b
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch28_2.ipynb
@@ -0,0 +1,350 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:28 Worm and worm wheel set"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 28-1 - Page 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "G is 30 \n",
+ "\n",
+ "CD is 100 mm \n",
+ "\n",
+ "d is 50 mm \n",
+ "\n",
+ "D is 150 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi\n",
+ "Z1=1#\n",
+ "Z2=30#\n",
+ "q=10#\n",
+ "m=5#\n",
+ "d=q*m#\n",
+ "D=m*Z2#\n",
+ "#let the speed reduction ratio be G\n",
+ "G=Z2/Z1#\n",
+ "CD=(d+D)/2#\n",
+ "print \"G is %0.0f \"%(G)#\n",
+ "print \"\\nCD is %0.0f mm \"%(CD)#\n",
+ "print \"\\nd is %0.0f mm \"%(d)#\n",
+ "print \"\\nD is %0.0f mm \"%(D)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 28-2 - Page 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i is 52 \n",
+ "\n",
+ "CD is 248 mm \n",
+ "\n",
+ "pa is 25.13 mm \n",
+ "\n",
+ "da is 96 mm \n",
+ "\n",
+ "df is 60.975 mm \n",
+ "\n",
+ "Da is 431.841 mm \n",
+ "\n",
+ "Df is 396.816 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import tan, atan, cos,pi\n",
+ "Z1=1#\n",
+ "Z2=52#\n",
+ "q=10#\n",
+ "m=8#\n",
+ "i=Z2/Z1#\n",
+ "CD=((m*q)+(m*Z2))/2#\n",
+ "lamda=atan(Z1/q)#\n",
+ "d=q*m#\n",
+ "da=m*(q+2)#\n",
+ "df=m*(q+2-(4.4*cos(lamda)))#\n",
+ "pa=m*pi#\n",
+ "D=m*Z2#\n",
+ "Da=m*(Z2+(4*cos(lamda))-2)#\n",
+ "Df=m*(Z2-2-(0.4*cos(lamda)))#\n",
+ "print \"i is %0.0f \"%(i)#\n",
+ "print \"\\nCD is %0.0f mm \"%(CD)#\n",
+ "print \"\\npa is %0.2f mm \"%(pa)#\n",
+ "print \"\\nda is %0.0f mm \"%(da)#\n",
+ "print \"\\ndf is %0.3f mm \"%(df)#\n",
+ "print \"\\nDa is %0.3f mm \"%(Da)#\n",
+ "print \"\\nDf is %0.3f mm \"%(Df)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 28-3 - Page 727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ptw=Pag is 1591.5 N \n",
+ "\n",
+ "Paw=Ptg is 5487 N \n",
+ "\n",
+ "Prw=Prg is 1188 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi,sin,cos,atan\n",
+ "Z1=2#\n",
+ "Z2=60#\n",
+ "q=10#\n",
+ "m=5#\n",
+ "P=6000#\n",
+ "N=1440#\n",
+ "u=0.08#\n",
+ "alpha=20*pi/180#\n",
+ "lamda=atan(Z1/q)#\n",
+ "d=m*q#\n",
+ "w=2*pi*N/60#\n",
+ "T=P/w#\n",
+ "Ptw=T*10**3/(d/2)#\n",
+ "a=cos(alpha)#\n",
+ "b=cos(lamda)#\n",
+ "x=sin(alpha)#\n",
+ "y=sin(lamda)#\n",
+ "Paw=Ptw*(((a*b)-(u*y))/((a*y)+(u*b)))#\n",
+ "Prw=Ptw*y/((a*y)+(u*b))#\n",
+ "#Paw=Ptw*((cos(alpha)*cos(lambda))-(u*sin(lambda)))/((cos(alpha)*sin(lambda))+(u*cos(lambda)))#\n",
+ "#Prw=Ptw*((sin(alpha))/((cos(alpha)*sin(lambda))+(u*cos(lambda))))#\n",
+ "print \"Ptw=Pag is %0.1f N \"%(Ptw)#\n",
+ "print \"\\nPaw=Ptg is %0.0f N \"%(Paw)#\n",
+ "print \"\\nPrw=Prg is %0.0f N \"%(Prw)#\n",
+ " \n",
+ "#The difference in the value is due to rounding-off the values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 28-4 - Page 728"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P is 1.2 kW \n",
+ "\n",
+ "Po is 1.047 kW \n",
+ "\n",
+ "Pf is 0.153 kW \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, cos,atan,tan,sin\n",
+ "Z1=2#\n",
+ "Z2=40#\n",
+ "q=8#\n",
+ "m=5#\n",
+ "d=q*m#\n",
+ "P=1.2#\n",
+ "lamda=atan(Z1/q)#\n",
+ "N=1000#\n",
+ "Vt=2*pi*N*20/(60*1000)#\n",
+ "Vs=Vt/cos(lamda)#\n",
+ "u=0.032#\n",
+ "alpha=20*pi/180#\n",
+ "x=cos(alpha)#\n",
+ "y=tan(lamda)#\n",
+ "z=(cos(lamda))/sin(lamda)#\n",
+ "n=(x-(u*y))/(x+(u*z))#\n",
+ "#Let power output be Po\n",
+ "Po=P*n#\n",
+ "#Let power lost in friction be Pf\n",
+ "Pf=P-Po#\n",
+ "print \"P is %0.1f kW \"%(P)#\n",
+ "print \"\\nPo is %0.3f kW \"%(Po)#\n",
+ "print \"\\nPf is %0.3f kW \"%(Pf)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 28-5 - Page 729"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "n is 0.865 \n",
+ "\n",
+ "delT is 18.73 deg \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, cos,atan,tan,sin\n",
+ "Z1=2#\n",
+ "Z2=54#\n",
+ "q=10#\n",
+ "m=8#\n",
+ "P=4000#\n",
+ "A=1.8#\n",
+ "K=16#\n",
+ "N=1000#\n",
+ "u=0.028#\n",
+ "lamda=atan(Z1/q)#\n",
+ "alpha=20*pi/180#\n",
+ "d=m*q#\n",
+ "Vt=2*pi*N*d/(2*60*1000)#\n",
+ "Vs=Vt/cos(lamda)#\n",
+ "x=cos(alpha)#\n",
+ "y=tan(lamda)#\n",
+ "z=(cos(lamda))/sin(lamda)#\n",
+ "n=(x-(u*y))/(x+(u*z))#\n",
+ "delT=P*(1-n)/(K*A)#\n",
+ "print \"n is %0.3f \"%(n)#\n",
+ "print \"\\ndelT is %0.2f deg \"%(delT)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 28-6 - Page 729"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Sb is 8286 N \n",
+ "\n",
+ "Sw is 3362 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, cos,atan,tan,sin\n",
+ "Z1=1#\n",
+ "Z2=30#\n",
+ "q=10#\n",
+ "m=6#\n",
+ "#Let the ultimate strength of gear is sigut\n",
+ "#Let the allowable strenth of wheel is sigb\n",
+ "sigut=450#\n",
+ "sigb=84#\n",
+ "N=1200#\n",
+ "n=N/Z2#\n",
+ "alpha=20*pi/180#\n",
+ "d=m*q#\n",
+ "D=Z2*m#\n",
+ "b=3*d/4#\n",
+ "V=2*pi*n*D/(2*60*1000)#\n",
+ "Cv=6/(6+V)#\n",
+ "y=0.154-(0.912/Z2)#\n",
+ "Y=pi*y#\n",
+ "Sb=sigb*b*Cv*m*Y#\n",
+ "K=0.415#\n",
+ "Sw=b*D*K#\n",
+ "print \"Sb is %0.0f N \"%(Sb)#\n",
+ "print \"\\nSw is %0.0f N \"%(Sw)#\n",
+ "\n",
+ "#The difference in the value of Sb is due to rounding-off the values."
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch29_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch29_2.ipynb
new file mode 100644
index 00000000..0f58d4f6
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch29_2.ipynb
@@ -0,0 +1,264 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:29 Gearbox"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 29-1 - Page 749"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ratio for third gear is 1.471 \n",
+ "\n",
+ "ratio for second gear is -0.2857 \n",
+ "\n",
+ "ratio for first gear is 4.5 \n",
+ "\n",
+ "ratio for reverse gear is -6.000 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi\n",
+ "Ts1=16#\n",
+ "Ts2=18#\n",
+ "Ts3=20#\n",
+ "Ts4=25#\n",
+ "Tr1=64#\n",
+ "Tr2=63#\n",
+ "Tr3=70#\n",
+ "Tr4=50#\n",
+ "#Let Nr1/Nr2=G1\n",
+ "G1=1+(Ts1/Tr1)#\n",
+ "#Let Nr1/Ni=G2\n",
+ "G2=(Ts2/(Tr2*(1-(1/G1)+(Ts2/Tr2))))#\n",
+ "#Let Ni/No=G3 (third gear)\n",
+ "G3=(1+(Ts3/Tr3))/((Ts3/Tr3)+G2)#\n",
+ "\n",
+ "#Let Ni/Nr1=G4\n",
+ "#The ratio calculations are done as above\n",
+ "G4=1.2857/0.2857#\n",
+ "#Let Ni/No =G5(second gear)\n",
+ "G5=-20/70#\n",
+ "#Let Ni/No=G6(first gear)\n",
+ "G6=1.2857/0.2857#\n",
+ "#Let Ni/No=G7(reverse gear)\n",
+ "G7=-1.7143/0.2857#\n",
+ "print \"ratio for third gear is %0.3f \"%(G3)#\n",
+ "print \"\\nratio for second gear is %0.4f \"%(G5)#\n",
+ "print \"\\nratio for first gear is %0.1f \"%(G6)#\n",
+ "print \"\\nratio for reverse gear is %0.3f \"%(G7)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 29-2 - Page 751"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "T1 is 20 \n",
+ "\n",
+ "T2 is 33 \n",
+ "\n",
+ "T3 is 50 \n",
+ "\n",
+ "T4 is 37 \n",
+ "\n",
+ "T5 is 47 \n",
+ "\n",
+ "T6 is 23 \n",
+ "\n",
+ "T7 is 18 \n",
+ "\n",
+ "G1 is 5.109 \n",
+ "\n",
+ "G2 is 2.291 \n",
+ "\n",
+ "G3 is 1.0 \n",
+ "\n",
+ "R is 5.676 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Let reverse speed gear be RSG\n",
+ "RSG=5.5#\n",
+ "#Let T5/T6 = Z1\n",
+ "T1=2#\n",
+ "#Let T3/T7 = Z2\n",
+ "Z2=2.75#\n",
+ "T7=18#\n",
+ "T3=Z2*T7#\n",
+ "T3=50#\n",
+ "#Let T3/T1 =Z3\n",
+ "Z3=2.5#\n",
+ "T1=T3/Z3#\n",
+ "#Let T4/T2 = Z4\n",
+ "Z4=2.25/2#\n",
+ "T2=(T1+T3)/(Z4+1)#\n",
+ "T4=T1+T3-T2#\n",
+ "#Let T5/T6=Z5\n",
+ "Z5=2#\n",
+ "T6=(T1+T3)/3#\n",
+ "T5=(T1+T3)-T6#\n",
+ "T7=18#\n",
+ "#let first gear ratio is G1\n",
+ "G1=50*47/(20*23)#\n",
+ "\n",
+ "#Let 2nd gear ratio is G2\n",
+ "G2=37*47/(33*23)#\n",
+ "#Let 3rd gear ratio is G3\n",
+ "G3=1#\n",
+ "#Let reverse gear ratio is R\n",
+ "R=50*47/(18*23)#\n",
+ "print \"T1 is %0.0f \"%(T1)#\n",
+ "print \"\\nT2 is %0.0f \"%(T2)#\n",
+ "print \"\\nT3 is %0.0f \"%(T3)#\n",
+ "print \"\\nT4 is %0.0f \"%(T4)#\n",
+ "print \"\\nT5 is %0.0f \"%(T5)#\n",
+ "print \"\\nT6 is %0.0f \"%(T6)#\n",
+ "print \"\\nT7 is %0.0f \"%(T7)#\n",
+ "print \"\\nG1 is %0.3f \"%(G1)#\n",
+ "print \"\\nG2 is %0.3f \"%(G2)#\n",
+ "print \"\\nG3 is %0.1f \"%(G3)#\n",
+ "print \"\\nR is %0.3f \"%(R)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 29-3 - Page 752"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "T1 is 23 \n",
+ "\n",
+ "T2 is 46 \n",
+ "\n",
+ "T3 is 32 \n",
+ "\n",
+ "T4 is 37 \n",
+ "\n",
+ "T5 is 27 \n",
+ "\n",
+ "T6 is 42 \n",
+ "\n",
+ "T7 is 18 \n",
+ "\n",
+ "T8 is 51 \n",
+ "\n",
+ "T9 is 18 \n",
+ "\n",
+ "G1 is 5.667 \n",
+ "\n",
+ "G2 is 3.114 \n",
+ "\n",
+ "G3 is 1.000 \n",
+ "\n",
+ "G4 is -5.667 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Let the constant gear ratio be G\n",
+ "G=2#\n",
+ "x=5.5**(1/3)#\n",
+ "G1=1#\n",
+ "G2=x#\n",
+ "G3=x*x#\n",
+ "G4=x**3#\n",
+ "T7=18#\n",
+ "T8=T7*(x**3)/2#\n",
+ "T8=51#\n",
+ "T5=69/2.558#\n",
+ "T6=69-27#\n",
+ "T4=69/1.8825#\n",
+ "T3=69-T4#\n",
+ "T1=23#\n",
+ "T2=46#\n",
+ "T9=18#\n",
+ "G1=T2*T8/(T1*T7)#\n",
+ "G2=T2*T6/(T1*T5)#\n",
+ "G3=1#\n",
+ "G4=-T2*T8/(T1*T9)#\n",
+ "print \"T1 is %0.0f \"%(T1)#\n",
+ "print \"\\nT2 is %0.0f \"%(T2)#\n",
+ "print \"\\nT3 is %0.0f \"%(T3)#\n",
+ "print \"\\nT4 is %0.0f \"%(T4)#\n",
+ "print \"\\nT5 is %0.0f \"%(T5)#\n",
+ "print \"\\nT6 is %0.0f \"%(T6)#\n",
+ "print \"\\nT7 is %0.0f \"%(T7)#\n",
+ "print \"\\nT8 is %0.0f \"%(T8)#\n",
+ "print \"\\nT9 is %0.0f \"%(T9)#\n",
+ "print \"\\nG1 is %0.3f \"%(G1)#\n",
+ "print \"\\nG2 is %0.3f \"%(G2)#\n",
+ "print \"\\nG3 is %0.3f \"%(G3)#\n",
+ "print \"\\nG4 is %0.3f \"%(G4)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch30_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch30_2.ipynb
new file mode 100644
index 00000000..d03107c1
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch30_2.ipynb
@@ -0,0 +1,217 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:30 Chain drive"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 30-1 - Page 778"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "C is 300.00 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi\n",
+ "n1=17#\n",
+ "n2=51#\n",
+ "C=300#\n",
+ "p=9.52#\n",
+ "Ln=(2*C/p)+((n1+n2)/2)+((((n2-n1)/(2*pi))**2)*(p/C))#\n",
+ "x=(Ln-((n2+n1)/(2)))**2#\n",
+ "y=8*(((n2-n1)/(2*pi))**2)#\n",
+ "z=Ln-((n1+n2)/2)#\n",
+ "C=(p/4)*(z+(sqrt(x-y)))\n",
+ "\n",
+ "\n",
+ " # printing data in scilab o/p window\n",
+ "print \"C is %0.2f mm \"%(C)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 30-2 - Page 778"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ln is 80 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import tan\n",
+ "G=4#\n",
+ "n1=17#\n",
+ "n2=n1*G#\n",
+ "N1=2300#\n",
+ "Kc=1.2# #from table 30-2\n",
+ "p=12.7# #fom table 30-1\n",
+ "D1=p*n1#\n",
+ "D2=p*n2#\n",
+ "phi=2*10.6#\n",
+ "x=tan(phi/2)# #phi/2 = 10.6deg, from table 30-3\n",
+ "Da1=(p/x)+(0.6*p)#\n",
+ "Da2=(p/x*4)+(0.6*p)#\n",
+ "Cmin=Kc*((Da1+Da2)/2)#\n",
+ "Ln1=(2*Cmin/p)+((n1+n2)/2)+((((n2-n1)/(2*pi))**2)*(p/Cmin))#\n",
+ "Ln1=80#\n",
+ "print \"Ln is %0.0f \"%(Ln1)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 30-3 - Page 779"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Pc is 2.56 KW \n",
+ "\n",
+ " V is 3.332 m/s \n",
+ "\n",
+ " T is 767.6 N \n",
+ "\n",
+ " FOS is 13.94 \n",
+ "\n",
+ " L is 1254.01 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "N1=1000#\n",
+ "N2=500#\n",
+ "P=2.03*10**3# #from table 30-8\n",
+ "K1=1.26#\n",
+ "Ks=1#\n",
+ "#let Pc be the power transmitting capacity of the chain\n",
+ "Pc=P*K1/Ks#\n",
+ "p=9.52#\n",
+ "n1=21#\n",
+ "n2=42#\n",
+ "V=n1*p*N1/(60*10**3)#\n",
+ "#Let the chain tension be T\n",
+ "T=Pc/V#\n",
+ "#Let the breaking load be BL\n",
+ "BL=10700#\n",
+ "FOS=BL/T#\n",
+ "C=50*p#\n",
+ "Ln=(2*C/p)+((n1+n2)/2)+((((n2-n1)/(2*pi))**2)*(p/C))#\n",
+ "L=Ln*p#\n",
+ "Pc=Pc*10**-3#\n",
+ "print \" Pc is %0.2f KW \"%(Pc)#\n",
+ "print \"\\n V is %0.3f m/s \"%(V)#\n",
+ "print \"\\n T is %0.1f N \"%(T)#\n",
+ "print \"\\n FOS is %0.2f \"%(FOS)#\n",
+ "print \"\\n L is %0.2f mm \"%(L)#\n",
+ "\n",
+ "#The difference in the value of L and T is due to rounding-off the values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 30-5 - Page 780"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "L is 1678.25 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "G=2#\n",
+ "P=5000#\n",
+ "Ks=1.7#\n",
+ "Pd=P*Ks#\n",
+ "K2=1.7#\n",
+ "p=15.88#\n",
+ "n1=17#\n",
+ "n2=n1*G#\n",
+ "D1=n1*p#\n",
+ "D2=n2*p#\n",
+ "C=40*p#\n",
+ "Ln=(2*C/p)+((n1+n2)/2)+((((n2-n1)/(2*pi))**2)*(p/C))#\n",
+ "L=Ln*p#\n",
+ "print \"L is %0.2f mm \"%(L)#\n",
+ "#The difference in the value of L is due to rounding-off the values."
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch31_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch31_2.ipynb
new file mode 100644
index 00000000..024ea67d
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch31_2.ipynb
@@ -0,0 +1,180 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:31 Seals packing and gaskets"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 31-1 - Page 816"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "N is 4.47 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, log\n",
+ "d=18#\n",
+ "lg=25+25#\n",
+ "Eb=210*10**3#\n",
+ "Ecl=90*10**3#\n",
+ "A=pi*d**2/4#\n",
+ "kb=A*Eb/lg#\n",
+ "x=(5*(lg+(0.5*d))/(lg+(2.5*d)))#\n",
+ "km=pi*Ecl*d/(2*log(x))#\n",
+ "C=kb/(kb+km)#\n",
+ "sigp=600#\n",
+ "At=192#\n",
+ "Pi=0.75*sigp*At#\n",
+ "F=200#\n",
+ "C=0.322#\n",
+ "Pb=F*C*10**3#\n",
+ "FOS=2#\n",
+ "W=At*sigp#\n",
+ "N=Pb*FOS/(W-Pi)#\n",
+ "print \"N is %0.2f \"%(N)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 31-2 - Page 816"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "p is 6.922 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, log\n",
+ "d=16#\n",
+ "D=1.5*d#\n",
+ "t=20#\n",
+ "tg=4#\n",
+ "#Let Gasket diameter in compression zone be d1\n",
+ "d1=D+(2*t)+tg#\n",
+ "lg=40#\n",
+ "E=207*10**3#\n",
+ "kb=pi*d**2*E/(lg*4)#\n",
+ "Ecl=90*10**3#\n",
+ "x=(5*(lg+(0.5*d))/(lg+(2.5*d)))#\n",
+ "kp=pi*Ecl*d/(2*log(x))#\n",
+ "Ag=pi*(d1**2-d**2)/4#\n",
+ "Eg=480#\n",
+ "kg=Ag*Eg/tg#\n",
+ "km=kg*kp/(kg+kp)#\n",
+ "C=kb/(kb+km)#\n",
+ "At=157#\n",
+ "sigp=600#\n",
+ "Pi=0.75*At*sigp/2#\n",
+ "FOS=2#\n",
+ "Pf=At*sigp/FOS#\n",
+ "W=Pf-Pi#\n",
+ "P=W/C#\n",
+ "N=5#\n",
+ "F=P*N#\n",
+ "p=F*4/(pi*120**2)#\n",
+ "print \"p is %0.3f N/mm**2 \"%(p)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 31-3 - Page 817"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d is 20 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from numpy import mat, pi, sqrt\n",
+ "sigp=600#\n",
+ "FOS=3#\n",
+ "siga=sigp/FOS#\n",
+ "d=16#\n",
+ "D=1.5*d+60#\n",
+ "#Let Gasket diameter in compression zone be d1\n",
+ "d1=(300-160)/2#\n",
+ "#Let compressive stress in gasket for leak proof joint be sigl\n",
+ "sigl=12#\n",
+ "At=mat([[1, 157],[2 ,192], [3, 245]])\n",
+ "d=mat([[1 ,16],[2 ,18],[3, 20]])\n",
+ "\n",
+ "n=3#\n",
+ "Pi = range(0,n)\n",
+ "Pc = range(0,n)\n",
+ "for i in range(0,n):\n",
+ " Pi[i]=At[i,1]*d[i,1]\n",
+ " Pc[i]=3*pi*(d1**2-d[i,1]**2)\n",
+ " if (Pi[i]>=Pc[i]):\n",
+ " print \"The Design is safe\"\n",
+ "\n",
+ "print \"d is %0.0f mm \"%(d[i,1])#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch3_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch3_2.ipynb
new file mode 100644
index 00000000..eab09e70
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch3_2.ipynb
@@ -0,0 +1,1391 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch : 3 Mechanics of solids"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-1 - Page 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " sigi is 146.37 N/mm**2 \n",
+ "\n",
+ " deli is 1.05 mm \n",
+ "\n",
+ " siggradual is 1.50 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "d=10 \n",
+ "l=1500 \n",
+ "m=12 \n",
+ "h=50 \n",
+ "E=210*10**3 \n",
+ "sigut=450 \n",
+ "A=pi*d**2/4 \n",
+ "W=m*9.81 \n",
+ "sigi=W/A*(1+sqrt(1+(2*E*A*h)/(W*l))) \n",
+ "deli=sigi*l/E \n",
+ "siggradual=W/A \n",
+ "sigsudden=2*siggradual \n",
+ "print \" sigi is %0.2f N/mm**2 \"%(sigi) \n",
+ "print \"\\n deli is %0.2f mm \"%(deli) \n",
+ "print \"\\n siggradual is %0.2f N/mm**2 \"%(siggradual) \n",
+ "\n",
+ "# The difference in the answer of sigi and siggradual is due to round-off errors."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-2 - Page 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "del is 16.42 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "d=5 \n",
+ "A=pi*d**2/4 \n",
+ "l=100*10**3 \n",
+ "W=600 \n",
+ "E=210*10**3 \n",
+ "w=0.0784*10**-3 \n",
+ "del1=W*l/(A*E) \n",
+ "del2=w*l**2/(2*E) \n",
+ "Del=del1+del2 \n",
+ "print \"del is %0.2f mm \"%(Del) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-3 - Page 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "del is 69.41 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "m=25 \n",
+ "v=3 \n",
+ "E=210*10**3 \n",
+ "KE=0.5*m*v**2 \n",
+ "d=30 \n",
+ "L=2000 \n",
+ "A=pi*d**2/4 \n",
+ "U=A*L/(2*E) \n",
+ "Del=4*10**-5*A \n",
+ "W=A*Del \n",
+ "sigi=sqrt(KE*10**3/(W+U)) \n",
+ "print \"del is %0.2f N/mm**2 \"%(sigi) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-4 - Page 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "sigmax1 is 62.96 N/mm**2 \n",
+ "\n",
+ "sigmax2 is 55.56 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "P=40*10**3 \n",
+ "A=60*18 \n",
+ "sig=P/A \n",
+ "r1=12 \n",
+ "b1=60 \n",
+ "SCF1=1.7 \n",
+ "sigmax1=sig*SCF1 \n",
+ "r2=24 \n",
+ "b2=60 \n",
+ "SCF2=1.5 \n",
+ "sigmax2=sig*SCF2 \n",
+ "print \"sigmax1 is %0.2f N/mm**2 \"%(sigmax1) \n",
+ "print \"\\nsigmax2 is %0.2f N/mm**2 \"%(sigmax2) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-5 - Page 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "sigt is 33.87 N/mm**2 \n",
+ "\n",
+ "sigb is 52.26 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "p=2.4 \n",
+ "#Let axial movement of nut be La\n",
+ "La=p*45/360 \n",
+ "d=20 \n",
+ "D=30 \n",
+ "L=500 \n",
+ "d1=18 \n",
+ "As=pi*d1**2/4 \n",
+ "Ac=pi*(D**2-d**2)/4 \n",
+ "sigt=120/(3.543) \n",
+ "sigb=1.543*sigt \n",
+ "print \"sigt is %0.2f N/mm**2 \"%(sigt) \n",
+ "print \"\\nsigb is %0.2f N/mm**2 \"%(sigb) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-6 - Page 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " P is 162.73 kN \n",
+ "\n",
+ " delL is 0.38 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "delT=100 \n",
+ "ab=18*10**-6 \n",
+ "aa=23*10**-6 \n",
+ "delta=(360*ab*delT)+(450*aa*delT) \n",
+ "lc=delta-0.6 \n",
+ "Ea=70*10**3 \n",
+ "Eb=105*10**3 \n",
+ "Aa=1600 \n",
+ "Ab=1300 \n",
+ "P=lc/((360/(Ab*Eb))+(450/(Aa*Ea))) \n",
+ "P=P*10**-3 \n",
+ "#Let the change in length be delL\n",
+ "delL=(aa*450*delT)-(P*10**3*450/(Aa*Ea)) \n",
+ "print \" P is %0.2f kN \"%(P) \n",
+ "print \"\\n delL is %0.2f mm \"%(delL) \n",
+ " \n",
+ "# The difference in the answer of delL is due to round-off errors."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-7 - Page 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "delT is 68.12 degC \n"
+ ]
+ }
+ ],
+ "source": [
+ "a=23*10**-6 \n",
+ "E=70*10**3 \n",
+ "l=750 \n",
+ "sig=35 \n",
+ "delT=((sig*l/E)+0.8)/(l*a) \n",
+ "print \"delT is %0.2f degC \"%(delT) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-8 - Page 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Stress on plane AB is 14.00 MPa \n",
+ "\n",
+ " Stress on plane AB is 49.50 MPa \n",
+ "\n",
+ " Principal stress p1 is 70.00 MPa \n",
+ "\n",
+ " Principal stress p2 is -30.00 MPa \n",
+ "\n",
+ " Principal angle theta1 is -18.50 deg \n",
+ "\n",
+ " Principal angle theta2 is 71.50 deg \n",
+ "\n",
+ " Maximum shear stress is 50.00 MPa \n",
+ "\n",
+ " Direction of plane theta3 is 26.50 deg \n",
+ "\n",
+ " Direction of plane theta4 is 116.50 deg \n"
+ ]
+ }
+ ],
+ "source": [
+ "OA=60 \n",
+ "AB=30 \n",
+ "OC=-20 \n",
+ "CD=-30 \n",
+ "theta=30 \n",
+ "angBEK=2*theta \n",
+ "OM=14 \n",
+ "KM=49.5 \n",
+ "p1=70 \n",
+ "p2=-30 \n",
+ "angBEH=-37 \n",
+ "angBEI=143 \n",
+ "theta1=angBEH/2 \n",
+ "theta2=angBEI/2 \n",
+ "Tmax=50 \n",
+ "angBEL=53 \n",
+ "angBEN=233 \n",
+ "theta3=angBEL/2 \n",
+ "theta4=angBEN/2 \n",
+ "print \" Stress on plane AB is %0.2f MPa \"%(OM) \n",
+ "print \"\\n Stress on plane AB is %0.2f MPa \"%(KM) \n",
+ "print \"\\n Principal stress p1 is %0.2f MPa \"%(p1) \n",
+ "print \"\\n Principal stress p2 is %0.2f MPa \"%(p2) \n",
+ "print \"\\n Principal angle theta1 is %0.2f deg \"%(theta1) \n",
+ "print \"\\n Principal angle theta2 is %0.2f deg \"%(theta2) \n",
+ "print \"\\n Maximum shear stress is %0.2f MPa \"%(Tmax) \n",
+ "print \"\\n Direction of plane theta3 is %0.2f deg \"%(theta3) \n",
+ "print \"\\n Direction of plane theta4 is %0.2f deg \"%(theta4) \n",
+ "\n",
+ "#The answers in the book are written in form of degrees and minutes."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-9 - Page 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "p1 is 121.76 MN/mm**2 \n",
+ "\n",
+ " p2 is -76.69 MN/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "E=200*10**3 \n",
+ "v=0.29 \n",
+ "E1=720*10**-6 \n",
+ "E2=560*10**-6 \n",
+ "p1=121.76 \n",
+ "p2=-76.69 \n",
+ "print \"p1 is %0.2f MN/mm**2 \"%(p1) \n",
+ "print \"\\n p2 is %0.2f MN/mm**2 \"%(p2) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-10 - Page 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "v is 0.3136 \n",
+ "\n",
+ "E is 99.837 kN/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "G=38*10**3 \n",
+ "d=10 \n",
+ "P=5*10**3 \n",
+ "A=pi*d**2/4 \n",
+ "sig=P/A \n",
+ "deld=0.0002 \n",
+ "#Let the lateral strain be E1\n",
+ "E1=deld/d \n",
+ "v=2*deld*G/(sig-(2*deld*G)) \n",
+ "E=2*G*(1+v)*10**-3 \n",
+ "print \"v is %0.4f \"%(v) \n",
+ "print \"\\nE is %0.3f kN/mm**2 \"%(E) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-11 - Page 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t is 12.0 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "D=1500 \n",
+ "p=1.2 \n",
+ "sigt=100 \n",
+ "sigc=p*D/2 \n",
+ "siga=p*D/4 \n",
+ "P=sigc*2*10**3 \n",
+ "n=0.75 \n",
+ "t=sigc/(n*sigt) \n",
+ "print \"t is %0.1f mm \"%(t) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-12 - Page 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "sigw is 64.52 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "D=50 \n",
+ "t=1.25 \n",
+ "d=0.5 \n",
+ "n=1/d \n",
+ "p=1.5 \n",
+ "siga=p*D/(4*t) \n",
+ "sigc=20.27 \n",
+ "sigw=sigc/0.31416 \n",
+ "print \"sigw is %0.2f N/mm**2 \"%(sigw) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-13 - Page 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t is 50.0 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "R1=50 \n",
+ "p=75 \n",
+ "pmax=125 \n",
+ "R2=sqrt((pmax+p)*R1**2/(pmax-p)) \n",
+ "t=R2-R1 \n",
+ "print \"t is %0.1f mm \"%(t) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-14 - Page 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Fa is 13.52 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "R1=40 \n",
+ "R2=60 \n",
+ "B=50 \n",
+ "E=210*10**3 \n",
+ "e=41*10**-6 \n",
+ "sig=2*R1**2/(R2**2-R1**2) \n",
+ "p=E*e/sig \n",
+ "Fr=p*2*pi*R1*B \n",
+ "u=0.2 \n",
+ "Fa=u*Fr*10**-3 \n",
+ "print \"Fa is %0.2f kN \"%(Fa) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-15 - Page 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "W is 1.333 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "a1=10*1.5 \n",
+ "x1=15-0.75 \n",
+ "a2=1.5*(15-1.5) \n",
+ "x2=(15-1.5)/2 \n",
+ "y1=((a1*x1)+(a2*x2))/(a1+a2) \n",
+ "y2=a1-y1 \n",
+ "Ixx=(10*1.5**3)/12+(10*1.5*(5.06-1.5/2)**2)+(1.5*13.5**3/12)+(1.5*13.5*(9.94-6.75)**2) \n",
+ "Z1=Ixx/y1 \n",
+ "Z2=Ixx/y2 \n",
+ "L=3 \n",
+ "sigc=50 \n",
+ "W=sigc*Z1/L*10**-3 \n",
+ "print \"W is %0.3f kN \"%(W) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-16 - Page 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "M is 46.410 Nm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "D=22 \n",
+ "d=20 \n",
+ "r=1 \n",
+ "K=2.2 \n",
+ "sigmax=130 \n",
+ "sigmax=sigmax/K \n",
+ "Z=pi*d**3/32 \n",
+ "M=sigmax*Z*10**-3 \n",
+ "print \"M is %0.3f Nm \"%(M) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-17 - Page 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Z1/Zr is 4.84 \n",
+ "\n",
+ "sigmax is 41.33 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "A=(12*2)+(12*2)+(30-4) \n",
+ "B=sqrt(A/2) \n",
+ "D=2*B \n",
+ "B1=12 \n",
+ "D1=30 \n",
+ "d=26 \n",
+ "b=1 \n",
+ "Z1=((B1*D1**3)-((B1-b)*d**3))/(B1*D1/2) \n",
+ "Zr=B*D**2/6 \n",
+ "#Let the ratio of both the sections be x\n",
+ "x=Z1/Zr \n",
+ "M=30*10**6 \n",
+ "sigmax=M/(Z1*10**3) \n",
+ "print \"Z1/Zr is %0.2f \"%(x) \n",
+ "print \"\\nsigmax is %0.2f N/mm**2 \"%(sigmax) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-19 - Page 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P is 49.38 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "x1=((13*3*1.5)+(2*15*8))/(39+30) \n",
+ "x2=13-x1 \n",
+ "A=30+39 \n",
+ "E=2*10**7 \n",
+ "Iyy=995.66 \n",
+ "e=54.32 \n",
+ "x=x2-3 \n",
+ "sigb=e*x/Iyy \n",
+ "sigd=1/69 \n",
+ "sigr=sigd+sigb \n",
+ "#Let the strain be E1\n",
+ "E1=800*10**-6 \n",
+ "P=E1*E/sigr \n",
+ "P=P*10**-3 \n",
+ "print \"P is %0.2f kN \"%(P) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-20 - Page 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "sigmax is 607.24 kN/m**2 \n",
+ "\n",
+ "sigmin is 232.76 kN/m**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "H=20 \n",
+ "D=5 \n",
+ "d=3 \n",
+ "rho=21 \n",
+ "sigd=rho*H \n",
+ "p=2 \n",
+ "A=D*H \n",
+ "P=p*A \n",
+ "M=P*H/2 \n",
+ "Z=pi*(D**4-d**4)/(32*D) \n",
+ "sigb=M/Z \n",
+ "sigmax=420+sigb \n",
+ "sigmin=420-sigb \n",
+ "print \"sigmax is %0.2f kN/m**2 \"%(sigmax) \n",
+ "print \"\\nsigmin is %0.2f kN/m**2 \"%(sigmin) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-21 - Page 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " T1 is 105.63 N/mm**2 \n",
+ "\n",
+ " theta is 4.92 deg \n",
+ "\n",
+ " Tr is 70.42 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "D=30 \n",
+ "R=15 \n",
+ "T=0.56*10**6 \n",
+ "G=82*10**3 \n",
+ "J=pi*R**4/2 \n",
+ "T1=T*R/J \n",
+ "l=1000 \n",
+ "theta=T*l/(G*J)*180/pi \n",
+ "r=10 \n",
+ "Tr=T1*r/R \n",
+ "print \" T1 is %0.2f N/mm**2 \"%(T1) \n",
+ "print \"\\n theta is %0.2f deg \"%(theta) \n",
+ "print \"\\n Tr is %0.2f N/mm**2 \"%(Tr) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-22 - Page 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Ts1 is 34.796 N/mm**2 \n",
+ "\n",
+ " Tc1 is 23.9 N/mm**2 \n",
+ "\n",
+ " theta/length is 0.623 deg/m \n",
+ "\n",
+ " Ts2 is 17.398 N/mm**2 \n",
+ "\n",
+ " Tc2 is 11.96 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "T=8*10**3 \n",
+ "d=80 \n",
+ "D=110 \n",
+ "l=2000 \n",
+ "Gst=80*10**3 \n",
+ "Gcop=Gst/2 \n",
+ "Js=pi*d**4/32 \n",
+ "Jc=pi*(D**4-d**4)/32 \n",
+ "#Ts=0.777*Tc\n",
+ "Tc=T/1.777*10**3 \n",
+ "Ts=0.777*Tc \n",
+ "Ts1=Ts/Js*d/2 \n",
+ "Tc1=Tc/Jc*D/2 \n",
+ "#Let tl be Angular twist per unit length\n",
+ "tl=Ts*10**3/(Js*Gst)*180/pi \n",
+ "# Let the maximum stress developed when the Torque is acting in the centre of the shaft be Ts2 & Tc2 resp. for steel and copper\n",
+ "Ts2=Ts1/2 \n",
+ "Tc2=Tc1/2 \n",
+ "print \" Ts1 is %0.3f N/mm**2 \"%(Ts1) \n",
+ "print \"\\n Tc1 is %0.1f N/mm**2 \"%(Tc1) \n",
+ "print \"\\n theta/length is %0.3f deg/m \"%(tl) \n",
+ "print \"\\n Ts2 is %0.3f N/mm**2 \"%(Ts2) \n",
+ "print \"\\n Tc2 is %0.2f N/mm**2 \"%(Tc2) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-23 - Page 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tmax is 6.235 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "D=100 \n",
+ "d=75 \n",
+ "r=6 \n",
+ "K=1.45 \n",
+ "P=20*746 \n",
+ "N=400 \n",
+ "w=2*pi*N/60 \n",
+ "T=P/w \n",
+ "Ts=16*T*10**3/(pi*d**3) \n",
+ "Tmax=K*Ts \n",
+ "print \"Tmax is %0.3f MPa \"%(Tmax) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-24 - Page 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d is 21.0 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "G=84*10**3 \n",
+ "T=28*10**3 \n",
+ "l=1000 \n",
+ "theta=pi/180 \n",
+ "J=T*l/(G*theta) \n",
+ "d=(J*32/pi)**(1/4) \n",
+ "print \"d is %0.1f mm \"%(d) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-25 - Page 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d is 280.5 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "P=2*10**6 \n",
+ "N=200 \n",
+ "w=2*pi*N/60 \n",
+ "Tm=P/w \n",
+ "W=5*10**3*9.81 \n",
+ "l=1800 \n",
+ "Mmax=W*l/4 \n",
+ "Tmax=1.8*Tm*10**3 \n",
+ "Me=(Mmax+sqrt(Mmax**2+Tmax**2))/2 \n",
+ "Te=sqrt(Mmax**2+Tmax**2) \n",
+ "sig=60 \n",
+ "Ts=40 \n",
+ "d1=(32*Me/(pi*sig))**(1/3) \n",
+ "d2=(16*Te/(pi*Ts))**(1/3) \n",
+ "print \"d is %0.1f mm \"%(d2) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-26 - Page 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d1 is 11.38 mm \n",
+ "\n",
+ " d2 is 12.3 mm \n",
+ "\n",
+ " d3 is 11.74 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "Q=4*10**3 \n",
+ "P=8*10**3 \n",
+ "sig=P \n",
+ "T=Q \n",
+ "p1=(sig/2+sqrt((sig/2)**2+T**2)) \n",
+ "p2=(sig/2-sqrt((sig/2)**2+T**2)) \n",
+ "sigyp=285 \n",
+ "FOS=3 \n",
+ "siga=sigyp/3 \n",
+ "A1=p1/siga \n",
+ "d1=sqrt(4*A1/pi) \n",
+ "A2=(p1-p2)*2/(siga*2) \n",
+ "d2=sqrt(4*A2/pi) \n",
+ "v=0.3 \n",
+ "A3=sqrt(p1**2+p2**2-(2*v*p1*p2))/siga \n",
+ "d3=sqrt(4*A3/pi) \n",
+ "print \" d1 is %0.2f mm \"%(d1) \n",
+ "print \"\\n d2 is %0.1f mm \"%(d2) \n",
+ "print \"\\n d3 is %0.2f mm \"%(d3) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-27 - Page 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The component is safe\n",
+ "\n",
+ "Tmax is 117.4 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "sigx=-105 \n",
+ "Txy=105 \n",
+ "sigy=270 \n",
+ "p1=(sigx/2+sqrt((sigx/2)**2+Txy**2)) \n",
+ "p2=(sigx/2-sqrt((sigx/2)**2+Txy**2)) \n",
+ "p3=0 \n",
+ "Tmax=(p1-p2)/2 \n",
+ "siga=sigy/2 \n",
+ "if (Tmax<=siga) :\n",
+ " print \"The component is safe\"\n",
+ "print \"\\nTmax is %0.1f MPa \"%(Tmax) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-28 - Page 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "N is 1324.249 rpm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "rho=0.0078*9.81*10**-6 \n",
+ "sigc=150 \n",
+ "g=9.81 \n",
+ "V=sqrt(sigc*g/rho)*10**-3 \n",
+ "R=1 \n",
+ "w=V/R \n",
+ "N=w*60/(2*pi) \n",
+ "print \"N is %0.3f rpm \"%(N) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-29 - Page 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nMMYYky3/B0TYOSGQpC4+AAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7feb0a76e790>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "sigrmax is 28.4 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, xlabel, ylabel, show, grid\n",
+ "\n",
+ "R1=50 \n",
+ "R2=200 \n",
+ "N=6*10**3 \n",
+ "w=2*pi*N/60 \n",
+ "v=0.28 \n",
+ "rho=7800*10**-9 \n",
+ "g=9810 \n",
+ "k1=(3+v)/8 \n",
+ "k2=(1+(3*v))/8 \n",
+ "W=rho*9.81 \n",
+ "x=k1*w**2*W*(R1**2+R2**2)/g \n",
+ "y=k1*w**2*W*(R1*R2)**2/g \n",
+ "y1=k1*w**2*W/g \n",
+ "z=k2*w**2*W/g \n",
+ "r=sqrt(R1*R2) \n",
+ "sigrmax=x-(y/r**2)-(r**2*y1) \n",
+ "r=range(50,201)\n",
+ "n=len(r) \n",
+ "sigr = range(0,n)\n",
+ "for i in range(0,n):\n",
+ " sigr[i]=x-(y/r[i]**2)-(r[i]**2*y1)\n",
+ "\n",
+ "sigc = range(0,n)\n",
+ "for j in range(0,n):\n",
+ " sigc[j]=y/r[j]**2-(r[j]**2*z)\n",
+ "\n",
+ "plot(r,sigr) \n",
+ "plot (r,sigc) \n",
+ "xlabel('r in mm') \n",
+ "ylabel('stress in N/mm**2') \n",
+ "grid()\n",
+ "show()\n",
+ "print \"sigrmax is %0.1f MPa \"%(sigrmax) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-30 - Page 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t is 2.923 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from numpy import exp\n",
+ "r=500 \n",
+ "to=15 \n",
+ "N=3500 \n",
+ "w=2*pi*N/60 \n",
+ "sig=80 \n",
+ "w1=0.07644*10**-3 \n",
+ "g=9810 \n",
+ "a=w1*w**2*r**2/(2*sig*g) \n",
+ "t=to*exp(-a) \n",
+ "print \"t is %0.3f mm \"%(t) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-31 - Page 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "sigB is 61.5 MPa \n",
+ "\n",
+ "sigA is 36 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from numpy import log\n",
+ "M=60*10**3 \n",
+ "y1=((5*1*2.5)+(6*1*5.5))/(5+6) \n",
+ "y2=6-y1 \n",
+ "R=12 \n",
+ "R1=R-y2 \n",
+ "R1=10.136\n",
+ "R2=11.136 \n",
+ "R3=R1+6 \n",
+ "B=6 \n",
+ "b=1 \n",
+ "A=(B*b)+((B-1)*b) \n",
+ "#Let x= h**2/R**2\n",
+ "x=R/A*((B*log(R2/R1))+(b*log(R3/R2)))-1 \n",
+ "x=1/x \n",
+ "#Let Maximum compressive stress at B be sigB\n",
+ "sigB=M/(A*R)*(1+(x*y1/(R+y1)))*10**-2 \n",
+ "#Let Maximum tensile stress at A be sigA\n",
+ "sigA=M/(A*R)*((y2*x/(R-y2))-1)*10**-2 \n",
+ "print \"sigB is %0.1f MPa \"%(sigB) \n",
+ "print \"\\nsigA is %0.0f MPa \"%(sigA) \n",
+ " \n",
+ "#The answer to R**2/h**2 is calculated incorrectly in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-32 - Page 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ra is 96.70 N/mm**2 \n",
+ "\n",
+ "Rb is 70.14 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from numpy import log\n",
+ "R1=24 \n",
+ "R2=30 \n",
+ "R3=50 \n",
+ "R4=54 \n",
+ "F=200 \n",
+ "y1=((16*4*2)+(2*20*14*4)+(24*6*27))/((16*4)+(2*20*4)+(24*6)) \n",
+ "y2=30-y1 \n",
+ "R=24+y2 \n",
+ "A=(24*6)+(2*4*20)+(4*16) \n",
+ "#Let x= h**2/R**2\n",
+ "x=R/A*((24*log(R2/R1))+(2*4*log(R3/R2))+(16*log(R4/R3)))-1 \n",
+ "x=1/x \n",
+ "M=F*(60+R) \n",
+ "sigd=F/A \n",
+ "#Let bending stress at a be sigA\n",
+ "sigA=M/(A*R)*((y2*x/(R-y2))-1) \n",
+ "#Let bending stress at b be sigB\n",
+ "sigB=M/(A*R)*(1+(x*y1/(R+y1))) \n",
+ "#Let resultant at a be Ra\n",
+ "Ra=(sigA+sigd)*10 \n",
+ "#Let resultant at b be Rb\n",
+ "Rb=(sigB-sigd)*10 \n",
+ "print \"Ra is %0.2f N/mm**2 \"%(Ra) \n",
+ "print \"\\nRb is %0.2f N/mm**2 \"%(Rb) \n",
+ "#The difference in the answers are due to rounding-off of values."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 3-33 - Page 95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "sigA is 31.59 MPa \n",
+ "\n",
+ "sigB is 71.64 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from numpy import log\n",
+ "F=50 \n",
+ "B1=4 \n",
+ "B2=8 \n",
+ "D=12 \n",
+ "y1=D/3*(B1+(2*B2))/(B1+B2) \n",
+ "y2=12-y1 \n",
+ "R=6+y2 \n",
+ "A=(B1+B2)/2*D \n",
+ "#Let x= h**2/R**2\n",
+ "a=(B1+((B2-B1)*(y1+R)/D))*log((R+y1)/(R-y2))\n",
+ "x=R/(A)*(a -(B2-B1)) \n",
+ "x=x-1 \n",
+ "x=1/x \n",
+ "KG=y2+8 \n",
+ "M=F*KG \n",
+ "sigd=F/A \n",
+ "#Let bending stress at a be sigA\n",
+ "sigA=M/(A*R)*(1+(x*y1/(R+y1))) \n",
+ "#Let bending stress at b be sigB\n",
+ "sigB=M/(A*R)*((y2*x/(R-y2))-1) \n",
+ "sigA=(sigA-sigd)*10 \n",
+ "sigB=(sigB+sigd)*10 \n",
+ "print \"sigA is %0.2f MPa \"%(sigA) \n",
+ "print \"\\nsigB is %0.2f MPa \"%(sigB) \n",
+ "#The difference in the answers are due to rounding-off of values."
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch4_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch4_2.ipynb
new file mode 100644
index 00000000..2ff40961
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch4_2.ipynb
@@ -0,0 +1,271 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:4 Manufacturing considerations"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 4-1 - Page 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " LLH is 70.0 mm \n",
+ "\n",
+ " ULH is 70.013 mm \n",
+ "\n",
+ " ULS is 69.99 mm \n",
+ "\n",
+ " LLS is 69.98 mm \n",
+ "\n",
+ " Cmax is 0.031 mm \n",
+ "\n",
+ " Cmin is 0.010 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "d=70#\n",
+ "dmin=50#\n",
+ "dmax=80#\n",
+ "D=sqrt(dmin*dmax)#\n",
+ "D=63#\n",
+ "i=0.458*(D**(1/3))+(0.001*D)#\n",
+ "\n",
+ "#standard tolerance for H8 is ST1\n",
+ "ST1=25*i#\n",
+ "ST1=ST1*10**-3#\n",
+ "#standard tolerance of shaft for grade g7 is ST2\n",
+ "ST2=16*i#\n",
+ "ST2=ST2*10**-3#\n",
+ "es=-(2.5*(D**0.333))#\n",
+ "es=es*10**-3#\n",
+ "ei=es-ST2#\n",
+ "#Lower limit for hole is LLH\n",
+ "#Upper limit for hole is ULH\n",
+ "#Upper limit for shaft is ULS\n",
+ "#Lower limit for shaft is LLS\n",
+ "LLH=d#\n",
+ "ULH=LLH+ST1#\n",
+ "ULS=LLH+es#\n",
+ "LLS=ULS-ST2#\n",
+ "#Maximum clearance is Cmax\n",
+ "#minimum clearance is Cmin\n",
+ "Cmax=ULH-LLS#\n",
+ "Cmin=LLH-ULS#\n",
+ "# printing data in scilab o/p window\n",
+ "print \" LLH is %0.1f mm \"%(LLH)#\n",
+ "print \"\\n ULH is %0.3f mm \"%(ULH)#\n",
+ "print \"\\n ULS is %0.2f mm \"%(ULS)#\n",
+ "print \"\\n LLS is %0.2f mm \"%(LLS)#\n",
+ "print \"\\n Cmax is %0.3f mm \"%(Cmax)#\n",
+ "print \"\\n Cmin is %0.3f mm \"%(Cmin)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 4-2 - Page 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Cmax is 0.041 mm \n",
+ "\n",
+ "Cmin is 0.007 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "d=25#\n",
+ "#Lower limit for hole is LLH\n",
+ "#Upper limit for hole is ULH\n",
+ "#Upper limit for shaft is ULS\n",
+ "#Lower limit for shaft is LLS\n",
+ "ULH=d+0.021#\n",
+ "LLH=d+0#\n",
+ "ULS=d+0.041#\n",
+ "LLS=d+0.028#\n",
+ "#Maximum interference is Cmax\n",
+ "#minimum interference is Cmin\n",
+ "Cmax=ULS-LLH#\n",
+ "Cmin=LLS-ULH#\n",
+ "# printing data in scilab o/p window\n",
+ "print \"Cmax is %0.3f mm \"%(Cmax)#\n",
+ "print \"\\nCmin is %0.3f mm \"%(Cmin)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 4-3 - Page 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " ULH is 50.039 mm \n",
+ "\n",
+ " LLH is 50.000 mm \n",
+ "\n",
+ " ULS is 49.991 mm \n",
+ "\n",
+ " LLS is 49.966 mm \n",
+ "\n",
+ " Cmax is 0.073 mm \n",
+ "\n",
+ " Cmin is 0.009 mm \n",
+ " Therefore, H8g7 is easy running fit\n"
+ ]
+ }
+ ],
+ "source": [
+ "d=50#\n",
+ "Es=0.039#\n",
+ "Ei=0#\n",
+ "es=-9*10**-3#\n",
+ "ei=-34*10**-3#\n",
+ "#Shaft dia is D\n",
+ "D=d+es#\n",
+ "#Lower limit for hole is LLH\n",
+ "#Upper limit for hole is ULH\n",
+ "#Upper limit for shaft is ULS\n",
+ "#Lower limit for shaft is LLS\n",
+ "ULH=d+Es#\n",
+ "LLH=d+Ei#\n",
+ "ULS=d+es#\n",
+ "LLS=d+ei#\n",
+ "#Maximum interference is Cmax\n",
+ "#minimum interference is Cmin\n",
+ "Cmax=ULH-LLS#\n",
+ "Cmin=LLH-ULS#\n",
+ " # printing data in scilab o/p window\n",
+ "print \" ULH is %0.3f mm \"%(ULH)#\n",
+ "print \"\\n LLH is %0.3f mm \"%(LLH)#\n",
+ "print \"\\n ULS is %0.3f mm \"%(ULS)#\n",
+ "print \"\\n LLS is %0.3f mm \"%(LLS)#\n",
+ "print \"\\n Cmax is %0.3f mm \"%(Cmax)#\n",
+ "print \"\\n Cmin is %0.3f mm \"%(Cmin)#\n",
+ "print ' Therefore, H8g7 is easy running fit'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 4-4 - Page 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " ULH is 30.025 mm \n",
+ "\n",
+ " LLH is 30.000 mm \n",
+ "\n",
+ " ULS is 30.011 mm \n",
+ "\n",
+ " LLS is 29.995 mm \n",
+ "\n",
+ " Cmax is 0.030 mm \n",
+ "\n",
+ " Cmin is 0.011 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "d=30#\n",
+ "Es=0.025#\n",
+ "Ei=0#\n",
+ "es=11*10**-3#\n",
+ "ei=-5*10**-3#\n",
+ "#Shaft dia is D\n",
+ "D=d+es#\n",
+ "#Lower limit for hole is LLH\n",
+ "#Upper limit for hole is ULH\n",
+ "#Upper limit for shaft is ULS\n",
+ "#Lower limit for shaft is LLS\n",
+ "ULH=d+Es#\n",
+ "LLH=d+Ei#\n",
+ "ULS=d+es#\n",
+ "LLS=d+ei#\n",
+ "#Maximum interference is Cmax\n",
+ "#minimum interference is Cmin\n",
+ "Cmax=ULH-LLS#\n",
+ "Cmin=ULS-LLH##\n",
+ "\n",
+ " # printing data in scilab o/p window\n",
+ "print \" ULH is %0.3f mm \"%(ULH)#\n",
+ "print \"\\n LLH is %0.3f mm \"%(LLH)#\n",
+ "print \"\\n ULS is %0.3f mm \"%(ULS)#\n",
+ "print \"\\n LLS is %0.3f mm \"%(LLS)#\n",
+ "print \"\\n Cmax is %0.3f mm \"%(Cmax)#\n",
+ "print \"\\n Cmin is %0.3f mm \"%(Cmin)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch5_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch5_2.ipynb
new file mode 100644
index 00000000..30efcbab
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch5_2.ipynb
@@ -0,0 +1,258 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:5 Introduction to pressure vessels"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 5-1 - Page 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t1 is 3.83 mm \n",
+ "\n",
+ "t2 is 3.894 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "p=2#\n",
+ "Rm=220#\n",
+ "#tensile hoop or circumferential stress= sigt\n",
+ "sigr=-2#\n",
+ "#sigt=(p*Rm)/t#\n",
+ "Sa=230/2#\n",
+ "#t1=thickness according to maximum principal stress theory\n",
+ "#t2=thickness according to maximum shear stress theory\n",
+ "t1=(p*Rm)/Sa#\n",
+ "t2=(p*Rm)/(Sa+sigr)#\n",
+ "print \"t1 is %0.2f mm \"%(t1)#\n",
+ "print \"\\nt2 is %0.3f mm \"%(t2)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 5-2 - Page 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t is 17.0mm \n",
+ "\n",
+ "M is 2295.0mm \n",
+ "\n",
+ "sigb is 47.6mm \n",
+ "sigb is below allowable sigd.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "from __future__ import division\n",
+ "#Elastic limit=sige\n",
+ "sige=310#\n",
+ "#inside diameter=di\n",
+ "di=300#\n",
+ "p=1.8#\n",
+ "FOS=2#\n",
+ "#design stress=sigd#\n",
+ "sigd=sige/2#\n",
+ "c=0.162#\n",
+ "d=380#\n",
+ "#cover plate thickness=t#\n",
+ "t=d*sqrt(c*p/sigd)#\n",
+ "t=17#\n",
+ "M=di*p*t/4#\n",
+ "\n",
+ "z=(1/6)*1*t**2#\n",
+ "#bending stress=sigb#\n",
+ "sigb=M/z#\n",
+ "print \"t is %0.1fmm \"%(t)#\n",
+ "print \"\\nM is %0.1fmm \"%(M)#\n",
+ "print \"\\nsigb is %0.1fmm \"%(sigb)#\n",
+ "if (sigb<=sigd):\n",
+ " print 'sigb is below allowable sigd.'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 5-3 - Page 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t1 is 24.0mm \n",
+ "\n",
+ "t2 is 30.206mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "sige=220#\n",
+ "v=0.29#\n",
+ "Ri=175#\n",
+ "FOS=3#\n",
+ "Sa=sige/3#\n",
+ "p=10#\n",
+ "#t1=thickness according to maximum principal stress theory\n",
+ "#t2=thickness according to maximum shear stress theory\n",
+ "x=Sa+(p*(1-(2*v)))#\n",
+ "y=Sa-(p*(1+v))#\n",
+ "t1=(sqrt(x/y)-1)*Ri#\n",
+ "t1=24#\n",
+ "#t1=((sqrt((Sa+(p*(1-(2*v)))))/(Sa-(p*(1+v))))-1)*Ri#\n",
+ "t2=Ri*((sqrt(Sa/(Sa-(2*p))))-1)#\n",
+ "# printing data in scilab o/p window\n",
+ "print \"t1 is %0.1fmm \"%(t1)#\n",
+ "print \"\\nt2 is %0.3fmm \"%(t2)#\n",
+ "#The answer to t2 is not calculated in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 5-4 - Page 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t is 50.0mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "p=16#\n",
+ "Ri=250#\n",
+ "#Yield strength =sigy#\n",
+ "sigy=330#\n",
+ "v=0.3#\n",
+ "FOS=3#\n",
+ "Sa=sigy/3#\n",
+ "t=Ri*((sqrt(Sa/(Sa-(2*p))))-1)#\n",
+ "t=50#\n",
+ "\n",
+ "print \"t is %0.1fmm \"%(t)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 5-5 - Page 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "kb is 1546.253 N/mm \n",
+ "\n",
+ "The combines stiffness of bolt and gasket is 84.823 kN/mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi,sqrt\n",
+ "d=15#\n",
+ "Eg=480#\n",
+ "t=3#\n",
+ "#flange thickness=ft#\n",
+ "ft=12#\n",
+ "A=pi*d**2/4#\n",
+ "l=d+t+(ft/2)#\n",
+ "E=210#\n",
+ "kb=A*E/l#\n",
+ "#effective area of gasket=Ag#\n",
+ "Ag=pi*(((ft+t+d)**2)-(d**2))/4#\n",
+ "kg=Ag*Eg/t#\n",
+ "# printing data in scilab o/p window\n",
+ "print \"kb is %0.3f N/mm \"%(kb)#\n",
+ "kb=kb*10**-3#\n",
+ "kg=kg*10**-3#\n",
+ "if (kb<=kg):\n",
+ " print \"\\nThe combines stiffness of bolt and gasket is %0.3f kN/mm\"%(kg)\n",
+ "\n",
+ "\n",
+ "#The difference in the value of kb is due to rounding-off the value of A \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.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch6_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch6_2.ipynb
new file mode 100644
index 00000000..54908fbc
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch6_2.ipynb
@@ -0,0 +1,378 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:6 Levers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 6-1 - Page 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d1 is 20.0 mm \n",
+ "\n",
+ " D is 40.0 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "Del=10#\n",
+ "k=500#\n",
+ "W=k*Del#\n",
+ "#Let load arm be l1\n",
+ "l1=200#\n",
+ "#Let effort arm be l2\n",
+ "l2=500#\n",
+ "P=W*l1/l2#\n",
+ "Ro=sqrt(W**2+P**2)#\n",
+ "Ta=40#\n",
+ "d=sqrt(Ro*4/(2*pi*Ta))#\n",
+ "d=10#\n",
+ "pb=10#\n",
+ "d1=sqrt(Ro/(pb*1.5))#\n",
+ "d1=20#\n",
+ "l=1.5*d#\n",
+ "t=10#\n",
+ "T=Ro*4/(2*pi*d1**2)#\n",
+ "M=(Ro/2*(l/2+t/3))-(Ro/2*l/4)#\n",
+ "sigb=32*M/(pi*d1**3)#\n",
+ "sigmax=(sigb/2)+sqrt((sigb/2)**2+T**2)#\n",
+ "P=Ro/(l*d1)#\n",
+ "D=2*d1#\n",
+ "print \" d1 is %0.1f mm \"%(d1)#\n",
+ "print \"\\n D is %0.1f mm \"%(D)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 6-2 - Page 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " h is 50.00 mm \n",
+ "\n",
+ " pmax is 74.43 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "d1=80#\n",
+ "p=0.981#\n",
+ "Ta=40#\n",
+ "siga=80#\n",
+ "pa=15#\n",
+ "W=pi*(d1**2)*p/4#\n",
+ "P=W/8#\n",
+ "Ws=W-P#\n",
+ "d=sqrt(W*4/(pi*2*Ta))#\n",
+ "l=1.5*d#\n",
+ "D=2*d#\n",
+ "T=W/(2*pi*pa**2/4)#\n",
+ "M1=P*(700-87.5-(D/2))#\n",
+ "h=50#\n",
+ "b=h/4#\n",
+ "Z=b*h**2/6#\n",
+ "sigb=M1/Z#\n",
+ "pmax=80#\n",
+ "T=2465.6/h**2#\n",
+ "pmax=(sigb/2)+sqrt((sigb/2)**2+T**2)#\n",
+ "print \" h is %0.2f mm \"%(h)#\n",
+ "print \"\\n pmax is %0.2f MPa \"%(pmax)#\n",
+ " \n",
+ "#The difference in the value of pmax is due to rounding-off the digits."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 6-3 - Page 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P is 2.0 KN \n",
+ "\n",
+ "pmax is 69.53 MPa \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "P=((4*360)+(2*360))/900#\n",
+ "Fv=4-2#\n",
+ "Fh=P#\n",
+ "Fr=sqrt(Fv**2+Fh**2)#\n",
+ "P1=4*0.36/0.9#\n",
+ "Rf=sqrt(4**2+1.6**2)#\n",
+ "d=sqrt(Rf*10**3/(15*1.25))#\n",
+ "d=16#\n",
+ "l=1.25*d#\n",
+ "T=Rf*10**3*4/(2*pi*d**2)#\n",
+ "D=2*d#\n",
+ "M1=Rf*10**3*(360-(D/2))#\n",
+ "pa=15#\n",
+ "h=80#\n",
+ "b=h/4#\n",
+ "Z=b*h**2/6#\n",
+ "sigb=M1/Z#\n",
+ "T=4310/(b*h)#\n",
+ "pmax=(sigb/2)+sqrt((sigb/2)**2+T**2)#\n",
+ "print \"P is %0.1f KN \"%(P)#\n",
+ "print \"\\npmax is %0.2f MPa \"%(pmax)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 6-4 - Page 174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d is 30.0 mm \n",
+ "\n",
+ "D is 30.0 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "l=360#\n",
+ "P=400#\n",
+ "Mh=2*P*l/3#\n",
+ "sigb=50#\n",
+ "l1=60#\n",
+ "d=(Mh*32/(pi*l1))**(1/3)#\n",
+ "d=30#\n",
+ "L=420#\n",
+ "siga=60#\n",
+ "H=20#\n",
+ "B=H/3#\n",
+ "Mx=P*(L-H/2)#\n",
+ "Tx=2*P*l/3#\n",
+ "sigb1=Mx*18/H**3#\n",
+ "Td=P/(B*H)#\n",
+ "Tr=17.17*Tx/H**4#\n",
+ "T=Tr+Td#\n",
+ "sigmax=(sigb1/2)+sqrt((sigb1/2)**2+T**2)#\n",
+ "Tmax=sqrt((sigb1/2)**2+T**2)#\n",
+ "T=P*L#\n",
+ "M=P*(l1+(2/3*l))#\n",
+ "Te=sqrt(T**2+M**2)#\n",
+ "Ta=40#\n",
+ "D=(Te*16/(pi*Ta))**(1/3)#\n",
+ "D=30# #Rounding off to nearest whole number\n",
+ "print \"d is %0.1f mm \"%(d)#\n",
+ "print \"\\nD is %0.1f mm \"%(D)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 6-5 - Page 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 35.0 mm \n",
+ "\n",
+ " dh is 22.0 mm \n",
+ "\n",
+ " d1 is 56.0 mm \n",
+ "\n",
+ " l1 is 52.5 mm \n",
+ "\n",
+ " d2 is 32.0 mm \n",
+ "\n",
+ " b is 9.0 mm \n",
+ "\n",
+ " t is 6.0 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "l2=300#\n",
+ "l=450#\n",
+ "P=400#\n",
+ "Mx=2*P*l2/3#\n",
+ "siga=80#\n",
+ "dh=(Mx*32/(pi*siga))**(1/3)#\n",
+ "dh=22#\n",
+ "L=(2*l2/3)+l#\n",
+ "T=P*L#\n",
+ "Ta=40#\n",
+ "d=(T*16/(pi*Ta))**(1/3)#\n",
+ "d=35#\n",
+ "d1=1.6*d#\n",
+ "Th=T*16*d1/(pi*(d1**4-d**4))#\n",
+ "l1=1.5*d#\n",
+ "My=P*(L-(d1/2))#\n",
+ "B=dh#\n",
+ "H=sqrt(3.66*75)#\n",
+ "H=30#\n",
+ "Mz=P*l1/2#\n",
+ "Te=sqrt(T**2+Mz**2)#\n",
+ "d2=(Te*16/(pi*Ta))**(1/3)#\n",
+ "d2=32#\n",
+ "b=d/4#\n",
+ "b=9# #Rounding off to nearest whole number\n",
+ "t=d/6#\n",
+ "t=6# #Rounding off to nearest whole number\n",
+ "print \" d is %0.1f mm \"%(d)#\n",
+ "print \"\\n dh is %0.1f mm \"%(dh)#\n",
+ "print \"\\n d1 is %0.1f mm \"%(d1)#\n",
+ "print \"\\n l1 is %0.1f mm \"%(l1)#\n",
+ "print \"\\n d2 is %0.1f mm \"%(d2)#\n",
+ "print \"\\n b is %0.1f mm \"%(b)#\n",
+ "print \"\\n t is %0.1f mm \"%(t)#\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 6-6 - Page 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 32.0 mm \n",
+ "\n",
+ " d1 is 52.0 mm \n",
+ "\n",
+ " l1 is 40.0 mm \n",
+ "\n",
+ " B is 15.0 mm \n",
+ "\n",
+ " H is 45.0 mm \n",
+ "\n",
+ " d2 is 38.0 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "L=450#\n",
+ "P=700#\n",
+ "T=P*L#\n",
+ "Ta=50#\n",
+ "d=(T*16/(pi*Ta))**(1/3)#\n",
+ "d=32#\n",
+ "d1=1.6*d#\n",
+ "d1=52# #Rounding off to nearest whole number\n",
+ "l1=1.25*d#\n",
+ "My=P*(L-d1/2)#\n",
+ "sigb=65#\n",
+ "H=(My*18/sigb)**(1/3)#\n",
+ "H=45#\n",
+ "B=H/3#\n",
+ "T1=P/(B*H)#\n",
+ "sigmax=(sigb/2)+sqrt((sigb/2)**2+T**2)#\n",
+ "Mx=P*l1/2#\n",
+ "Te=sqrt((T)**2+(Mx**2))#\n",
+ "d2=(Te*16/(pi*Ta))**(1/3)#\n",
+ "d2=d2+6#\n",
+ "d2=38# #Rounding off to nearest whole number\n",
+ "print \" d is %0.1f mm \"%(d)#\n",
+ "print \"\\n d1 is %0.1f mm \"%(d1)#\n",
+ "print \"\\n l1 is %0.1f mm \"%(l1)#\n",
+ "print \"\\n B is %0.1f mm \"%(B)#\n",
+ "print \"\\n H is %0.1f mm \"%(H)#\n",
+ "print \"\\n d2 is %0.1f mm \"%(d2)#\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.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch7_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch7_2.ipynb
new file mode 100644
index 00000000..02b194b6
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch7_2.ipynb
@@ -0,0 +1,310 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:7 Struts and Columns"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 7-1 - Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "D is 130.0 mm \n",
+ "\n",
+ "d is 91.0 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "sigc=550#\n",
+ "FOS=4#\n",
+ "sigw=sigc/FOS#\n",
+ "l=4000#\n",
+ "le=l/2#\n",
+ "A=pi*(1-0.7**2)/4#\n",
+ "K=(1+0.7**2)/16#\n",
+ "Pr=800*10**3#\n",
+ "a=1/1600#\n",
+ "D=130# #Rounding off to nearest whole number\n",
+ "d=D*0.7#\n",
+ "print \"D is %0.1f mm \"%(D)#\n",
+ "print \"\\nd is %0.1f mm \"%(d)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 7-2 - Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d is 37.44 mm \n",
+ "\n",
+ "b is 13.24 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "l=500#\n",
+ "E=70*10**3#\n",
+ "P=20*10**3#\n",
+ "FOS=2#\n",
+ "d=P*2*12*4*l**2/((pi)**2*E)#\n",
+ "d=(sqrt(8)*d)**0.25#\n",
+ "b=d/sqrt(8)#\n",
+ "print \"d is %0.2f mm \"%(d)#\n",
+ "print \"\\nb is %0.2f mm \"%(b)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 7-3 - Page193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "FOS is 2.91 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "Ixx=(2*1696.6)+115.4#\n",
+ "Iyy=1696.6+(2*115.4)+(2*25.27*10.27**2)#\n",
+ "A=3*25.27#\n",
+ "Kmin=sqrt(Ixx/75.81)#\n",
+ "L=600#\n",
+ "k=L/Kmin#\n",
+ "sigc=110#\n",
+ "c=1/200#\n",
+ "sigw=sigc*(1-(c*k))#\n",
+ "Pw=sigw*A#\n",
+ "a=1/7500#\n",
+ "sigc1=320#\n",
+ "Pr=(sigc1*A)/(1+(a*(L/Kmin)**2))#\n",
+ "FOS=Pr/Pw#\n",
+ "print \"FOS is %0.2f \"%(FOS)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 7-4 - Page 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P is 149.3 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "Iyy=193.4+(2*1.2*1.5**3/12)#\n",
+ "E=200*10**3#\n",
+ "l=500#\n",
+ "Pe=(pi**2)*E*Iyy*10**5/(l**2)#\n",
+ "A=35.53+(2*1.2*15)#\n",
+ "sige=Pe/7530#\n",
+ "k=sqrt(Iyy/A)#\n",
+ "xc=75#\n",
+ "sig=80#\n",
+ "sigo=20.875#\n",
+ "A=A*100#\n",
+ "P=sigo*A#\n",
+ "P=P*10**-3#\n",
+ "print \"P is %0.1f kN \"%(P)#\n",
+ " \n",
+ "#The difference in the value of P is due to rounding-off the digits."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 7-5 - Page 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P is 38.2800 KN \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "sigc=330#\n",
+ "a=1/7500#\n",
+ "t=4#\n",
+ "A=14.5*t**2#\n",
+ "l=300#\n",
+ "Kx=sqrt(1.4626*t**2)#\n",
+ "Pr=sigc*A/(1+(a*(l/Kx)**2))#\n",
+ "FOS=2#\n",
+ "P=Pr/FOS*10**-3#\n",
+ "print \"P is %0.4f KN \"%(P)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 7-6 - Page 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "D is 8.0 mm \n",
+ "\n",
+ "d is 6.4 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "P=1500#\n",
+ "FOS=2#\n",
+ "Pd=FOS*P#\n",
+ "l=280#\n",
+ "E=207*10**3#\n",
+ "I=Pd*l**2/(pi**2*E)#\n",
+ "D=(64*I/(pi*(1-0.8**4)))**(1/4)#\n",
+ "D=8#\n",
+ "d=6.4#\n",
+ "print \"D is %0.1f mm \"%(D)#\n",
+ "print \"\\nd is %0.1f mm \"%(d)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 7-7 - Page 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d is 45.0 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "D=500#\n",
+ "p=0.3#\n",
+ "E=208*10**3#\n",
+ "sigc=320#\n",
+ "a=1/7500#\n",
+ "l=2000#\n",
+ "le=l/2#\n",
+ "W=pi*D**2*p/4#\n",
+ "FOS=4#\n",
+ "Wd=W*FOS#\n",
+ "I=Wd*l**2/(pi**2*E)#\n",
+ "d=(64*I/pi)**(1/4)#\n",
+ "A=pi*d**2/4#\n",
+ "k=d/4#\n",
+ "d=45# #Rounding off to nearest whole number\n",
+ "print \"d is %0.1f mm \"%(d)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch8_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch8_2.ipynb
new file mode 100644
index 00000000..23f4219b
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch8_2.ipynb
@@ -0,0 +1,838 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:8 Springs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-1 - Page 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Ks is 1.0000 \n",
+ "\n",
+ " Kw is 1.1025 \n",
+ "\n",
+ " Kc is 1.103 \n",
+ "\n",
+ " The Spring Stiffness is 16.0 N/mm\n",
+ "\n",
+ " The Axial deflection is 18.000 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "d=5#\n",
+ "D=30#\n",
+ "G=84*(10**3)#\n",
+ "Na=15#\n",
+ "#Axial Load W\n",
+ "W=300#\n",
+ "#Spring index C\n",
+ "C=30/5#\n",
+ "#Shear stress Augmentation factor Ks\n",
+ "Ks=((2*C)+1)/(2*C)#\n",
+ "#Wahl's factor Kw\n",
+ "Kw=(((4*C)-1)/((4*C)-4))+(0.615/C)#\n",
+ "#Curvature correction factor Kc\n",
+ "Kc=Kw/Ks#\n",
+ "#Spring stiffness k\n",
+ "k=(G*(d**4))/(8*(D**3)*Na)#\n",
+ "#Axial deflection delta\n",
+ "delta=W/k#\n",
+ "print \" Ks is %0.4f \"%(Ks)#\n",
+ "print \"\\n Kw is %0.4f \"%(Kw)#\n",
+ "print \"\\n Kc is %0.3f \"%(Kc)#\n",
+ "print \"\\n The Spring Stiffness is %0.1f N/mm\"%(k)#\n",
+ "print \"\\n The Axial deflection is %0.3f mm\"%(delta)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-2 - Page 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " wire diameter is 2.314 mm \n",
+ "\n",
+ " mean diameter is 18.516 mm \n",
+ "\n",
+ " Number of acting coils are 11.117 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "W=196.2#\n",
+ "lenthofscale=50#\n",
+ "k=196.2/50#\n",
+ "C=8#\n",
+ "Ks=(1+(0.5/C))#\n",
+ "\n",
+ "# Let us choose oil tempered wire 0.6-0.7 %C. Refer to Table 8-4 for constants A and m, relating strength wire \n",
+ "#diameter.\n",
+ "G=77.2*(10**3)#\n",
+ "A=1855#\n",
+ "m=0.187#\n",
+ "# equating Tmax=0.5*sig(ut).\n",
+ "# Ks*(8*W*D/(pi*(d**3)))=0.5*A/(d**2)\n",
+ "d1=(Ks*(8*W*C/(pi*A*0.5)))#\n",
+ "d=d1**(1/1.813)#\n",
+ "D=C*d#\n",
+ "Na=G*(d**4)/(8*(D**3)*k)#\n",
+ "#Solid length = SL\n",
+ "SL=(Na-1)*d\n",
+ "\n",
+ "print \" wire diameter is %0.3f mm \"%(d)#\n",
+ "print \"\\n mean diameter is %0.3f mm \"%(D)#\n",
+ "print \"\\n Number of acting coils are %0.3f \"%(Na)#\n",
+ "\n",
+ "#The difference in the values of d,D and Na is due to rounding-off the digits."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-3 - Page 225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Ultimate tensile Strength is 2060.5 MPa \n",
+ "\n",
+ " Force at which the spring hook fails is 211.3 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "d=1.626#\n",
+ "A=2211#\n",
+ "m=0.145#\n",
+ "rm=3#\n",
+ "ri=(rm-(d/2))#\n",
+ "sigma=A/(d**m)#\n",
+ "W=(sigma*pi*(d**3)*ri)/(32*(rm**2))#\n",
+ "print \" Ultimate tensile Strength is %0.1f MPa \"%(sigma)#\n",
+ "print \"\\n Force at which the spring hook fails is %0.1f N \"%(W)#\n",
+ "\n",
+ "#The difference in the values of sigma and W is due to rounding-off the digits."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-4 - Page 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 2.337mm \n",
+ "\n",
+ " D is 22.20 mm\n",
+ "\n",
+ " Ls is 26.18 mm\n",
+ "\n",
+ " Lo is 83.68 mm\n",
+ "\n",
+ "The diameter is within space constraints\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "Do=25#\n",
+ "# mean coil diameter D=25-d\n",
+ "W=150#\n",
+ "T=800#\n",
+ "G=81000#\n",
+ "# Substituting values in equation T=8*W*D/(pi*(d**3))\n",
+ "# therefore, the equation becomes d**3 + 0.477*d = 11.936\n",
+ "#consider d=2.2mm, (d can be taken between 2.2-2.3mm)\n",
+ "d=2.337# #(nearest available wire gauge)\n",
+ "C=9.5#\n",
+ "D=22.2# \n",
+ "Do=D+d#\n",
+ "Ks=1+(0.5/C)#\n",
+ "Tmax=Ks*8*W*D/(pi*(d**3))#\n",
+ "# check for safety- Tmax<T#\n",
+ "Lo=100#\n",
+ "Ls=40#\n",
+ "#Lo=Ls+delta+0.15*delta\n",
+ "delta=(Lo-Ls)/1.15#\n",
+ "delta=50#\n",
+ "k=150/50#\n",
+ "Na=(G*d**4)/(8*(D**3)*k)#\n",
+ "\n",
+ "N=Na+2#\n",
+ "Ls=N*d#\n",
+ "Lo=Ls+(1.15*delta)#\n",
+ "print \" d is %0.3fmm \"%(d)#\n",
+ "print \"\\n D is %0.2f mm\"%(D)#\n",
+ "print \"\\n Ls is %0.2f mm\"%(Ls)#\n",
+ "print \"\\n Lo is %0.2f mm\"%(Lo)#\n",
+ "if (Do<=25):\n",
+ " print '\\nThe diameter is within space constraints'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-5A - Page 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 2.3mm \n",
+ "\n",
+ " C is 7.6 \n",
+ "\n",
+ " Na is 17.6 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "Di=15#\n",
+ "Do=20#\n",
+ "d=2.3#\n",
+ "D=17.5#\n",
+ "C=D/d#\n",
+ "Ks=1+(0.5/C)#\n",
+ "Wmax=100#\n",
+ "Tmax=Ks*8*Wmax*D/(pi*(d**3))#\n",
+ "G=81000#\n",
+ "delmax=67.7/2.366#\n",
+ "k=100/28#\n",
+ "Na=G*(d**4)/(8*k*(D**3))#\n",
+ "Ls=Na+1# #(for plain ends)\n",
+ "delmax=28#\n",
+ "#TL= total working length\n",
+ "TL=Ls+delmax+(0.15*delmax)#\n",
+ "print \" d is %0.1fmm \"%(d)#\n",
+ "print \"\\n C is %0.1f \"%(C)#\n",
+ "print \"\\n Na is %0.1f \"%(Na)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-6 - Page- 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Tys is 686.9 MPa \n",
+ "\n",
+ " W is 41.1 N \n",
+ "\n",
+ " del is 30.457 mm \n",
+ "\n",
+ " Ls is 15.2375 mm \n",
+ "\n",
+ " Lo is 50.26 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "# 18 SWG=1.219MM in dia\n",
+ "d=1.219#\n",
+ "E=198.6*10**3#\n",
+ "G=80.7*10**3#\n",
+ "m=0.19#\n",
+ "A=1783#\n",
+ "sig=A/(d**m)#\n",
+ "Tys=(0.4*sig)#\n",
+ "Do=12.5#\n",
+ "D=Do-d#\n",
+ "C=D/d#\n",
+ "Ks=((2*C)+1)/(2*C)#\n",
+ "W=(Tys*pi*(d**3))/(8*D*Ks)#\n",
+ "Nt=13.5#\n",
+ "Na=Nt-2#\n",
+ "Del=(8*W*(D**3)*Na)/(G*(d**4))#\n",
+ "Ls=(Nt-1)*d#\n",
+ "Lo=Ls+Del+(0.15*Del)#\n",
+ "print \" Tys is %0.1f MPa \"%(Tys)#\n",
+ "print \"\\n W is %0.1f N \"%(W)#\n",
+ "print \"\\n del is %0.3f mm \"%(Del)#\n",
+ "print \"\\n Ls is %0.4f mm \"%(Ls)#\n",
+ "print \"\\n Lo is %0.2f mm \"%(Lo)#\n",
+ " \n",
+ "#Answers in the book for Torsional yeild strength have been rounded-off to the nearest whole number."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-7 - Page 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tys is 992.7 MPa \n",
+ "\n",
+ " Do is 12.6 N \n",
+ "\n",
+ " W is 33.8 N \n",
+ "\n",
+ " k is 0.496 N \n",
+ "\n",
+ " del is 68.20 mm \n",
+ "\n",
+ " Ls is 15.24 mm \n",
+ "\n",
+ " Lo is 93.669 mm \n",
+ "The spring will fail under buckling\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "d=1.016#\n",
+ "A=2211#\n",
+ "m=0.145#\n",
+ "G=81000#\n",
+ "Nt=16#\n",
+ "Na=16-2#\n",
+ "sig=A/(d**m)#\n",
+ "Tys=0.45*sig#\n",
+ "Do=12.6#\n",
+ "D=Do-d#\n",
+ "C=D/d#\n",
+ "Ks=1+(0.5/C)#\n",
+ "W=(Tys*pi*(d**3))/(8*D*Ks)#\n",
+ "k=(G*(d**4))/(8*(D**3)*Na)#\n",
+ "Del=W/k#\n",
+ "Ls=(Nt-1)*d#\n",
+ "Lo=Ls+(1.15*Del)#\n",
+ "\n",
+ "print \"Tys is %0.1f MPa \"%(Tys)#\n",
+ "print \"\\n Do is %0.1f N \"%(Do)#\n",
+ "print \"\\n W is %0.1f N \"%(W)#\n",
+ "print \"\\n k is %0.3f N \"%(k)#\n",
+ "print \"\\n del is %0.2f mm \"%(Del)#\n",
+ "print \"\\n Ls is %0.2f mm \"%(Ls)#\n",
+ "print \"\\n Lo is %0.3f mm \"%(Lo)#\n",
+ " \n",
+ "if ((Lo/D)>=5.26):\n",
+ " print 'The spring will fail under buckling'\n",
+ "\n",
+ "\n",
+ "#Values after the decimal point has not been considered for answer of Torsional yeild strength in the book, whereas answers for deflection and free-length is different as entire value of variables is taken for calculation in the code."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-8 - Page 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "k is 3.000 N/mm \n",
+ "\n",
+ " W is 77.5 N \n",
+ "\n",
+ " Lo is 49.720 mm \n",
+ "\n",
+ " p is 5.302 mm \n",
+ "The spring will fail under buckling\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "d=2#\n",
+ "Do=20#\n",
+ "D=Do-d#\n",
+ "C=D/d#\n",
+ "Na=9#\n",
+ "#Material hard drawn spring steel\n",
+ "A=1783#\n",
+ "m=0.19#\n",
+ "G=81000#\n",
+ "sig=A/(d**m)#\n",
+ "Tys=0.45*sig\n",
+ "Kf=1.5#\n",
+ "Ta=Tys/Kf#\n",
+ "Ks=1+(0.5/C)#\n",
+ "W=(Ta*pi*(d**3))/(8*D*Ks)#\n",
+ "k=(G*(d**4))/(8*(D**3)*Na)#\n",
+ "Del=W/k#\n",
+ "Lo=((Na+1)*d)+(1.15*Del)#\n",
+ "p=(Lo-d)/Na#\n",
+ "print \"k is %0.3f N/mm \"%(k)#\n",
+ "print \"\\n W is %0.1f N \"%(W)#\n",
+ "print \"\\n Lo is %0.3f mm \"%(Lo)#\n",
+ "print \"\\n p is %0.3f mm \"%(p)\n",
+ " \n",
+ " \n",
+ "if ((Lo)>=47.34):\n",
+ " print 'The spring will fail under buckling'\n",
+ "\n",
+ "#The answer for value of spring rate 'k' is misprinted in the book. Due to this all subsequent values of del,Lo,p is calucated incorrectly in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-9 - Page 230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Maximum Torque is 497.25 Nmm \n",
+ "\n",
+ " theta3 is 0.327 turns \n",
+ "\n",
+ " Ne is 0.293 turns \n",
+ "\n",
+ " ke is 22089.3 N/mm \n",
+ "\n",
+ " theta1+theta2 is 0.0225 turns \n",
+ "\n",
+ " D1 is 13.46 mm \n",
+ "\n",
+ " IRC is 0.75 mm \n",
+ "\n",
+ " FRC is 0.23 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "# for music wire\n",
+ "d1=11.5#\n",
+ "A=2211#\n",
+ "d=1.5#\n",
+ "m=0.145#\n",
+ "sigut=A/(d**m)#\n",
+ "sigy=0.78*sigut#\n",
+ "Do=16#\n",
+ "E=2*(10**5)#\n",
+ "Nb=4.25#\n",
+ "D=Do-d#\n",
+ "C=D/d#\n",
+ "Ki=((4*(C**2))-C-1)/(4*C*(C-1))#\n",
+ "Mmax=(sigy*pi*(d**3))/(32*Ki)#\n",
+ "kc=((d**4)*E)/(10.8*D*Nb)#\n",
+ "theta3=Mmax/kc#\n",
+ "l1=20#\n",
+ "l2=20#\n",
+ "Ne=(l1+l2)/(3*pi*D)#\n",
+ "Na=Nb+Ne#\n",
+ "k=((d**4)*E)/(10.8*Na*D)#\n",
+ "thetat=Mmax/k#\n",
+ "ke=(3*pi*(d**4)*E)/(10.8*(l1+l2))#\n",
+ "# angdisp=theta1+theta2=Mmax/ke#\n",
+ "angdisp=Mmax/ke#\n",
+ "#D1 is final coil diameter\n",
+ "D1=(Nb*D)/(Nb+theta3)#\n",
+ "#IRC=Initial radial clearance\n",
+ "IRC=((D-d)-d1)/2#\n",
+ "#FRC=Final radial clearance\n",
+ "FRC=((D1-d)-d1)/2#\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \" Maximum Torque is %0.2f Nmm \"%(Mmax)#\n",
+ "print \"\\n theta3 is %0.3f turns \"%(theta3)#\n",
+ "print \"\\n Ne is %0.3f turns \"%(Ne)#\n",
+ "print \"\\n ke is %0.1f N/mm \"%(ke)#\n",
+ "print \"\\n theta1+theta2 is %0.4f turns \"%(angdisp)#\n",
+ "print \"\\n D1 is %0.2f mm \"%(D1)#\n",
+ "print \"\\n IRC is %0.2f mm \"%(IRC)#\n",
+ "print \"\\n FRC is %0.2f mm \"%(FRC)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-10 - Page 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " d is 2.0 mm \n",
+ "\n",
+ " D is 15.0 mm \n",
+ "\n",
+ " Na is 11.00 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "A=1783#\n",
+ "m=0.190#\n",
+ "d=1.5#\n",
+ "D=15#\n",
+ "M=300#\n",
+ "E=20800#\n",
+ "k=30#\n",
+ "#sigult= ultimate strength of the material\n",
+ "# sigy= yield strength of the material\n",
+ "sigult=A/(d**m)#\n",
+ "sigy=0.7*sigult#\n",
+ "#siga= allowable yield strength of the material\n",
+ "siga=sigy/2#\n",
+ "C=D/d#\n",
+ "Ki=(4*(C**2)-C-1)/(4*C*(C-1))#\n",
+ "Z=pi*(d**3)/32#\n",
+ "#sigb=bending strength of the material#\n",
+ "sigb=Ki*M/Z#\n",
+ "while (sigb>=siga) :\n",
+ " d=d+0.15#\n",
+ " D=15#\n",
+ " C=D/d#\n",
+ " sigult=A/(d**m)#\n",
+ " sigy=0.7*sigult#\n",
+ " siga=sigy/2#\n",
+ " Ki=(4*(C**2)-C-1)/(4*C*(C-1))#\n",
+ " Z=pi*(d**3)/32#\n",
+ " sigb=Ki*M/Z#\n",
+ "\n",
+ "d=2## rounding off the value of the diameter.\n",
+ "Na=(d**4)*E/(64*D*k)#\n",
+ "print \" d is %0.1f mm \"%(d)#\n",
+ "print \"\\n D is %0.1f mm \"%(D)#\n",
+ "print \"\\n Na is %0.2f mm \"%(Na)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-11 - Page 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " t is 14 mm \n",
+ "\n",
+ " Wf is 10909 N \n",
+ "\n",
+ " I is 34300 mm**4 \n",
+ "\n",
+ " del is 52.0 mm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "L=1180#\n",
+ "W=40*(10**3)#\n",
+ "Nf=2#\n",
+ "Ng=8#\n",
+ "E=207*(10**3)#\n",
+ "#sigut is ultimate strength\n",
+ "sigut=1400#\n",
+ "FOS=2#\n",
+ "#siga= allowable yield strength of the material\n",
+ "siga=1400/2#\n",
+ "#sigbf=bending strength in full length\n",
+ "sigbf=700#\n",
+ "b=75#\n",
+ "t=((4.5*W*L)/(((3*Nf)+(2*Ng))*sigbf))**(0.5)#\n",
+ "t=14#\n",
+ "I=(Nf*b*(t**3))/12#\n",
+ "Wf=(3*Nf*W)/((3*Nf)+(2*Ng))#\n",
+ "Del=(Wf*(L**3))/(48*E*I)#\n",
+ "print \" t is %0.0f mm \"%(t)#\n",
+ "print \"\\n Wf is %0.0f N \"%(Wf)#\n",
+ "print \"\\n I is %0.0f mm**4 \"%(I)#\n",
+ "print \"\\n del is %0.1f mm \"%(Del)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-12A - Page 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " t is 15.0 mm \n",
+ "\n",
+ " deli is 16.0 mm \n",
+ "\n",
+ " Wi is 6366 N \n"
+ ]
+ }
+ ],
+ "source": [
+ "W=80000#\n",
+ "sigbfr=500#\n",
+ "L=1100#\n",
+ "Nf=3#\n",
+ "Ng=10#\n",
+ "N=Nf+Ng#\n",
+ "t=((1.5*W*L)/(N*6*sigbfr))**(1/3)#\n",
+ "t=15#\n",
+ "b=6*t#\n",
+ "E=207*10**3#\n",
+ "deli=(W*(L**3))/(8*E*N*b*(t**3))#\n",
+ "Wi=(W*Nf*Ng)/(N*((3*Nf)+(2*Ng)))#\n",
+ "print \" t is %0.1f mm \"%(t)#\n",
+ "print \"\\n deli is %0.1f mm \"%(deli)#\n",
+ "print \"\\n Wi is %0.0f N \"%(Wi)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-13 - Page 233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Tm is 169.77 MPa \n",
+ "\n",
+ " Ta is 86.2 MPa \n",
+ "\n",
+ " FOS is 1.548 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "#ultimate strength=sigut\n",
+ "sigut=1500#\n",
+ "C=7#\n",
+ "d=3#\n",
+ "D=C*d#\n",
+ "Ks=1+(0.5/C)#\n",
+ "Kw=(((4*C)-1)/((4*C)-4))+(0.615/C)#\n",
+ "Pmax=120#\n",
+ "Pmin=40#\n",
+ "Pm=80#\n",
+ "Tm=(Ks*8*Pm*D)/(pi*(d**3))#\n",
+ "Ta=(Kw*8*Pmin*D)/(pi*(d**3))#\n",
+ "Tse=0.22*sigut#\n",
+ "Tys=0.45*sigut#\n",
+ "x=(Tys-(0.5*Tse))/(0.5*Tse)#\n",
+ "y=((x)*Ta)+Tm#\n",
+ "FOS=(Tys/y)#\n",
+ "print \" Tm is %0.2f MPa \"%(Tm)#\n",
+ "print \"\\n Ta is %0.1f MPa \"%(Ta)#\n",
+ "print \"\\n FOS is %0.3f \"%(FOS)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 8-14 - Page 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Tm is 186.64 MPa \n",
+ "\n",
+ " Ta is 126.337 MPa \n",
+ "\n",
+ " FOS is 1.26 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "Tse=360#\n",
+ "Tys=660#\n",
+ "d=25#\n",
+ "P=0.03#\n",
+ "m=40#\n",
+ "Pmin=((pi*(d**2)*P)/4)+(m*9.81/1000)#\n",
+ "k=6#\n",
+ "#Additional load= Padd=k*further compression in spring\n",
+ "Padd=k*10#\n",
+ "Pmax=Padd+Pmin#\n",
+ "Pm=(Pmax+Pmin)/2#\n",
+ "Pa=(Pmax-Pmin)/2#\n",
+ "d=2#\n",
+ "D=12#\n",
+ "C=6#\n",
+ "Ks=1+(0.5/C)#\n",
+ "Ks=1.083#\n",
+ "Kw=(((4*C)-1)/((4*C)-4))+(0.615/C)#\n",
+ "Ta=(Kw*8*Pa*D)/(pi*(d**3))#\n",
+ "Tm=(Ks*8*Pm*D)/(pi*(d**3))#\n",
+ "x=(Tys-(0.5*Tse))/(0.5*Tse)#\n",
+ "y=((x)*Ta)+Tm#\n",
+ "FOS=(Tys/y)#\n",
+ "print \" Tm is %0.2f MPa \"%(Tm)#\n",
+ "print \"\\n Ta is %0.3f MPa \"%(Ta)#\n",
+ "print \"\\n FOS is %0.2f \"%(FOS)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/Ch9_2.ipynb b/Machine_Design_by_U.C._Jindal/Ch9_2.ipynb
new file mode 100644
index 00000000..e39150e5
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/Ch9_2.ipynb
@@ -0,0 +1,491 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ch:9 Threaded Fasteners"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 9-1 - Page 266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " At1 is 156.7 mm**2 \n",
+ "\n",
+ " At2 is 167.2 mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "p1=2#\n",
+ "d=16#\n",
+ "dt1=d-(0.93825*p1)#\n",
+ "At1=pi*dt1**2/4#\n",
+ "p2=1.5#\n",
+ "d=16#\n",
+ "dt2=d-(0.93825*p2)#\n",
+ "At2=pi*dt2**2/4#\n",
+ "\n",
+ "print \" At1 is %0.1f mm**2 \"%(At1)#\n",
+ "print \"\\n At2 is %0.1f mm**2 \"%(At2)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 9-2 - Page 266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "At is 62.0 mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "W=20*10**3#\n",
+ "n=4#\n",
+ "#Let the load on each bolt be W1\n",
+ "W1=W/n#\n",
+ "At=W1/80#\n",
+ "\n",
+ "print \"At is %0.1f mm**2 \"%(At)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 9-3 - Page 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "K is 0.18343 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import atan, tan, cos,pi\n",
+ "d=18#\n",
+ "p=2.5#\n",
+ "dr=d-(1.2268*p)#\n",
+ "dm=(d+dr)/2#\n",
+ "alpha=atan(p/(pi*dm))#\n",
+ "theta=pi*30/180#\n",
+ "u1=0.15#\n",
+ "u2=0.13#\n",
+ "x=(tan(alpha)+(u1/cos(theta)))/(1-(tan(alpha)*u1/cos(theta)))#\n",
+ "K=dm*x/(2*d)+(0.625*u2)#\n",
+ "print \"K is %0.5f \"%(K)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 9-4 - Page 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "final stress is 123.28 N/mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log,pi\n",
+ "d=20#\n",
+ "t=4#\n",
+ "Lg=84#\n",
+ "Ad=pi*d**2/4#\n",
+ "Eb=205*10**3#\n",
+ "Ed=105*10**3#\n",
+ "kb=Ad*Eb/Lg#\n",
+ "lg=80#\n",
+ "x=5*(lg+(0.5*d))/(lg+(2.5*d))#\n",
+ "kp=pi*Ed*d/(2*log(x))#\n",
+ "At=245#\n",
+ "sigb=105#\n",
+ "Pe=20*10**3#\n",
+ "Pb=Pe*kb/(kb+kp)#\n",
+ "sigad=Pb/At#\n",
+ "finalst=sigb+sigad#\n",
+ "\n",
+ "print \"final stress is %0.2f N/mm**2 \"%(finalst)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 9-5 - Page 268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ti is 156.97 Nm \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import atan, tan, cos,pi,log\n",
+ "Eb=207*10**3#\n",
+ "Ec=105*10**3#\n",
+ "sigp=650#\n",
+ "At=115#\n",
+ "Pi=0.75*sigp*At#\n",
+ "F=sigp*At#\n",
+ "#Let the additional load Fadd\n",
+ "Padd=F-Pi#\n",
+ "d=14#\n",
+ "Ad=pi*d**2/4#\n",
+ "Lg=63#\n",
+ "kb=Ad*Eb/Lg#\n",
+ "lg=60#\n",
+ "x=5*(lg+(0.5*d))/(lg+(2.5*d))#\n",
+ "km=pi*Ec*d/(2*log(x))#\n",
+ "C=kb/(kb+km)#\n",
+ "Pe=Padd/C#\n",
+ "K=0.2#\n",
+ "Ti=Pi*K*d*10**-3#\n",
+ "\n",
+ "print \"Ti is %0.2f Nm \"%(Ti)#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 9-6 - Page 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " sigi is 489.0 MPa \n",
+ "\n",
+ " sigi is 532.65 MPa \n",
+ "\n",
+ " T is 432 Nm \n",
+ "\n",
+ " E1 is 0.000 \n",
+ "\n",
+ " E2 is 0.888 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import atan, tan, cos,pi\n",
+ "d=20#\n",
+ "sigp=600#\n",
+ "At=245#\n",
+ "Pi=120*10**3#\n",
+ "Pe=30*10**3#\n",
+ "C=0.35#\n",
+ "Pb=C*Pe#\n",
+ "P=Pi+Pb#\n",
+ "sigi=Pi/At#\n",
+ "sigf=P/At#\n",
+ "K=0.18#\n",
+ "T=K*d*Pi*10**-3#\n",
+ "E1=sigi/sigp#\n",
+ "E2=sigf/sigp#\n",
+ "\n",
+ "print \" sigi is %0.1f MPa \"%(sigi)#\n",
+ "print \"\\n sigi is %0.2f MPa \"%(sigf)#\n",
+ "print \"\\n T is %0.0f Nm \"%(T)#\n",
+ "print \"\\n E1 is %0.3f \"%(E1)#\n",
+ "print \"\\n E2 is %0.3f \"%(E2)#\n",
+ " \n",
+ "#Value upto tenthth place is considered in the book for value of final stress in bolt, 'sigf'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 9-7 - Page 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "P is 13.758 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt,pi\n",
+ "p=2#\n",
+ "d=16#\n",
+ "dt=d-(0.938*p)#\n",
+ "At=pi*dt**2/4#\n",
+ "r=60*sqrt(2)#\n",
+ "Td=1/(4*At)#\n",
+ "Ta=120#\n",
+ "T=8.722*10**-3#\n",
+ "P=Ta/T*10**-3#\n",
+ "\n",
+ "print \"P is %0.3f kN \"%(P)#\n",
+ " \n",
+ "#Value upto hundredth place is considered in the book for value of permissible load, 'P'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 9-8 - Page 270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The eccentric load is 22.377116 N \n",
+ "P is 22.377 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "sigyp=460#\n",
+ "FOS=2#\n",
+ "Ts=0.577*sigyp/FOS#\n",
+ "At=245#\n",
+ "r=100#\n",
+ "P=Ts*At/1.453*10**-3#\n",
+ "print \"The eccentric load is %f N \"%(P)\n",
+ "print \"P is %0.3f kN \"%(P)#\n",
+ "#Value of thousandth place of eccentric load, 'P' is misprinted in the book. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 9-9 - Page 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "At is 14.2 mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "P=4*10**3#\n",
+ "e=200#\n",
+ "l1=150#\n",
+ "l2=550#\n",
+ "sigyp=420#\n",
+ "FOS=3#\n",
+ "siga=sigyp/3#\n",
+ "M=P*e#\n",
+ "At=12.5#\n",
+ "At=14.2#\n",
+ "\n",
+ "# printing data in scilab o/p window\n",
+ "print \"At is %0.1f mm**2 \"%(At)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 9-10 Page 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "At is 84.2 mm**2 \n",
+ "M12 coarse-pitch bolt with 1.75 mm pitch is used\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import atan\n",
+ "Pi=10*10**3#\n",
+ "sigyp=420#\n",
+ "FOS=2#\n",
+ "sige=sigyp/FOS#\n",
+ "K1=0.85#\n",
+ "K2=0.74#\n",
+ "K4=0.868#\n",
+ "SCF=2.4#\n",
+ "K3=1/SCF#\n",
+ "sige=sige*K1*K2*K3*K4#\n",
+ "Pe=10*10**3/3#\n",
+ "Pmax=Pi+Pe#\n",
+ "Pmin=Pi#\n",
+ "Pa=(Pmax-Pmin)/2#\n",
+ "Pm=(Pmax+Pmin)/2#\n",
+ "theta=atan(Pa/Pm)#\n",
+ "siga=21.132#\n",
+ "At=Pa/siga#\n",
+ "At=84.2#\n",
+ "\n",
+ "# printing data in scilab o/p window\n",
+ "print \"At is %0.1f mm**2 \"%(At)\n",
+ "print 'M12 coarse-pitch bolt with 1.75 mm pitch is used'#"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## exa 9-11 Page 272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "At is 58 mm**2 \n"
+ ]
+ }
+ ],
+ "source": [
+ "Pi=15#\n",
+ "Pmax=15+3.75#\n",
+ "Pmin=15+1.25#\n",
+ "Pa=(Pmax-Pmin)/2#\n",
+ "Pm=(Pmax+Pmin)/2#\n",
+ "K1=0.85#\n",
+ "K2=0.7#\n",
+ "K4=0.897#\n",
+ "SCF=2.4#\n",
+ "K3=1/SCF#\n",
+ "sige=900/4*K1*K2*K3*K4#\n",
+ "siga=28.115#\n",
+ "At=Pa*10**3/siga#\n",
+ "At=58#\n",
+ "\n",
+ "# printing data in scilab o/p window\n",
+ "print \"At is %0.0f mm**2 \"%(At)#"
+ ]
+ }
+ ],
+ "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
+}
diff --git a/Machine_Design_by_U.C._Jindal/screenshots/Chapter-3stressgraph_2.png b/Machine_Design_by_U.C._Jindal/screenshots/Chapter-3stressgraph_2.png
new file mode 100644
index 00000000..8b1f0efc
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/screenshots/Chapter-3stressgraph_2.png
Binary files differ
diff --git a/Machine_Design_by_U.C._Jindal/screenshots/Chapter-_8AdditionalLoad_2.png b/Machine_Design_by_U.C._Jindal/screenshots/Chapter-_8AdditionalLoad_2.png
new file mode 100644
index 00000000..e2ec2d6d
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/screenshots/Chapter-_8AdditionalLoad_2.png
Binary files differ
diff --git a/Machine_Design_by_U.C._Jindal/screenshots/Chapter11_-_strengthofrevet_2.png b/Machine_Design_by_U.C._Jindal/screenshots/Chapter11_-_strengthofrevet_2.png
new file mode 100644
index 00000000..15578bc7
--- /dev/null
+++ b/Machine_Design_by_U.C._Jindal/screenshots/Chapter11_-_strengthofrevet_2.png
Binary files differ
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/README.txt b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/README.txt
index 3a5894e0..3a5894e0 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/README.txt
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/README.txt
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1.ipynb
index af42a9cd..af42a9cd 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10.ipynb
index 3d742c55..3d742c55 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10_1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10_1.ipynb
index 3d742c55..3d742c55 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10_1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter10_1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11.ipynb
index 0c66f7f4..0c66f7f4 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11_1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11_1.ipynb
index 18496672..18496672 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11_1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter11_1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1_1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1_1.ipynb
index af42a9cd..af42a9cd 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1_1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter1_1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2.ipynb
index cd1cdc5f..cd1cdc5f 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2_1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2_1.ipynb
index cd1cdc5f..cd1cdc5f 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2_1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter2_1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3.ipynb
index 761cfb0c..761cfb0c 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3_1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3_1.ipynb
index 761cfb0c..761cfb0c 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3_1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter3_1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4.ipynb
index 3f17707e..3f17707e 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4_1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4_1.ipynb
index 3f17707e..3f17707e 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4_1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter4_1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5.ipynb
index 9a9ccc52..9a9ccc52 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5_1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5_1.ipynb
index 9a9ccc52..9a9ccc52 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5_1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter5_1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6.ipynb
index 569a9390..569a9390 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6_1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6_1.ipynb
index 569a9390..569a9390 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6_1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter6_1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7.ipynb
index 8731741e..8731741e 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7_1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7_1.ipynb
index 8731741e..8731741e 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7_1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter7_1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8.ipynb
index 444ef624..444ef624 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8_1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8_1.ipynb
index 444ef624..444ef624 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8_1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter8_1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9.ipynb
index ae812b40..ae812b40 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9_1.ipynb b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9_1.ipynb
index ae812b40..ae812b40 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9_1.ipynb
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/chapter9_1.ipynb
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56).png b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56).png
index d9f1e926..d9f1e926 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56).png
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56).png
Binary files differ
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56)_1.png b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56)_1.png
index d9f1e926..d9f1e926 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56)_1.png
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(56)_1.png
Binary files differ
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57).png b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57).png
index 8c463815..8c463815 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57).png
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57).png
Binary files differ
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57)_1.png b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57)_1.png
index 8c463815..8c463815 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57)_1.png
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(57)_1.png
Binary files differ
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58).png b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58).png
index 8b4f087e..8b4f087e 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58).png
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58).png
Binary files differ
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58)_1.png b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58)_1.png
index 8b4f087e..8b4f087e 100644
--- a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58)_1.png
+++ b/Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/screenshots/Screenshot_(58)_1.png
Binary files differ
diff --git a/df_by_f/muktesh.ipynb b/df_by_f/muktesh.ipynb
deleted file mode 100644
index 079c7b6e..00000000
--- a/df_by_f/muktesh.ipynb
+++ /dev/null
@@ -1,101 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 1: Basic Ideas: Energy Bands in Solids"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1, Page 8"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "\n",
- "#Variable decalaration\n",
- "pd = 100 #potential difference, V\n",
- "m0=9.11*(10**-31);#m0=rest mass of the electron in kg\n",
- "\n",
- "#Calculations&Results\n",
- "#solving final velocity of the electron\n",
- "Ek=1.6*(10**-19)*pd;#Ek=final kinetic energy of electron in Joules\n",
- "print \"Final kinetic energy = %.1e J,%.f eV\"%(Ek,Ek*6.242*10**18)\n",
- "v=math.sqrt((2*Ek)/m0)#v=final velocity of the electron\n",
- "print \"Final velocity = %.3e m/s\"%v"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Final kinetic energy = 1.6e-17 J,100 eV\n",
- "Final velocity = 5.927e+06 m/s\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 2, Page 8"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "m=7360*9.11*(10**-31);#m=mass of the ion in kg\n",
- "q=2*1.6*(10**-19);#q=charge of the ion in Coulomb\n",
- "V=2000;#V=potential difference in Volt\n",
- "\n",
- "#Calculations&Results\n",
- "#solving velocity & kinetic energy of the ion\n",
- "v=math.sqrt((2*q*V)/m)#v=velocity of the ion\n",
- "print \"Velocity acquired by the ion = %.3e m/s\"%v\n",
- "Ek=(1./2)*m*(v**2)#Ek=kinetic energy of the ion\n",
- "print \"Kinetic energy of ion = %.1e J = %.f eV\"%(Ek,Ek*6.242*10**18)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Velocity acquired by the ion = 4.369e+05 m/s\n",
- "Kinetic energy of ion = 6.4e-16 J = 3995 eV\n"
- ]
- }
- ],
- "prompt_number": 2
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/df_by_f/padmavathi.ipynb b/df_by_f/padmavathi.ipynb
deleted file mode 100644
index 701d2ae5..00000000
--- a/df_by_f/padmavathi.ipynb
+++ /dev/null
@@ -1,127 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>ERROR: The requested URL could not be retrieved</title>
-<style type="text/css"><!--
- /*
- Stylesheet for Squid Error pages
- Adapted from design by Free CSS Templates
- http://www.freecsstemplates.org
- Released for free under a Creative Commons Attribution 2.5 License
-*/
-
-/* Page basics */
-* {
- font-family: verdana, sans-serif;
-}
-
-html body {
- margin: 0;
- padding: 0;
- background: #efefef;
- font-size: 12px;
- color: #1e1e1e;
-}
-
-/* Page displayed title area */
-#titles {
- margin-left: 5px;
- padding: 10px;
- padding-left: 150px;
- background: url('http://docs.iitb.ac.in/iitb_logo.jpg') no-repeat left;
-}
-
-/* initial title */
-#titles h1 {
- color: #000000;
-}
-#titles h2 {
- color: #000000;
-}
-
-/* special event: FTP success page titles */
-#titles ftpsuccess {
- background-color:#00ff00;
- width:100%;
-}
-
-/* Page displayed body content area */
-#content {
- padding: 10px;
- background: #ffffff;
-}
-
-/* General text */
-p {
-}
-
-/* error brief description */
-#error p {
-}
-
-/* some data which may have caused the problem */
-#data {
-}
-
-/* the error message received from the system or other software */
-#sysmsg {
-}
-
-pre {
- font-family:sans-serif;
-}
-
-/* special event: FTP / Gopher directory listing */
-#dirlisting tr.entry td.icon,td.filename,td.size,td.date {
- border-bottom: groove;
-}
-#dirlisting td.size {
- width: 50px;
- text-align: right;
- padding-right: 5px;
-}
-
-/* horizontal lines */
-hr {
- margin: 0;
-}
-
-/* page displayed footer area */
-#footer {
- font-size: 9px;
- padding-left: 10px;
-}
-
-
-body
-:lang(fa) { direction: rtl; font-size: 100%; font-family: Tahoma, Roya, sans-serif; float: right; }
-:lang(he) { direction: rtl; }
- --></style>
-</head><body id=ERR_READ_ERROR>
-<div id="titles">
-<h1>ERROR</h1>
-<h2>The requested URL could not be retrieved</h2>
-</div>
-<hr>
-
-<div id="content">
-<p>The following error was encountered while trying to retrieve the URL: <a href="http://tbc-python.fossee.in/static/Python-Textbook-Companions/sample_notebooks/PADMAVATHITHIYAGARAJAN/Chapter_5.ipynb">http://tbc-python.fossee.in/static/Python-Textbook-Companions/sample_notebooks/PADMAVATHITHIYAGARAJAN/Chapter_5.ipynb</a></p>
-
-<blockquote id="error">
-<p><b>Read Error</b></p>
-</blockquote>
-
-<p id="sysmsg">The system returned: <i>(104) Connection reset by peer</i></p>
-
-<p>An error condition occurred while reading data from the network. Please retry your request.</p>
-
-<p>Your cache administrator is <a href="mailto:webmaster?subject=CacheErrorInfo%20-%20ERR_READ_ERROR&amp;body=CacheHost%3A%20nm11.iitb.ac.in%0D%0AErrPage%3A%20ERR_READ_ERROR%0D%0AErr%3A%20(104)%20Connection%20reset%20by%20peer%0D%0ATimeStamp%3A%20Wed,%2002%20Dec%202015%2009%3A49%3A48%20GMT%0D%0A%0D%0AClientIP%3A%2010.101.11.67%0D%0AServerIP%3A%20tbc-python.fossee.in%0D%0A%0D%0AHTTP%20Request%3A%0D%0AGET%20%2Fstatic%2FPython-Textbook-Companions%2Fsample_notebooks%2FPADMAVATHITHIYAGARAJAN%2FChapter_5.ipynb%20HTTP%2F1.1%0AHost%3A%20tbc-python.fossee.in%0D%0AUser-Agent%3A%20Mozilla%2F5.0%20(X11%3B%20Ubuntu%3B%20Linux%20x86_64%3B%20rv%3A42.0)%20Gecko%2F20100101%20Firefox%2F42.0%0D%0AAccept%3A%20text%2Fhtml,application%2Fxhtml+xml,application%2Fxml%3Bq%3D0.9,*%2F*%3Bq%3D0.8%0D%0AAccept-Language%3A%20en-US,en%3Bq%3D0.5%0D%0AAccept-Encoding%3A%20gzip,%20deflate%0D%0AReferer%3A%20http%3A%2F%2Ftbc-python.fossee.in%2Fproposal-review%2F%0D%0ACookie%3A%20_pk_id.15.f977%3D1205565a2a6c32b7.1448535465.10.1449069234.1449052776.%3B%20_ga%3DGA1.2.63526281.1448535465%3B%20csrftoken%3DOMjtAiQsCv4myz9R3VtGF1B6t2EEDVBb%3B%20sessionid%3Dqnfilway656h8jfx1pmw5ph7gj64798v%3B%20_pk_ses.15.f977%3D*%3B%20_gat%3D1%0D%0AConnection%3A%20keep-alive%0D%0APragma%3A%20no-cache%0D%0ACache-Control%3A%20no-cache%0D%0A%0D%0A%0D%0A">webmaster</a>.</p>
-<br>
-</div>
-
-<hr>
-<div id="footer">
-<p>Generated Wed, 02 Dec 2015 09:49:48 GMT by nm11.iitb.ac.in (squid/3.3.9)</p>
-<!-- ERR_READ_ERROR -->
-</div>
-</body></html>
diff --git a/df_by_f/prashanth.ipynb b/df_by_f/prashanth.ipynb
deleted file mode 100644
index 13cd9704..00000000
--- a/df_by_f/prashanth.ipynb
+++ /dev/null
@@ -1,601 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Chapter 1: Circuit Configuration for Linear Integrated Ciruits"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 1 Page No:1.81"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "adm= -1482.0\n",
- "acm= -1.0\n",
- "cmrr= 76.4838188131 db\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "rc=50000;#ohm\n",
- "re=100000;#ohm\n",
- "rs=10000;#ohm\n",
- "rp=50000;#ohm\n",
- "beta0=2000;\n",
- "r0=400000;#ohm\n",
- "\n",
- "\n",
- "\n",
- "#determine adm,acm,cmrr\n",
- "#calculation\n",
- "rc1=(rc*r0)/(rc+r0);\n",
- "adm=(-(beta0*rc1)/(rs+rp))#differential mode gain\n",
- "acm=(-(beta0*rc1)/(rs+rp+2*re*(beta0+1)))#common mode gain\n",
- "import math\n",
- "cmrr=20*(math.log10((1+((2*re*(beta0+1))/(rs+rp)))))#common mode rejection ratio\n",
- "\n",
- "#result\n",
- "print 'adm=',round(adm,3);\n",
- "print 'acm=',round(acm,3);\n",
- "print 'cmrr=',cmrr,'db'\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 2 Page No:1.83"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "maximum peak amplitude at 100khz 3.185 V\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "sr=0.000001;#volt/sec\n",
- "freq=100000;\n",
- "vsat=12;\n",
- "baw=100000;\n",
- "#determine vx\n",
- "\n",
- "#calculation\n",
- "vx=2*(1/(sr*2*3.14*freq))\n",
- "\n",
- "#result\n",
- "print 'maximum peak amplitude at 100khz',round(vx,3),'V'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 3 Page No: 1.84"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "slew rate= 5 volt/μsec\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "V=20;\n",
- "t=4;\n",
- "#determine slew rate\n",
- "#calculation\n",
- "w=V/t\n",
- "#result\n",
- "print'slew rate=',w,'volt/μsec'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 4 Page No: 1.84"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "max frequency of input is 79617.8343949 hz\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "a=50;\n",
- "vi=20e-3;\n",
- "sr=0.5e6;\n",
- "#determine max frequency\n",
- "#calculation\n",
- "vm=a*vi;\n",
- "freq=sr/(2*3.14*vm)\n",
- "#result\n",
- "print 'max frequency of input is ',freq,'hz'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 5 Page No: 1.84"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "max peak to peak input signal 0.398089171975 V\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "sr=0.5e6;\n",
- "freq=40e3;\n",
- "a=10;\n",
- "#determine max peak to peak input signal\n",
- "#calculation\n",
- "vm=sr/(2*3.14*freq);\n",
- "vm=2*vm;\n",
- "v1=vm/a\n",
- "#result\n",
- "print'max peak to peak input signal ',v1,'V'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "collapsed": true
- },
- "source": [
- "###Example 6 Page No: 1.85"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "noise 0.0063247 V\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "adm=400;\n",
- "cmrr=50;\n",
- "vin1=50e-3;\n",
- "vin2=60e-3;\n",
- "vnoise=5e-3;\n",
- "#calculation\n",
- "v0=(vin2-vin1)*adm;\n",
- "acm=adm/316.22;\n",
- "v1=vnoise*acm\n",
- "print'noise ',round(v1,7),'V'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 7 Page No: 1.86"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "time to change from 0 t0 15 4e-07 sec\n",
- "slew rate 1.5 volt/μsec\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "sr=35e6;#volt/sec\n",
- "vsat=15;#volt\n",
- "#determine time to change from 0 to 15V\n",
- "#calculation\n",
- "c=100e-12;#farad\n",
- "i=150e-6;#A\n",
- "w=vsat/sr\n",
- "w1=i/c;\n",
- "#result\n",
- "print'time to change from 0 t0 15 ',round(w,7),'sec'\n",
- "print'slew rate',w1/1000000,'volt/μsec'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 8 Page No: 1.86"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "bandwidth 21231.4225053 hz\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "sr=2e6;#v/sec\n",
- "vsat=15;#volt\n",
- "#determine bandwidth \n",
- "#calculation\n",
- "\n",
- "bw=sr/(2*3.14*vsat)\n",
- "#result\n",
- "print'bandwidth ',bw,'hz'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 9 Page No: 1.87"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "output offset 3.0 V\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "iin=30e-9;#A\n",
- "a=1e5;\n",
- "rin=1000;#ohm\n",
- "#determine output offset voltage\n",
- "#calculation\n",
- "vid=iin*rin;\n",
- "v0=a*vid\n",
- "#result\n",
- "print'output offset ',v0,'V'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 10 Page No: 1.86"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "input offset current 4e-06 A\n",
- "input base current 2.4e-05 A\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "inb1=22e-6;#A\n",
- "inb2=26e-6;#A\n",
- "#determine input offset current input base current\n",
- "#calculation\n",
- "i1=inb2-inb1\n",
- "i2=(inb2+inb1)/2\n",
- "#result\n",
- "print'input offset current ',i1,'A'\n",
- "print'input base current ',i2,'A'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 11 Page No: 1.86"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 17,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "input base current 8e-08 A\n",
- "input offset current 2e-08 A\n",
- "input offset 2.0 V\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "inb2=90e-9;#A\n",
- "inb1=70e-9;#A\n",
- "a=1e5;\n",
- "#determine input offset current\n",
- "#calculation\n",
- "i1=(inb2+inb1)/2\n",
- "i2=inb2-inb1\n",
- "v1=((inb2-inb1)*1000)*a\n",
- "print'input base current ',i1,'A'\n",
- "print'input offset current ',i2,'A'\n",
- "print'input offset ',v1,'V'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 12 Page No: 1.88"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "output voltage cmrr 100 0.05125 V\n",
- "output voltage cmrr 200 0.050625 V\n",
- "output voltage cmrr 450 0.0502777777778 V\n",
- "output voltage cmrr 105 0.0511904761905 V\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "vin1=150e-6;#volt\n",
- "vin2=100e-6;#volt\n",
- "a=1000;\n",
- "from array import *\n",
- "cmrr=array('i',[100,200,450,105])\n",
- "#determine output voltage\n",
- "#calculation\n",
- "vc=(vin1+vin2)/2;\n",
- "vd=(vin1-vin2);\n",
- "j=0;\n",
- "while j<=3 :v0=(a*vd*(1+(vc/(cmrr[j]*vd)))) ;print 'output voltage cmrr ',cmrr[j],' ',v0,'V';j=j+1;\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 13 Page No: 1.87"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 20,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "output voltage 0.00316455696203 V\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "rin=100e3;#ohm\n",
- "rf1=900e3;#ohm\n",
- "vc=1;#volt\n",
- "cmrr=70;\n",
- "#determine the output voltage\n",
- "#calculation\n",
- "v0=(1+(rf1/rin))*vc/3160\n",
- "print 'output voltage ',v0,'V'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 14 Page No: 1.89"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "input voltage 0.08 V\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "sr=0.5e6;#volt/sec\n",
- "a=50;\n",
- "freq=20e3;#hz\n",
- "#determine max peak to peak voltage\n",
- "#calculation\n",
- "v1=sr/(2*3.14*freq*a)\n",
- "print'input voltage ',round(v1,3),'V'\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "###Example 15 Page No: 1.90"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "max frequency 26.5392781316 Khz\n"
- ]
- }
- ],
- "source": [
- "#given\n",
- "sr=50e6;#volt/sec\n",
- "rin=2;\n",
- "vimax=10;\n",
- "#determine max frequency\n",
- "#calculation\n",
- "vm=vimax*(1+rin);\n",
- "freq=sr/(2*3.14*vm)/10e3;\n",
- "print 'max frequency ',freq,'Khz'\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- }
- ],
- "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.10"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 0
-}
diff --git a/df_by_f/screenshots/blank1.png b/df_by_f/screenshots/blank1.png
deleted file mode 100644
index e69de29b..00000000
--- a/df_by_f/screenshots/blank1.png
+++ /dev/null
diff --git a/df_by_f/screenshots/blank1_(another_copy).png b/df_by_f/screenshots/blank1_(another_copy).png
deleted file mode 100644
index e69de29b..00000000
--- a/df_by_f/screenshots/blank1_(another_copy).png
+++ /dev/null
diff --git a/df_by_f/screenshots/blank1_(copy).png b/df_by_f/screenshots/blank1_(copy).png
deleted file mode 100644
index e69de29b..00000000
--- a/df_by_f/screenshots/blank1_(copy).png
+++ /dev/null
diff --git a/df_by_f/screenshots/blank1_(copy)_1.png b/df_by_f/screenshots/blank1_(copy)_1.png
deleted file mode 100644
index e69de29b..00000000
--- a/df_by_f/screenshots/blank1_(copy)_1.png
+++ /dev/null
diff --git a/df_by_f/screenshots/blank1_1.png b/df_by_f/screenshots/blank1_1.png
deleted file mode 100644
index e69de29b..00000000
--- a/df_by_f/screenshots/blank1_1.png
+++ /dev/null
diff --git a/df_by_f/screenshots/blank1_2.png b/df_by_f/screenshots/blank1_2.png
deleted file mode 100644
index e69de29b..00000000
--- a/df_by_f/screenshots/blank1_2.png
+++ /dev/null
diff --git a/dss_by_asd/README.txt b/dss_by_asd/README.txt
deleted file mode 100644
index 6e111d12..00000000
--- a/dss_by_asd/README.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Contributed By: Asmita Bhat
-Course: msc
-College/Institute/Organization: sdf
-Department/Designation: sdf
-Book Title: dss
-Author: asd
-Publisher: sdf
-Year of publication: 3
-Isbn: 3
-Edition: 3 \ No newline at end of file
diff --git a/dss_by_asd/namratha.ipynb b/dss_by_asd/namratha.ipynb
deleted file mode 100644
index a3461ece..00000000
--- a/dss_by_asd/namratha.ipynb
+++ /dev/null
@@ -1,907 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# #Chapter 3:Magnetic Circuits"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# #Example 3.1:Page number-158\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "The reluctance of steel ring is= 1250000.0 AT/Wb\n",
- "The magnetomotive force is= 625.0 AT\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "pi=3.14\n",
- "l=pi*0.2 #l=mean length of the ring=pi*mean diameter of the ring\n",
- "A=400*10**-6 #A=cross sectional area of ring\n",
- "u1=1000 #u1=relative permeability of steel\n",
- "u2=4*pi*10**-7 #relative permeability of air\n",
- "\n",
- "R=l/(A*u1*u2) #reluctance of steel ring\n",
- "\n",
- "print \"The reluctance of steel ring is=\",round(R,0),\"AT/Wb\"\n",
- "\n",
- "#case b\n",
- "\n",
- "flux=500*10**-6\n",
- "f=flux*R\n",
- "\n",
- "print \"The magnetomotive force is=\",round(f,0),\"AT\"\n",
- "\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# #Example 3.2:Page number-158"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "The flux density is= 0.625 Wb/m**2\n",
- "The magnetomotive force is= 375.0 AT\n",
- "The magnetic field strength is= 750.0 AT/m\n",
- "The relative permeability is= 663.0\n",
- "The flux density is= 1.5 Wb/m**2\n",
- "The magnetomotive force is= 1250.0 AT\n",
- "Magnetic field strength= 2500.0 AT/m\n",
- "The relative permeability is= 477.7\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "l=0.5\n",
- "A=4*10**-4\n",
- "N=250\n",
- "I=1.5\n",
- "flux=0.25*10**-3\n",
- "fluxdensity=flux/A \n",
- "\n",
- "f=N*I #magnetomotive force\n",
- "\n",
- "H=(N*I)/l #magnetic field strength\n",
- "\n",
- "pi=3.14\n",
- "u1=4*pi*10**-7\n",
- "u2=fluxdensity/(u1*H)\n",
- "\n",
- "print \"The flux density is=\",round(fluxdensity,3),\"Wb/m**2\"\n",
- "print \"The magnetomotive force is=\",round(f,0),\"AT\"\n",
- "print \"The magnetic field strength is=\",round(H,0),\"AT/m\"\n",
- "print \"The relative permeability is=\",round(u2,0)\n",
- "\n",
- "#case b\n",
- "\n",
- "#given\n",
- "I=5\n",
- "flux=0.6*10**-3\n",
- "A=4*10**-4\n",
- "N=250\n",
- "l=0.5\n",
- "\n",
- "fluxdensity=flux/A\n",
- "\n",
- "print \"The flux density is=\",round(fluxdensity,1),\"Wb/m**2\"\n",
- "\n",
- "f=N*I #magnetomotive force\n",
- "\n",
- "print \"The magnetomotive force is=\",round(f,0),\"AT\"\n",
- "\n",
- "H=(N*I)/l #magnetic field stength\n",
- "\n",
- "print \"Magnetic field strength=\",round(H,0),\"AT/m\"\n",
- "pi=3.14\n",
- "u1=4*pi*10**-7\n",
- "u2=fluxdensity/(u1*H)\n",
- "\n",
- "print \"The relative permeability is=\",round(u2,1)\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Example 3.3: Page number-159"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Magnetomotive force= 1250.0 AT\n",
- "The reluctance of air gap is= 162154.449 AT/Wb\n",
- "The flux is= 0.006475308 Wb\n",
- "The flux density is= 13.188 Wb/m**2\n",
- "The reluctance of steel string is= 69494.763801 AT/Wb\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "pi=3.14\n",
- "ls=0.627 #mean length of steel string\n",
- "\n",
- "la=0.0001 #length of air gap\n",
- "\n",
- "A=4.91*10**-4 #cross sectional area of magnetic circuit\n",
- "\n",
- "f=N*I #magnetomotive force\n",
- "print \"Magnetomotive force=\",round(f,0),\"AT\"\n",
- "\n",
- "fa=1050 #fa=mmf of air gap=1050AT\n",
- "\n",
- "fs=450 #fs=mmf of steel ring=450\n",
- "\n",
- "#case b\n",
- "\n",
- "u1=4*pi*10**-7\n",
- "ra=la/(u1*A) #reluctance of air gap\n",
- "\n",
- "print \"The reluctance of air gap is=\",round(ra,3),\"AT/Wb\"\n",
- "\n",
- "flux=fa/ra\n",
- "\n",
- "print \"The flux is= \",round(flux,20),\"Wb\"\n",
- "\n",
- "\n",
- "#case c\n",
- "\n",
- "fluxdensity=flux/A\n",
- "\n",
- "print \"The flux density is=\",round(fluxdensity,5),\"Wb/m**2\"\n",
- "\n",
- "#case d\n",
- "\n",
- "rs=fs/flux #reluctance of steel string\n",
- "\n",
- "print \"The reluctance of steel string is=\",round(rs,6),\"AT/Wb\"\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Example 3.4: Page number-160"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 24,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "The air gap= 955414.01274 AT/m\n",
- "The magnetomotive force is= 5.0 AT\n",
- "hs= 1061.57 AT/m\n",
- "The magnetomotive force for air gap is= 318.47 AT\n",
- "Total mmf= 323.47 AT\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "\n",
- "la=2*10**-3 #length of the air gap\n",
- "ls=0.3 #lentgh of the cast steel core\n",
- "B=1.2\n",
- "\n",
- "ha=B/u1\n",
- "\n",
- "print \"The air gap=\",round(ha,5),\"AT/m\"\n",
- "\n",
- "fa=H*la #magnetomotive ofrce for air gap\n",
- "\n",
- "print \"The magnetomotive force is=\",round(fa,0),\"AT\"\n",
- "\n",
- "u2=900\n",
- "hs=B/(u1*u2)\n",
- "\n",
- "print \"hs=\",round(hs,2),\"AT/m\"\n",
- "\n",
- "fs=hs*ls #magnetomotive force for air gap\n",
- "\n",
- "print \"The magnetomotive force for air gap is=\",round(fs,2),\"AT\"\n",
- "\n",
- "totmmf=fa+fs\n",
- "\n",
- "print \"Total mmf=\",round(totmmf,2),\"AT\"\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Example 3.5-Page number-161 "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 26,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "flux density is= 2.15844 mWb/m**2\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "\n",
- "f=200 #total mmf\n",
- "#ra=2*10**-3/(u1*a) #reluctance of air gap\n",
- "#ri=10**-3/(u1*a) #reluctance of iron core\n",
- "#r=3*10**-3/(u1*a) #reluctance of magnetic circuit\n",
- "\n",
- "#flux=f/r\n",
- "\n",
- "a=3*10**-3\n",
- "fluxdensity=flux/a\n",
- "\n",
- "print \"flux density is=\",round(fluxdensity,5),\"mWb/m**2\"\n",
- "\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Example 3.6-Page number-161"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "The relucatance of air gap is= 497611.464968 AT/wb\n",
- "The flux density in central limb is= 0.1125 Wb/m**2\n",
- "The mmf drop in central limb is= 300.0 AT\n",
- "fabh= 500.0 AT\n",
- "The total mmf required is= 1695.0 AT\n",
- "The required current is= 2.825 A\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "\n",
- "fluxa=0.00018 #flux in the air gap\n",
- "la=0.1*10**-2 #length of the air gap\n",
- "ac=16*10**-4 #area of cross section\n",
- "u1=4*3.14*10**-7\n",
- "\n",
- "ra=la/(u1*ac) #reluctance of the air gap\n",
- "\n",
- "print \"The relucatance of air gap is=\",round(ra,10),\"AT/wb\"\n",
- "\n",
- "#fa=fluxa*ra #mmf required to set up flux in air gap\n",
- "\n",
- "#print \"The mmf required to set up flux in air gap is=\",round(fa,10),\"AT\" --> This rounds to 895\n",
- "\n",
- "fa=895\n",
- "\n",
- "B=fluxa/ac #flux density in central limb\n",
- "\n",
- "print \"The flux density in central limb is=\",round(B,10),\"Wb/m**2\"\n",
- "\n",
- "#given from B-H curve, when B=1.125 the field density required is hc=1000 AT/m\n",
- "#given\n",
- "\n",
- "hc=1000 #as above\n",
- "\n",
- "lc=30*10**-2 #length of central limb\n",
- "\n",
- "fc=hc*lc #mmf drop in central limb\n",
- "\n",
- "print \"The mmf drop in central limb is=\",round(fc,0),\"AT\"\n",
- "\n",
- "#from the diagram the flux density in parallel path fabh is flux(a)/2 =0.5625 Wb/m**2 and field intensity H=625 AT/m\n",
- "\n",
- "#given\n",
- "\n",
- "lp=80*10**-2 #length of parallel path\n",
- "\n",
- "H=625 #from above\n",
- "\n",
- "fabh=H*lp\n",
- "\n",
- "print \"fabh=\",round(fabh,0),\"AT\"\n",
- "\n",
- "F=fa+fc+fabh\n",
- "\n",
- "print \"The total mmf required is=\",round(F,0),\"AT\"\n",
- "\n",
- "#given\n",
- "N=600 #number of turns\n",
- "I=F/N\n",
- "\n",
- "print \"The required current is=\",round(I,5),\"A\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Example 3.7:Page number-163"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 23,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "B= 0.7 Wb/m**2\n",
- "mmf= 111.4 AT\n",
- "totmmf= 223.85 AT\n",
- "h2= 298.46667 AT\n",
- "flux2= 0.0014 Wb\n",
- "total mmf in fabc= 2250.0 Wb/m**2\n",
- "totmmfm= 2473.85 AT\n",
- "The total current required to set up flux in air gap is= 4.9477 A\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "\n",
- "fluxa=1.4*10**-3\n",
- "area=0.002\n",
- "\n",
- "B=fluxa/area #flux density in air gap \n",
- "\n",
- "print \"B=\",round(B,3),\"Wb/m**2\"\n",
- "\n",
- "#u1=4*3.14*10**-7\n",
- "#ha=B/u1 in AT/m #magnetic field in air gap\n",
- "ha=55.7\n",
- "\n",
- "la=2 #length of air gap in m\n",
- "mmf=ha*la #mmf of air gap\n",
- "print \"mmf=\",round(mmf,3),\"AT\"\n",
- "\n",
- "#since the flux density of central limb is 0.7 the corresponding field srength is h1=250AT/m\n",
- "h1=250\n",
- "mmfl=112.45 #mmf for magnetic central limb-->mmf=250*(450-0.2)*10**-3\n",
- "\n",
- "totmmf=mmf+mmfl\n",
- "\n",
- "print \"totmmf=\",round(totmmf,5),\"AT\"\n",
- "\n",
- "#mean length of core CGHF=0.75m\n",
- "\n",
- "ml=0.75 #as above\n",
- "\n",
- "#since the central limb and magnetic core are in parallel they have same mmf that is 223.86AT\n",
- "\n",
- "\n",
- "h2=totmmf/ml #magnetic intensity in CGHF\n",
- "\n",
- "print \"h2=\",round(h2,5),\"AT\"\n",
- "\n",
- "flux2=B*area \n",
- "print \"flux2=\",round(flux2,5),\"Wb\"\n",
- "\n",
- "totflux=fluxa+flux2 #Wb\n",
- "Bfabc=totflux/area #flux density in magnetic core fabc in Wb/m**2\n",
- "\n",
- "H=3000 #AT/m\n",
- "totmmffabc=H*ml #total mmf in fabc in AT\n",
- "print \"total mmf in fabc=\",round(totmmffabc,5),\"Wb/m**2\"\n",
- "\n",
- "totmmfm=totmmffabc+totmmf #total mmf in magnetic core in AT\n",
- "\n",
- "print \"totmmfm=\",round(totmmfm,5),\"AT\"\n",
- "\n",
- "N=500\n",
- "I=totmmfm/N #The required current to set up flux in air gap\n",
- "\n",
- "print \"The total current required to set up flux in air gap is=\",round(I,5),\"A\"\n",
- "\n",
- "\n",
- "\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "collapsed": true
- },
- "source": [
- "# Example 3.8:Page number-171"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 25,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "l1= 0.004 mH\n",
- "m12= 0.003 mH\n",
- "l2= 0.006 mH\n",
- "m21= 0.003 mH\n",
- "Work done= 7.7 J\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "\n",
- "r1=3.98*10**6 #reluctance of air gap in AT/Wb and the value is same for r2\n",
- "r3=5.97*10**6 #reluctance of air gap in AT/Wb\n",
- "\n",
- "#assume that current of 1A flows through 150 turns coil,for assumed directions of fluxes application of mesh current leads to matrix equations that can be simplified to:\n",
- "#[flux1 flux2]=[2.36 1.41]*10**-5 Wb\n",
- "\n",
- "#The self inductance and mutual inductance are obtained as follows:\n",
- "\n",
- "n1=150 #number of turns\n",
- "i1=1 #A\n",
- "flux1=2.36*10**-5 #Wb\n",
- "l1=(n1*flux1)/i1 #self inductance\n",
- "\n",
- "print \"l1=\",round(l1,3),\"mH\"\n",
- "\n",
- "n2=200 #number of turns\n",
- "flux2=1.41*10**-5\n",
- "m12=(n2*flux2)/i1 #mutual inductance\n",
- "\n",
- "print \"m12=\",round(m12,3),\"mH\"\n",
- "\n",
- "#assume that 1A of current flows through 200 turns coil\n",
- "#The self inductance of the coil is determined as above using the matrix and the result is as follows\n",
- "#[flux1 flux2]=[1.89 3.14]*10**-5 Wb\n",
- "#Hence self and mutual inductance are computed as follows\n",
- "\n",
- "n2=200 #number of turns\n",
- "flux2=3.14*10**-5 #Wb\n",
- "i2=1 #A\n",
- "l2=(n2*flux2)/i2 #self inductance\n",
- "\n",
- "print \"l2=\",round(l2,3),\"mH\"\n",
- "\n",
- "flux1=1.89*10**-5\n",
- "m21=(n1*flux1)/i2 #mutual inductance\n",
- "print \"m21=\",round(m21,3),\"mH\"\n",
- "\n",
- "#case b\n",
- "#When the air gap l3 is closed the reluctance of the limb is zero since the permeability of the magnetic material is infinity.Thus,the limb behaves like short circuit and the entire flux passes through it.Thus,the flux linking 200 turns coil is zero and mutual inductance is zero\n",
- "\n",
- "#case 3\n",
- "\n",
- "W=((3.5)/2)+((6.3)/2)+2.8 #work equation in joules\n",
- "print \"Work done=\",round(W,5),\"J\"\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Example 3.9:Page number-174"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "i= 7.85 A\n",
- "l= 0.20382 H\n",
- "rair= 3184713.3758 AT/Wb\n",
- "fair= 6369.42675 AT\n",
- "total mmf= 12602.60675 AT\n",
- "L= 0.10157 H\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "\n",
- "B=0.8 #Wb/m**2\n",
- "A=25*10**-4 #m**2\n",
- "flux=20*10**-4 #Wb\n",
- "l=3.14*40*10**-2 #m\n",
- "f=2000*3.14 #AT\n",
- "n=800 #number of turns\n",
- "\n",
- "#case a\n",
- "i=f/n #A exciting current\n",
- "\n",
- "print \"i=\",round(i,3),\"A\"\n",
- "\n",
- "l=(n*flux)/i #self inductance in H\n",
- "\n",
- "print \"l=\",round(l,5),\"H\"\n",
- "\n",
- "#case b\n",
- "\n",
- "fluxa=20*10**-4 #Wb\n",
- "\n",
- "gap=1*10**-2\n",
- "u1=4*3.14*10**-7\n",
- "rair=gap/(u1*A) #reluctance of air in AT/Wb\n",
- "\n",
- "print \"rair=\",round(rair,5),\"AT/Wb\"\n",
- "\n",
- "fair=rair*flux #mmf for air gap in AT\n",
- "\n",
- "print \"fair=\",round(fair,5),\"AT\"\n",
- "\n",
- "fcore=6233.18 #AT--> 5000*((0.4*3.14)-0.01)=6233.18\n",
- "\n",
- "totmmf=fcore+fair\n",
- "\n",
- "print \"total mmf=\",round(totmmf,5),\"AT\"\n",
- "\n",
- "I=totmmf/n #A exciting current\n",
- "\n",
- "#self inductance\n",
- "L=(n*flux)/I\n",
- "print \"L=\",round(L,5),\"H\"\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Example 3.10:Page number-175"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "lx= 0.01 H\n",
- "m= 0.015 H\n",
- "The induced emf in coil Y= 30.0 V\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "n=2000 #number of turns\n",
- "flux=0.05*10**-3 #Wb\n",
- "i=10 #A\n",
- "\n",
- "lx=(n*flux)/i #self inductance in X\n",
- "\n",
- "print \"lx=\",round(lx,5),\"H\"\n",
- "\n",
- "#since coils are identical self inductance in Y=self inductance in x\n",
- "\n",
- "fluxlinkingX=0.75*0.05*10**-3 #Wb flux linking due to current in coil X\n",
- "fluxlinkingY=2000*0.05*0.75*10**-3 #Wb flux linkages in coil Y\n",
- "\n",
- "m=fluxlinkingY/5 #mutual inductance\n",
- "\n",
- "print \"m=\",round(m,5),\"H\"\n",
- "\n",
- "#The rate of change in current di/dt=2000A/sec --> di/dt=(10-(-10))/0.01\n",
- "\n",
- "rate=2000\n",
- "ey=m*rate\n",
- "\n",
- "print \"The induced emf in coil Y=\",round(ey,0),\"V\"\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Example 3.11:Page number-175"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "k=0.72168\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "#when currents are in same direction the total induction is:\n",
- "#lt=l1+l2+2m\n",
- "#when currents are in opposite direction the total emf is:\n",
- "#lt=l1+l2-2m\n",
- "#According to this problem\n",
- "#l1+l2+2m=1.2\n",
- "#l1+l2-2m=0.2\n",
- "#Solving the above equations we get l1=0.4H M=0.25H\n",
- "#on substituting we get l2=0.3H\n",
- "#k=m/squareroot(l1*l2)\n",
- "print \"k=0.72168\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Example 3.12:Page number-176"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "flux 0.0001 Wb\n",
- "i 0.3125 A\n",
- "l= 0.08 H\n",
- "w= 0.00391 J\n",
- "796.178343949\n",
- "exciting current= 6.3 A\n",
- "l= 0.00397 H\n",
- "e= 0.07881 J\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "#case a\n",
- "B=1 #Wb/m**2\n",
- "A=10**-4 #cm**2\n",
- "per=800 #permeability\n",
- "n=250 #number of turns\n",
- "\n",
- "flux=B*A\n",
- "\n",
- "print \"flux\",round(flux,5),\"Wb\"\n",
- "\n",
- "r=781250 #AT/Wb calculated using formula for reluctance\n",
- "\n",
- "mmf=flux*r #AT\n",
- "\n",
- "i=mmf/n #exciting current required in A\n",
- "\n",
- "print \"i\",round(i,5),\"A\"\n",
- "\n",
- "l=(n*flux)/i #self inductance of the coil\n",
- "\n",
- "print \"l=\",round(l,5),\"H\"\n",
- "\n",
- "w=(l*i*i)/2 #energy stored\n",
- "\n",
- "print \"w=\",round(w,5),\"J\"\n",
- "\n",
- "#case b\n",
- "\n",
- "airgap=1*10**-3 #air gap is assumed \n",
- "rair=airgap/(u1*A) #reluctance of air gap in AT/Wb\n",
- "mmfa=flux*rair #mmf of air in AT\n",
- "print mmfa\n",
- "#rcore=((2.5*3.14)-0.1)/(32*3.14*10**-6) #reluctance of core \n",
- "#mmfc=flux*rcore\n",
- "mmfc=780 #AT\n",
- "F=mmfc+mmfa\n",
- "\n",
- "I=F/n #A\n",
- "\n",
- "print \"exciting current=\",round(I,2),\"A\"\n",
- "\n",
- "n=250 #number of turns\n",
- "L=(n*flux)/I #self inductanc eof coil with air gap \n",
- "\n",
- "print \"l=\",round(L,5),\"H\"\n",
- "\n",
- "e=(L*I*I)/2 #energy stored in coil\n",
- "\n",
- "print \"e=\",round(e,5),\"J\"\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Example 3.13:Page number:178"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "force= 39808.9172 N\n",
- "W= 796.17834 J\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#given\n",
- "A=10**-1 #area\n",
- "flux=0.1 #Wb\n",
- "\n",
- "#case a\n",
- "\n",
- "B=flux/A #flux density Wb/m**2\n",
- "\n",
- "u1=4*3.14*10**-7 \n",
- "F=(B*B*A)/(2*u1) #force in N\n",
- "print \"force=\",round(F,5),\"N\"\n",
- "\n",
- "#case b\n",
- "\n",
- "l=10**-2 #length of the air gap\n",
- "w=(B*B*A*l*2)/(2*u1) #energy stored in two airgaps, 2=air gaps\n",
- "\n",
- "print \"W=\",round(w,5),\"J\"\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- }
- ],
- "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
-}
diff --git a/dss_by_asd/screenshots/screenshot2.png b/dss_by_asd/screenshots/screenshot2.png
deleted file mode 100644
index c8801e74..00000000
--- a/dss_by_asd/screenshots/screenshot2.png
+++ /dev/null
Binary files differ
diff --git a/dss_by_asd/screenshots/screenshot4.png b/dss_by_asd/screenshots/screenshot4.png
deleted file mode 100644
index d280cd21..00000000
--- a/dss_by_asd/screenshots/screenshot4.png
+++ /dev/null
Binary files differ
diff --git a/dss_by_asd/screenshots/streamplot.png b/dss_by_asd/screenshots/streamplot.png
deleted file mode 100644
index 7f01b676..00000000
--- a/dss_by_asd/screenshots/streamplot.png
+++ /dev/null
Binary files differ
diff --git a/fdgfg_by_fgs/arijit.ipynb b/fdgfg_by_fgs/arijit.ipynb
deleted file mode 100755
index d287e069..00000000
--- a/fdgfg_by_fgs/arijit.ipynb
+++ /dev/null
@@ -1,904 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Chapter 1: Operational Amplifier Fundamentals"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.1, Page 4"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "%matplotlib inline"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "a)\n",
- "The overall gain is 60.0 V/V\n",
- "The input load is 80.0 % of it's unloaded value\n",
- "The output load is 75.0 % of it's unloaded value\n",
- "b)\n",
- "The overall gain is 53.3 V/V\n",
- "The input load is 66.7 % of it's unloaded value\n",
- "The output load is 80.0 % of it's unloaded value\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "R0 = 1.0 #ohm\n",
- "Ri = 100.0 #kilo ohm\n",
- "Aoc = 100.0 #volts per volts\n",
- "Rs=0.0 #kilo ohm\n",
- "Rl=0.0 #ohm\n",
- "gain=0.0\n",
- "input_load=0.0\n",
- "output_load=0.0\n",
- "\n",
- "def calculate(): #returns gain\n",
- " global input_load, output_load\n",
- " input_load = (Ri/(Rs+Ri))\n",
- " output_load = (Rl/(R0+Rl))\n",
- " ans=input_load*Aoc*output_load # in V/V\n",
- " return ans\n",
- "#answer part (a)\n",
- "Rs=25.0\n",
- "Rl=3.0\n",
- "gain=calculate()\n",
- "print \"a)\"\n",
- "print \"The overall gain is \",round(gain,1),\"V/V\"\n",
- "print \"The input load is \",input_load*100,\"% of it's unloaded value\"\n",
- "print \"The output load is \",output_load*100,\"% of it's unloaded value\"\n",
- "\n",
- "#answer part (b)\n",
- "Rs=50.0\n",
- "Rl=4.0\n",
- "gain=calculate()\n",
- "print \"b)\"\n",
- "print \"The overall gain is \",round(gain,1),\"V/V\"\n",
- "print \"The input load is \",round(input_load*100,1),\"% of it's unloaded value\"\n",
- "print \"The output load is \",round(output_load*100,1),\"% of it's unloaded value\"\n",
- " \n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.2, Page 9"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "a)Vo = 9.17431 V\n",
- "b)Vo = 9.99101 V\n",
- "c)Vo = 9.99991 V\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "vt = 1.0 # in volt\n",
- "R1 = 2.0 # in kilo ohm\n",
- "R2 = 18.0 #in kilo ohm\n",
- "\n",
- "#Calculation\n",
- "\n",
- "def calculate(a): #returns Vo\n",
- " global vt,R1,R2\n",
- " ans=vt*(1+(R2/R1))/(1+((R2/R1)/a)) #equation 1.11\n",
- " return ans\n",
- "\n",
- "#answer\n",
- "print \"a)Vo = \",round(calculate(10**2),5),\"V\"\n",
- "print \"b)Vo = \",round(calculate(10**4),5),\"V\"\n",
- "print \"c)Vo = \",round(calculate(10**6),5),\"V\"\n",
- "\n",
- "#textbook contains precision error"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.4, Page 18"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "R1 = 20 kilo ohm\n",
- "R2 = 15 kilo ohm\n",
- "R3 = 30 kilo ohm\n",
- "Rf = 120 kilo ohm\n"
- ]
- }
- ],
- "source": [
- "#Variable declaration\n",
- "\n",
- "rf1 = 3 # coefficient of V1\n",
- "rf2 = 4 # coefficient of V2\n",
- "rf3 = 2 # coefficient of V3\n",
- "\n",
- "#Calculations\n",
- "\n",
- "rf1*=2 # Common factor 2\n",
- "rf2*=2 # Common factor 2\n",
- "rf3*=2 # Common factor 2\n",
- "r1=20 # assumption\n",
- "rf=r1*rf1\n",
- "r2=rf/rf2\n",
- "r3=rf/rf3\n",
- "\n",
- "#answer\n",
- "\n",
- "print \"R1 = \",r1,\"kilo ohm\"\n",
- "print \"R2 = \",r2,\"kilo ohm\"\n",
- "print \"R3 = \",r3,\"kilo ohm\"\n",
- "print \"Rf = \",rf,\"kilo ohm\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.5, Page 18"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "R1 = 10 kilo ohm\n",
- "R2 = 300 kilo ohm\n",
- "Rf = 100 kilo ohm\n"
- ]
- }
- ],
- "source": [
- "#Variable declaration\n",
- "\n",
- "r1,r2,rf #vo=10*v1+5=-(rf/r1*v1)-rf/r2*(-15)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "r1=10\n",
- "rf=10*r1; #-rf/r1*v1=10*v1\n",
- "r2=rf*15/5 #-rf/r2*(-15)=5\n",
- "\n",
- "#answer\n",
- "\n",
- "print \"R1 = \",r1,\"kilo ohm\"\n",
- "print \"R2 = \",r2,\"kilo ohm\"\n",
- "print \"Rf = \",rf,\"kilo ohm\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.6, Page 20"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "R1 = 100 kilo ohm\n",
- "R2 = 300 kilo ohm\n",
- "R3 = 25 kilo ohm\n",
- "R4 = 75 kilo ohm\n"
- ]
- }
- ],
- "source": [
- "#Variable declaration\n",
- "\n",
- "ri1=100 # in kilo ohm\n",
- "ri2=100 # in kilo ohm\n",
- "\n",
- "#Calculation\n",
- "\n",
- "r1=ri1;\n",
- "r2=3*r1; #r2/r1=3\n",
- "# r3 + r4 = ri2 and (1+r1/r2)/(1+r3/r4)=1\n",
- "#Solving the above two\n",
- "r3=ri2/4;\n",
- "r4=ri2-r3\n",
- "\n",
- "#answer\n",
- "\n",
- "print \"R1 = \",r1,\"kilo ohm\"\n",
- "print \"R2 = \",r2,\"kilo ohm\"\n",
- "print \"R3 = \",r3,\"kilo ohm\"\n",
- "print \"R4 = \",r4,\"kilo ohm\"\n",
- "\n",
- "#in textbook r3 and r4 values are reversed which doesn't satisfy the equations"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.7, Page 25"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "a)T >= 1000\n",
- "b)a >= 100000\n",
- "a)Beta = 0.00999\n"
- ]
- }
- ],
- "source": [
- "#Variable Declaration\n",
- "\n",
- "A=100 \n",
- "accuracy=0.1\n",
- "\n",
- "#Calcualtion\n",
- "\n",
- "T=100/accuracy\n",
- "beta=1.0/100.0 # A_ideal=i/beta=100\n",
- "a=(10**3)/beta\n",
- "beta=(a/100-1)/a # A=a/(1+(a*beta))\n",
- "\n",
- "#answer\n",
- "print \"a)T >= \",int(T)\n",
- "print \"b)a >= \",int(a)\n",
- "print \"a)Beta = \",beta"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.8, Page 26"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "a) A changes by (+-) 0.09901 %\n",
- "b) A changes by (+-) 0.0001 %\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "a = 10**5 \n",
- "beta\n",
- "T\n",
- "\n",
- "#Calculation\n",
- "\n",
- "def calculate():\n",
- " global a,beta,T\n",
- " T=a*beta\n",
- " ans=10.0/(1+T) # for a +- 10% change in a\n",
- " return ans\n",
- "\n",
- "#answer\n",
- "beta=10**(-3) #given\n",
- "desensitivity_factor=calculate(); # stores the answer\n",
- "print \"a) A changes by (+-)\",round(desensitivity_factor,6),\"%\" #part a\n",
- "\n",
- "beta=1 #given\n",
- "desensitivity_factor=calculate();\n",
- "print \"b) A changes by (+-)\",round(desensitivity_factor,6),\"%\" #part b"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.9, Page 33"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "a)\n",
- " A = 995.024876 V/V\n",
- " Ro = 373.134 mili ohm\n",
- " Ri = 402.0 Mega ohm\n",
- "b)\n",
- " A = 0.999995 V/V\n",
- " Ro = 0.375 mili ohm\n",
- " Ri = 400002.0 Mega ohm\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "rd = 2.0 # Mega ohm\n",
- "ro = 75.0 # ohm\n",
- "a = 200000.0 # V/V\n",
- "\n",
- "#Calculation\n",
- "\n",
- "def calculate(R1,R2):\n",
- " global a,ro,rd\n",
- " beta=R1/(R1+R2)\n",
- " if(R1==float(\"inf\")): # for infinty\n",
- " beta=1\n",
- " T=a*beta\n",
- " A=(1+(R2/R1))/(1+(1/T)) # equation 1.55\n",
- " if(R1==float(\"inf\")): # for infinity\n",
- " A=1/(1+(1/T))\n",
- " Ro=ro/(1+T) # equation 1.61\n",
- " Ri=rd*(1+T) # equation 1.59\n",
- " print \" A = \",round(A,6),\"V/V\"\n",
- " print \" Ro = \",round(Ro*(10**3),3),\"mili ohm\"\n",
- " print \" Ri = \", round(Ri,3),\"Mega ohm\"\n",
- "\n",
- "#answer\n",
- "\n",
- "print \"a)\"\n",
- "calculate(1.0,999)\n",
- "print \"b)\"\n",
- "calculate(float(\"inf\"),1)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.10, Page 35"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "a)\n",
- " A = -0.99999 V/V\n",
- " Rn = 0.5 ohm\n",
- " Ri = 100000.0 ohm\n",
- " Ro = 0.00075 ohm\n",
- "b)\n",
- " A = -995.01993 V/V\n",
- " Rn = 4.99998 ohm\n",
- " Ri = 1000.0 ohm\n",
- " Ro = 0.37351 ohm\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "a = 200000.0 # V/V\n",
- "ro = 75 # ohm\n",
- "\n",
- "#Calculating function\n",
- "\n",
- "def calculate(R1,R2):\n",
- " global a,ro\n",
- " T=a*(R1/(R1+R2)) \n",
- " A=(-1)*(R2/R1)/(1+(1/T)) # equation 1.63\n",
- " Rn=R2/(1+a) # equation 1.67b\n",
- " Ri=R1 # equation 1.68\n",
- " Ro=ro/(1+T)\n",
- " print \" A = \",round(A,5),\"V/V\"\n",
- " print \" Rn = \",round(Rn,5),\"ohm\"\n",
- " print \" Ri = \",round(Ri,5),\"ohm\"\n",
- " print \" Ro = \",round(Ro,5),\"ohm\"\n",
- " \n",
- "#answer\n",
- "\n",
- "print \"a)\"\n",
- "calculate(100000.0,100000.0)\n",
- "print \"b)\"\n",
- "calculate(1000.0,1000000.0)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.11, Page 38"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "317.440162529\n",
- "a) A_ideal = -101.1 V/V\n",
- "b) A = -100.78 V/V\n",
- "Deviation from ideal = 0.31 %\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "R1 = 1000000.0 # ohm\n",
- "R2 = 1000000.0 # ohm\n",
- "R3 = 100000.0 # ohm\n",
- "R4 = 1000.0 # ohm\n",
- "RL = 2000.0 # ohm\n",
- "rd = 1000000.0 #ohm\n",
- "a = 10**5 # V/V\n",
- "ro = 100.0 # ohm\n",
- "\n",
- "#Calculation\n",
- "\n",
- "A_ideal = (-1)*(R2/R1)*(1+(R3/R2)+(R3/R4)) # ideal op-amp and summing currents at node v1\n",
- "T = a/(1+(R2/R1)+(R2/rd))/(1+(ro/(R2+(R1*rd/(R1+rd))))+(ro/RL))/100 #equation 1.73\n",
- "A = A_ideal/(1+(1/T)) \n",
- "dev=(A_ideal-A)/A_ideal*100\n",
- "\n",
- "#answer\n",
- "print T\n",
- "print \"a) A_ideal =\",A_ideal,\"V/V\"\n",
- "print \"b) A =\",round(A,2),\"V/V\"\n",
- "print \"Deviation from ideal =\",round(dev,2),\"%\"\n",
- "\n",
- "#book example has precision error so answer is 0.32%"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.12, Page 40"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "a)\n",
- " Beta = 0.016911 V/V\n",
- " T = 169.1\n",
- "b)\n",
- " Vo= -( 29.82 V1 + 14.91 V2 + 9.94 V3 )\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "rd = 1000.0 # kilo ohm\n",
- "a = 10**4 # V/V\n",
- "ro = 100.0 #ohm\n",
- "R1 = 10.0 # kilo ohm\n",
- "R2 = 20.0 # kilo ohm\n",
- "R3 = 30.0 # kilo ohm\n",
- "R4 = 300.0 # kilo ohm\n",
- "RL = 2.0 # kilo ohm\n",
- "\n",
- "#Calculation\n",
- "\n",
- "def parallel(a,b):\n",
- " ans=a*b/(a+b)\n",
- " return ans\n",
- "\n",
- "Ra = parallel(R1,parallel(R2,parallel(R3,rd)))\n",
- "Rb=Ra+R4\n",
- "Rc=parallel(Rb,RL) #After suppressing all input sources\n",
- "Rd=Rc+ro/1000 #replacing the op-amp with it's terminal resistances\n",
- "Vn=Rb/Ra #and applying a test voltage and analysing the circuit\n",
- "Vt=Rd/Rc\n",
- "beta=1/Vn/Vt\n",
- "T=a*beta\n",
- "v1=R4/R1\n",
- "v2=R4/R2\n",
- "v3=R4/R3\n",
- "A=1/(1+1/T)\n",
- "\n",
- "#answer\n",
- "\n",
- "print \"a)\"\n",
- "print \" Beta =\",round(beta,6),\"V/V\"\n",
- "print \" T =\",round(T,1)\n",
- "print \"b)\"\n",
- "print \" Vo= -(\",round(A*v1,2),\"V1 +\",round(A*v2,2),\"V2 +\",round(A*v3,2),\"V3 )\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.13, Page 41"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Beta = 0.8101 V/V\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "rd = 100.0 # kilo ohm\n",
- "ro = 100.0 # ohm\n",
- "R1 = 30.0 # kilo ohm\n",
- "R2 = 20.0 # kilo ohm\n",
- "R3 = 10.0 # kilo ohm\n",
- "\n",
- "#Calculation\n",
- "\n",
- "def parallel(a,b):\n",
- " ans=a*b/(a+b)\n",
- " return ans\n",
- "\n",
- "beta_n = (parallel(R1,rd)+R1)/((ro/1000)+R2+parallel(R1,rd)+R3) # from circuit 1.35 after appyling\n",
- "beta_p = R3/((ro/1000)+R2+parallel(R1,rd)+R3) # voltage divide formula twice\n",
- "beta=beta_n-beta_p #equation 1.76\n",
- "\n",
- "#answer\n",
- "\n",
- "print \"Beta =\",round(beta,4),\"V/V\"\n",
- "\n",
- "# beta_n calculation in book is wrong"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.14, Page 43"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "a)\n",
- " Icc = 0.5 mA\n",
- " Iee = 3.5 mA\n",
- " I0 = 3 mA\n",
- "b)\n",
- " Power Poa = 42.0 mW\n"
- ]
- }
- ],
- "source": [
- "import math\n",
- "\n",
- "#Variable Declaration \n",
- "\n",
- "R1 = 10 #kilo ohm\n",
- "R2 = 20 #kilo ohm\n",
- "V1 = 3 # V\n",
- "Iq = 0.5 # mA\n",
- "RL = 2 #kilo ohm\n",
- "\n",
- "#Calculation\n",
- "\n",
- "V0 = (-1)*R2/R1*V1\n",
- "It = abs(V0)/RL # Currents through R1,R2,Rt are i1,i2,It respectively\n",
- "i1 = It/R1\n",
- "i2 = i1 # applying voltage divider rule\n",
- "i0 = i2+It\n",
- "icc = Iq\n",
- "iee = icc+ i0\n",
- "Poa = 30*Iq+((V0+15)*i0) #Whenever current passes through voltage drop, power = vi\n",
- "\n",
- "#answer\n",
- "\n",
- "print \"a)\"\n",
- "print \" Icc =\",icc,\"mA\"\n",
- "print \" Iee =\",iee,\"mA\"\n",
- "print \" I0 =\",i0,\"mA\"\n",
- "print \"b)\"\n",
- "print \" Power Poa =\",Poa,\"mW\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.15, Page 43"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "b)\n",
- " Change in v = 3.75 micro Volt -> quite a small change\n"
- ]
- }
- ],
- "source": [
- "#Variable Declaration\n",
- "\n",
- "ro = 75.0 #kilo ohm\n",
- "T = 200000.0\n",
- "Vs = 10.0 # V\n",
- "Rl = 1.0 #kilo ohm\n",
- "\n",
- "#Calculation\n",
- "\n",
- "iL = Vs/Rl\n",
- "Ro = ro/(1+T)\n",
- "del_v = Ro*10*(10**(-3))\n",
- "\n",
- "#answer\n",
- "\n",
- "print \"b)\"\n",
- "print \" Change in v =\",round(del_v*(10**6),2),\"micro Volt -> quite a small change\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 1.16, Page 46"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "The op-amp saturates at Vo=+-13 V\n",
- "With Vn= 20/3-13/3 = 2.3333 V\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- "[<matplotlib.lines.Line2D at 0xa087c88>]"
- ]
- },
- "execution_count": 16,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- "<matplotlib.figure.Figure at 0x9e977f0>"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "import matplotlib.pyplot as plt\n",
- "import scipy as np\n",
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "A = -2 #V/V\n",
- "peak = 10 # V\n",
- "\n",
- "#Calculation \n",
- "\n",
- "output = np.absolute(A) * peak\n",
- "\n",
- "#answer\n",
- "\n",
- "print \"The op-amp saturates at Vo=+-13 V\"\n",
- "print \"With Vn= 20/3-13/3 =\",round((20.0/3)-(13.0/3),4),\"V\"\n",
- "\n",
- "#Graphs\n",
- "\n",
- "t1 = np.arange(0,1,.0005) # Triangular waveform\n",
- "t2 = np.arange(1,3,.0005)\n",
- "t3 = np.arange(3,5,.0005)\n",
- "\n",
- "m1 = np.arange(0,0.65,.0005)\n",
- "m2 = np.arange(.65,1.35,.0005)\n",
- "m3 = np.arange(1.35,2.65,.0005) # Output Vo wave\n",
- "m4 = np.arange(2.65,3.35,.0005)\n",
- "m5 = np.arange(3.35,4.65,.0005)\n",
- "m6 = np.arange(4.65,5,.0005) # Output Vn wave\n",
- "m7 = np.arange(0.65,1,.0005)\n",
- "m8 = np.arange(1,1.35,.0005)\n",
- "m9 = np.arange(2.65,3,.0005)\n",
- "m10 = np.arange(3, 3.35, .0005)\n",
- "\n",
- "plt.subplot(2,1,1)\n",
- "\n",
- "plt.suptitle(\"Vt (Blue), Vo (Red) and Vn (Green) Graphs\")\n",
- "plt.xlim(0,4.5)\n",
- "plt.xlabel(\"time->\")\n",
- "plt.ylabel(\"V->\")\n",
- "plt.plot(t1,peak*t1,\"b\",)\n",
- "plt.plot(t2,(-1)*peak*t2+2*(peak),\"b\",)\n",
- "plt.plot(t3,peak*t3-4*(peak),\"b\",)\n",
- "\n",
- "plt.subplot(2,1,2)\n",
- "\n",
- "plt.xlim(0,4.5)\n",
- "plt.xlabel(\"time->\")\n",
- "plt.ylabel(\"V->\")\n",
- "plt.plot(m1,-20*m1,\"r\")\n",
- "plt.plot(m2,np.full(len(m2),-13),\"r\")\n",
- "plt.plot(m3,20*m3-40,\"r\")\n",
- "plt.plot(m4,np.full(len(m4),13),\"r\")\n",
- "plt.plot(m5,-20*m5+80,\"r\")\n",
- "plt.plot(m6,np.full(len(m6),-13),\"r\")\n",
- "\n",
- "plt.plot(m1,np.full(len(m1),0),\"g\",)\n",
- "plt.plot(m7,6.665*m7-4.4,\"g\")\n",
- "plt.plot(m8,-6.665*m8+8.8,\"g\")\n",
- "plt.plot(m3,np.full(len(m3),0),\"g\")\n",
- "plt.plot(m9,6.665*m9-17.6,\"g\")\n",
- "plt.plot(m10,-6.665*m10+22.4,\"g\")\n",
- "plt.plot(m5,np.full(len(m5),0),\"g\")\n",
- "plt.plot(m6,np.full(len(m6),0),\"g\")"
- ]
- }
- ],
- "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.10"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 0
-}
diff --git a/fdgfg_by_fgs/screenshots/48007040.png b/fdgfg_by_fgs/screenshots/48007040.png
deleted file mode 100755
index 229a343c..00000000
--- a/fdgfg_by_fgs/screenshots/48007040.png
+++ /dev/null
Binary files differ
diff --git a/fdgfg_by_fgs/screenshots/acrofi_india.png b/fdgfg_by_fgs/screenshots/acrofi_india.png
deleted file mode 100755
index 216212e8..00000000
--- a/fdgfg_by_fgs/screenshots/acrofi_india.png
+++ /dev/null
Binary files differ
diff --git a/fdgfg_by_fgs/screenshots/acrofi_india_1.png b/fdgfg_by_fgs/screenshots/acrofi_india_1.png
deleted file mode 100755
index 216212e8..00000000
--- a/fdgfg_by_fgs/screenshots/acrofi_india_1.png
+++ /dev/null
Binary files differ
diff --git a/testing_by_test/screenshots/screenshot6.png b/testing_by_test/screenshots/screenshot6.png
deleted file mode 100644
index ae7ed518..00000000
--- a/testing_by_test/screenshots/screenshot6.png
+++ /dev/null
Binary files differ
diff --git a/testing_by_test/screenshots/screenshot6_1.png b/testing_by_test/screenshots/screenshot6_1.png
deleted file mode 100644
index ae7ed518..00000000
--- a/testing_by_test/screenshots/screenshot6_1.png
+++ /dev/null
Binary files differ
diff --git a/testing_by_test/screenshots/screenshot6_2.png b/testing_by_test/screenshots/screenshot6_2.png
deleted file mode 100644
index ae7ed518..00000000
--- a/testing_by_test/screenshots/screenshot6_2.png
+++ /dev/null
Binary files differ
diff --git a/testing_by_test/screenshots/screenshot6_3.png b/testing_by_test/screenshots/screenshot6_3.png
deleted file mode 100644
index ae7ed518..00000000
--- a/testing_by_test/screenshots/screenshot6_3.png
+++ /dev/null
Binary files differ
diff --git a/testing_by_test/screenshots/screenshot6_4.png b/testing_by_test/screenshots/screenshot6_4.png
deleted file mode 100644
index ae7ed518..00000000
--- a/testing_by_test/screenshots/screenshot6_4.png
+++ /dev/null
Binary files differ
diff --git a/testing_by_test/screenshots/screenshot6_5.png b/testing_by_test/screenshots/screenshot6_5.png
deleted file mode 100644
index ae7ed518..00000000
--- a/testing_by_test/screenshots/screenshot6_5.png
+++ /dev/null
Binary files differ
diff --git a/testing_by_test/vivek.ipynb b/testing_by_test/vivek.ipynb
deleted file mode 100644
index 27d3c041..00000000
--- a/testing_by_test/vivek.ipynb
+++ /dev/null
@@ -1,618 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Chapter No.3 : The cellular concept system design fundamentals"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.1 Page No.61"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " The number of channels available per cell for 4-cell reuse system = 165 channels\n",
- "\n",
- " One control channel and 160 voice channels would be assigned to each cell.\n",
- "\n",
- " \n",
- " The number of channels available per cell for 7-cell reuse system = 95 channels\n",
- "\n",
- " Each cell would have one control channel, four cells would have 90 voice channels and three cells would have 91 voice channels.\n",
- "\n",
- " \n",
- " The number of channels available per cell for 12-cell reuse system = 55 channels\n",
- "\n",
- " Each cell would have one control channel, eight cells would have 53 voice channels and four cells would have 54 voice channels.\n"
- ]
- }
- ],
- "source": [
- "from math import ceil\n",
- "# To compute the number of channels available per cell for a)four-cell reuse system a)seven-cell reuse system a)12-cell reuse system\n",
- "\n",
- "# Given data\n",
- "B=33*10**6# # Total bandwidth allocated to particular FDD system in Hz\n",
- "Bc=25*10**3# # Bandwidth per channel in Hz\n",
- "Nc=2# # Number of simplex channels\n",
- "Bc=Bc*Nc# # Channel bandwidth in Hz\n",
- "\n",
- "Ntotal=B/Bc# # Total number of channels\n",
- "\n",
- "#a) To compute the number of channels available per cell for four-cell reuse system\n",
- "N=4# # frequency reuse factor\n",
- "chpercell=Ntotal/N# # number of channels available per cell for four-cell reuse system\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n The number of channels available per cell for 4-cell reuse system = %0.0f channels\"%(chpercell)\n",
- "print \"\\n One control channel and 160 voice channels would be assigned to each cell.\"\n",
- "\n",
- "# b) To compute the number of channels available per cell for seven-cell reuse system\n",
- "N=7# # frequency reuse factor\n",
- "chpercell=ceil(Ntotal/N)# # number of channels available per cell for seven-cell reuse system\n",
- "\n",
- "# Answer is varrying due to round-off error\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n The number of channels available per cell for 7-cell reuse system = %0.0f channels\"%(chpercell)\n",
- "print \"\\n Each cell would have one control channel, four cells would have 90 voice channels and three cells would have 91 voice channels.\"\n",
- "\n",
- "# c) To compute the number of channels available per cell for 12-cell reuse system\n",
- "N=12# # frequency reuse factor\n",
- "chpercell=Ntotal/N# # number of channels available per cell for seven-cell reuse system\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n The number of channels available per cell for 12-cell reuse system = %0.0f channels\"%(chpercell)\n",
- "print \"\\n Each cell would have one control channel, eight cells would have 53 voice channels and four cells would have 54 voice channels.\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.2 Page No.72"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Signal to noise ratio for n=4 with frequency reuse factor N=7 = 18.66 dB\n",
- "\n",
- " Signal to noise ratio for n=3 with frequency reuse factor N=7 = 12.05 dB\n",
- "\n",
- " Signal to noise ratio for n=3 with frequency reuse factor N=12 = 15.56 dB\n",
- "\n",
- " Since SIR is for n=3 with frequency reuse factor N=7 greater than the minimum required, so N=12 is used.\n"
- ]
- }
- ],
- "source": [
- "from math import sqrt, log10\n",
- "from __future__ import division\n",
- "# To find frequency reuse factor for path loss exponent (n) a)n=4 b)n=3\n",
- "\n",
- "# Given data\n",
- "SIdB=15# # Signal to interference(dB)\n",
- "io=6# # Number of cochannel cell\n",
- "\n",
- "# For n=4\n",
- "n1=4# # Path loss exponent\n",
- "N1=7# # First consideration: frequency reuse factor N=7\n",
- "DR1=sqrt(3*N1)# # Co-channel reuse ratio\n",
- "si1=(1/io)*(DR1)**n1# # Signal to interference\n",
- "sidB1=10*log10(si1)# # Signal to interference(dB)\n",
- "\n",
- "# For n=3\n",
- "n2=3# # Path loss exmponent\n",
- "si=(1/io)*(DR1)**n2# # Signal to interference for first consideration: frequency reuse factor N=7\n",
- "sidB=10*log10(si)# # Signal to interference(dB)\n",
- "\n",
- "N2=12# # second consideration : frequency reuse factor N=12 since sidB<SIdB \n",
- "DR2=sqrt(3*N2)# # Co-channel reuse ratio\n",
- "si2=(1/io)*(DR2)**n2# # Signal to interference\n",
- "sidB2=10*log10(si2)# # Signal to interference(dB)\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Signal to noise ratio for n=4 with frequency reuse factor N=7 = %0.2f dB\"%(sidB1)\n",
- "print \"\\n Signal to noise ratio for n=3 with frequency reuse factor N=7 = %0.2f dB\"%(sidB)\n",
- "print \"\\n Signal to noise ratio for n=3 with frequency reuse factor N=12 = %0.2f dB\"%(sidB2)\n",
- "print \"\\n Since SIR is for n=3 with frequency reuse factor N=7 greater than the minimum required, so N=12 is used.\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.4 Page No.80"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Total number of users for 1 channel = 1\n",
- "\n",
- " Total number of users for 5 channel = 11\n",
- "\n",
- " Total number of users for 10 channel = 40\n",
- "\n",
- " Total number of users for 20 channel = 111\n",
- "\n",
- " Total number of users for 100 channel = 809\n"
- ]
- }
- ],
- "source": [
- "# To find number of users for Number of channels (C) a)C=1 b)C=5 c)C=10 d)C=20 e)C=100\n",
- "\n",
- "# Given data\n",
- "GOS=0.005# #G rade of Service\n",
- "Au=0.1# # Traffic intensity per user\n",
- "\n",
- "# a)To find number of users for C=1\n",
- "C1=1# # Number of channels\n",
- "A1=0.005# # Total traffic intensity from Erlangs B chart\n",
- "U1=(A1/Au)# # Number of users\n",
- "U1=1# # Since one user could be supported on one channel\n",
- "\n",
- "# b)To find number of users for C=5\n",
- "C2=5# # Number of channels\n",
- "A2=1.13# # Total traffic intensity from Erlangs B chart\n",
- "U2=round(A2/Au)# # Number of users\n",
- "\n",
- "# c)To find number of users for C=10\n",
- "C3=10# # Number of channels\n",
- "A3=3.96# # Total traffic intensity from Erlangs B chart\n",
- "U3=round(A3/Au)# # Number of users\n",
- "\n",
- "# Answer is varrying due to round off error\n",
- "\n",
- "# d)To find number of users for C=20\n",
- "C4=20# # Number of channels\n",
- "A4=11.10# # Total traffic intensity from Erlangs B chart\n",
- "U4=round(A4/Au)# # Number of users\n",
- "\n",
- "# Answer is varrying due to round off error\n",
- "\n",
- "# e)To find number of users for C=100\n",
- "C5=100# # Number of channels\n",
- "A5=80.9# # Total traffic intensity from Erlangs B chart\n",
- "U5=round(A5/Au)# # Number of users\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Total number of users for 1 channel = %0.0f\"%(U1)\n",
- "print \"\\n Total number of users for 5 channel = %0.0f\"%(U2)\n",
- "print \"\\n Total number of users for 10 channel = %0.0f\"%(U3)\n",
- "print \"\\n Total number of users for 20 channel = %0.0f\"%(U4)\n",
- "print \"\\n Total number of users for 100 channel = %0.0f\"%(U5)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.5 Page No.83"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Total number of users in system A = 47280\n",
- "\n",
- " The percentage market penetration of system A = 2.36\n",
- "\n",
- " \n",
- " Total number of users in system B = 44100\n",
- "\n",
- " The percentage market penetration of system B = 2.205\n",
- "\n",
- " \n",
- " Total number of users in system C = 43120\n",
- "\n",
- " The percentage market penetration of system C = 2.156\n",
- "\n",
- " \n",
- " Total number of users in all 3 systems = 134500\n",
- "\n",
- " The combined Market penetration percentage of all systems = 6.725\n"
- ]
- }
- ],
- "source": [
- "from __future__ import division\n",
- "# To find number of users for a)system A b)system B c)system C\n",
- "\n",
- "# Given data\n",
- "GOS=0.02# # Grade of Service (Probability of bloacking)\n",
- "lamda=2# # Average calls per hour\n",
- "H=(3/60)# # Call duration in seconds\n",
- "\n",
- "Au=lamda*H# # Traffic intensity per user\n",
- "\n",
- "# a)To find number of users for System A\n",
- "C1=19# # Number of channels used\n",
- "A1=12# # Traffic intensity from Erlang B chart\n",
- "U1=round(A1/Au)# # Number of users per cell\n",
- "cells1=394\n",
- "TU1=U1*cells1# # Total number of users\n",
- "MP1=TU1/(2*10**6)*100# # Market penetration percentage\n",
- "\n",
- "# b)To find number of users for System B\n",
- "C2=57# # No. of channels used\n",
- "A2=45# # Traffic intensity from Erlang B chart\n",
- "U2=round(A2/Au)# # Number of users per cell\n",
- "cells2=98\n",
- "TU2=U2*cells2# # Total no. of users\n",
- "MP2=TU2/(2*10**6)*100# # Market penetration percentage\n",
- "\n",
- "# c)To find number of users for System C\n",
- "C3=100# # Number of channels used\n",
- "A3=88# # traffic intensity from Erlang B chart\n",
- "U3=round(A3/Au)# # Number of users per cell\n",
- "cells3=49\n",
- "TU3=U3*cells3# # Total no. of users\n",
- "MP3=TU3/(2*10**6)*100# # Market penetration percentage\n",
- "\n",
- "TU=TU1+TU2+TU3# # Total number of users in all 3 systems\n",
- "MP=TU/(2*10**6)*100# # Combined Market penetration percentage\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Total number of users in system A = %0.0f\"%(TU1)\n",
- "print \"\\n The percentage market penetration of system A = %0.2f\"%(MP1)\n",
- "print \"\\n \\n Total number of users in system B = %0.0f\"%(TU2)\n",
- "print \"\\n The percentage market penetration of system B = %0.3f\"%(MP2)\n",
- "print \"\\n \\n Total number of users in system C = %0.0f\"%(TU3)\n",
- "print \"\\n The percentage market penetration of system C = %0.3f\"%(MP3)\n",
- "print \"\\n \\n Total number of users in all 3 systems = %0.0f\"%(TU)\n",
- "print \"\\n The combined Market penetration percentage of all systems = %0.3f\"%(MP)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.6 Page No.84"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Number of cells in given system = 31 cells\n",
- "\n",
- " \n",
- " Number of channels per cell in given system = 95 channels/cell\n",
- "\n",
- " \n",
- " Traffic intensity in given system = 84 Erlangs/cell\n",
- "\n",
- " \n",
- " Maximum carried traffic in given system = 2604 Erlangs\n",
- "\n",
- " \n",
- " Total number of users = 86800 users\n",
- "\n",
- " \n",
- " Number of mobiles per unique channel = 130 mobiles/channel\n",
- "\n",
- " \n",
- " Theoretically maximum number of served mobiles is the number of available channels in the system.\n",
- "\n",
- " Theoretical Maximum number of users could be served at one time = 2945 users\n",
- "It is 3.4% of customer base.\n"
- ]
- }
- ],
- "source": [
- "# To find a)Number of cells in given area b)Number of channels/cell c)Traffic intensity per cell d)Maximum carried traffic e)Total number of users for 2% GOS f) Number of mobiles per unique channel g)Maximum number of users could be served at one time\n",
- "\n",
- "# Given data\n",
- "Area=1300# # Total coverage area in m**2\n",
- "R=4# # Radius of cell in m\n",
- "N=7# # Frequecy reuse factor\n",
- "S=40*10**6# # Allocated spectrum in Hz\n",
- "Ch=60*10**3# # Channel width in Hz\n",
- "\n",
- "# a)Number of cells\n",
- "CA=2.5981*R**2# # Area of hexagonal cell in m**2\n",
- "Nc=round(Area/CA)# # Number of cells\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Number of cells in given system = %0.0f cells\"%(Nc)\n",
- "\n",
- "# b)Number of channels/cell\n",
- "C1=round(S/(Ch*N))# # Number of channels\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Number of channels per cell in given system = %0.0f channels/cell\"%(C1)\n",
- "\n",
- "# c) Traffic intensity per cell\n",
- "C1=95# # Number of channels from b)\n",
- "GOS=0.02# # Grade of service\n",
- "A=84# # Traffic intensity from Erlang B chart\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Traffic intensity in given system = %0.0f Erlangs/cell\"%(A)\n",
- "\n",
- "# d)Maximum carried traffic\n",
- "traffic=Nc*A# # Maximum carried traffic\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Maximum carried traffic in given system = %0.0f Erlangs\"%(traffic)\n",
- "\n",
- "# e)Total number of users for 2% GOS \n",
- "trafficperuser=0.03# # Given traffic per user\n",
- "U=traffic/trafficperuser# # Total number of users\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Total number of users = %0.0f users\"%(U)\n",
- "\n",
- "# f) Number of mobiles per unique channel\n",
- "C=666# # Number of channels\n",
- "mobilesperchannel=round(U/C)# # Number of mobiles per unique channel\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Number of mobiles per unique channel = %0.0f mobiles/channel\"%(mobilesperchannel)\n",
- "\n",
- "# g)Maximum number of users could be served at one time\n",
- "print \"\\n \\n Theoretically maximum number of served mobiles is the number of available channels in the system.\"\n",
- "C=C1*Nc# # Maximum number of users could be served at one time\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Theoretical Maximum number of users could be served at one time = %0.0f users\"%(C)\n",
- "print \"It is 3.4% of customer base.\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.7 Page 85"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Number of users per square km in given system = 62 users/sq km\n",
- "\n",
- " \n",
- " Percentage of probability that delayed call have to wait longer than t=10 sec = 56.29 percent\n",
- "\n",
- " \n",
- " Percentage of probability that call is delayed more than 10 sec = 2.81 percent\n"
- ]
- }
- ],
- "source": [
- "from math import exp\n",
- "# To find a)number of users per square km b)probability that delayed call have to wait longer than t=10sec c)probability that call is delayed more than 10 sec\n",
- "\n",
- "# Given data\n",
- "R=1.387# # Radius of cell in m\n",
- "Area=2.598*R**2# # Area of hexagonal cell in m**2\n",
- "cellpercluster=4# # Number of cells/cluster\n",
- "channels=60# # Number of channels\n",
- "\n",
- "channelspercell=channels/cellpercluster# # Number of channels per cell\n",
- "\n",
- "# a)To find number of users per square km\n",
- "A=0.029# # Traffic intensity per user\n",
- "delayprob=0.05# # Grade of service\n",
- "traffic=9# # Traffic intensity from Erlang chart C\n",
- "U1=traffic/A# # Total number of users in 5sq.km.\n",
- "U=round(U1/Area)# # Number of users per square km\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Number of users per square km in given system = %0.0f users/sq km\"%(U)\n",
- "\n",
- "# b)To find the probability that delayed call have to wait longer than t=10sec\n",
- "lamda=1# # Holding time\n",
- "H1=A/lamda# # Duration of call\n",
- "H=H1*3600# # Duration of call in second\n",
- "t=10\n",
- "Pr=exp(-(channelspercell-traffic)*t/H)*100# # probability that delayed call have to wait longer than t=10sec.\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Percentage of probability that delayed call have to wait longer than t=10 sec = %0.2f percent\"%(Pr)\n",
- "\n",
- "# c)To find the probability that call is delayed more than 10 sec\n",
- "Pr10=delayprob*Pr# # probability that call is delayed more than 10 sec\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Percentage of probability that call is delayed more than 10 sec = %0.2f percent\"%(Pr10)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.8 Page 89"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Number of channels without use of microcell = 300 channels\n",
- "\n",
- " \n",
- " Number of channels with the use of lettered microcells = 660 channels\n",
- "\n",
- " \n",
- " Number of channels if all base stations are replaced by microcells = 1020 channels\n"
- ]
- }
- ],
- "source": [
- "# To find number of channels in 3 km by 3 km square centered around A in Figure 3.9 for a)without use of microcell b)with the use of lettered microcells c)all base stations are replaced by microcells\n",
- "\n",
- "# Given data\n",
- "R=1# # Cell radius in km\n",
- "r=0.5# # Micro-cell radius in km\n",
- "Nc=60# # Number of channels in base station\n",
- "\n",
- "# a)To find number of channels without use of microcell\n",
- "Nb1=5# # Number of base stations in given area\n",
- "N1=Nb1*Nc# # Number of channels without use of microcell\n",
- "\n",
- "# b)To find number of channels with the use of lettered microcells\n",
- "Nb2=6# # Number of lettered microcells\n",
- "Nb2=Nb1+Nb2# # Total number of base stations in given area\n",
- "N2=Nb2*Nc# # Number of channels with the use of lettered microcells\n",
- "\n",
- "# c)To find number of channels if all base stations are replaced by microcells\n",
- "Nb3=12# # Number of all the microcells\n",
- "Nb3=Nb1+Nb3# # Total number of base stations in given area\n",
- "N3=Nb3*Nc# # Number of channels if all base stations are replaced by microcells\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Number of channels without use of microcell = %0.0f channels\"%(N1)\n",
- "print \"\\n \\n Number of channels with the use of lettered microcells = %0.0f channels\"%(N2)\n",
- "print \"\\n \\n Number of channels if all base stations are replaced by microcells = %0.0f channels\"%(N3)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.9 Page 92"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Cell capacity of unsectored system = 1326 calls/hour\n",
- "\n",
- " \n",
- " Cell capacity of 120 degree sectored system = 1008 calls/hour\n",
- "\n",
- " \n",
- " Decrease in cell capacity in 120 degree sectored system = 0 percent\n"
- ]
- }
- ],
- "source": [
- "# To analyze trunking efficiency capacity of sectoring and unsectoring\n",
- "\n",
- "# Given data\n",
- "H=2/60# # Average call duration in hour\n",
- "GOS=0.01# # Probability of blocking\n",
- "\n",
- "# Unsectored system\n",
- "C1=57# # Number of traffic channels per cell in unsectored system\n",
- "A=44.2# # Carried traffic in unsectored system\n",
- "calls1=1326# # Number of calls per hour in unsectored system from Erlangs B table\n",
- "\n",
- "# 120 degree sectored system\n",
- "C2=C1/3# # Number of traffic channels per antenna sector in 120 degree sectored system\n",
- "calls2=336# # Number of calls per hour in 120 degree sectored system from Erlangs B table\n",
- "Ns1=3# # Number of sectors\n",
- "capacity=Ns1*calls2# # Cell capacity or number of calls handled by system per hour\n",
- "\n",
- "dif=calls1-capacity# # decrease in cell capacity in 120 degree sectored system\n",
- "percentdif=(dif/calls1)*100# # decrease in cell capacity in 120 degree sectored system in percentage\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Cell capacity of unsectored system = %0.0f calls/hour\"%(calls1)\n",
- "print \"\\n \\n Cell capacity of 120 degree sectored system = %0.0f calls/hour\"%(capacity)\n",
- "print \"\\n \\n Decrease in cell capacity in 120 degree sectored system = %0.0f percent\"%(percentdif)"
- ]
- }
- ],
- "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
-}
diff --git a/testing_by_test/vivek_1.ipynb b/testing_by_test/vivek_1.ipynb
deleted file mode 100644
index 27d3c041..00000000
--- a/testing_by_test/vivek_1.ipynb
+++ /dev/null
@@ -1,618 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Chapter No.3 : The cellular concept system design fundamentals"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.1 Page No.61"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " The number of channels available per cell for 4-cell reuse system = 165 channels\n",
- "\n",
- " One control channel and 160 voice channels would be assigned to each cell.\n",
- "\n",
- " \n",
- " The number of channels available per cell for 7-cell reuse system = 95 channels\n",
- "\n",
- " Each cell would have one control channel, four cells would have 90 voice channels and three cells would have 91 voice channels.\n",
- "\n",
- " \n",
- " The number of channels available per cell for 12-cell reuse system = 55 channels\n",
- "\n",
- " Each cell would have one control channel, eight cells would have 53 voice channels and four cells would have 54 voice channels.\n"
- ]
- }
- ],
- "source": [
- "from math import ceil\n",
- "# To compute the number of channels available per cell for a)four-cell reuse system a)seven-cell reuse system a)12-cell reuse system\n",
- "\n",
- "# Given data\n",
- "B=33*10**6# # Total bandwidth allocated to particular FDD system in Hz\n",
- "Bc=25*10**3# # Bandwidth per channel in Hz\n",
- "Nc=2# # Number of simplex channels\n",
- "Bc=Bc*Nc# # Channel bandwidth in Hz\n",
- "\n",
- "Ntotal=B/Bc# # Total number of channels\n",
- "\n",
- "#a) To compute the number of channels available per cell for four-cell reuse system\n",
- "N=4# # frequency reuse factor\n",
- "chpercell=Ntotal/N# # number of channels available per cell for four-cell reuse system\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n The number of channels available per cell for 4-cell reuse system = %0.0f channels\"%(chpercell)\n",
- "print \"\\n One control channel and 160 voice channels would be assigned to each cell.\"\n",
- "\n",
- "# b) To compute the number of channels available per cell for seven-cell reuse system\n",
- "N=7# # frequency reuse factor\n",
- "chpercell=ceil(Ntotal/N)# # number of channels available per cell for seven-cell reuse system\n",
- "\n",
- "# Answer is varrying due to round-off error\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n The number of channels available per cell for 7-cell reuse system = %0.0f channels\"%(chpercell)\n",
- "print \"\\n Each cell would have one control channel, four cells would have 90 voice channels and three cells would have 91 voice channels.\"\n",
- "\n",
- "# c) To compute the number of channels available per cell for 12-cell reuse system\n",
- "N=12# # frequency reuse factor\n",
- "chpercell=Ntotal/N# # number of channels available per cell for seven-cell reuse system\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n The number of channels available per cell for 12-cell reuse system = %0.0f channels\"%(chpercell)\n",
- "print \"\\n Each cell would have one control channel, eight cells would have 53 voice channels and four cells would have 54 voice channels.\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.2 Page No.72"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Signal to noise ratio for n=4 with frequency reuse factor N=7 = 18.66 dB\n",
- "\n",
- " Signal to noise ratio for n=3 with frequency reuse factor N=7 = 12.05 dB\n",
- "\n",
- " Signal to noise ratio for n=3 with frequency reuse factor N=12 = 15.56 dB\n",
- "\n",
- " Since SIR is for n=3 with frequency reuse factor N=7 greater than the minimum required, so N=12 is used.\n"
- ]
- }
- ],
- "source": [
- "from math import sqrt, log10\n",
- "from __future__ import division\n",
- "# To find frequency reuse factor for path loss exponent (n) a)n=4 b)n=3\n",
- "\n",
- "# Given data\n",
- "SIdB=15# # Signal to interference(dB)\n",
- "io=6# # Number of cochannel cell\n",
- "\n",
- "# For n=4\n",
- "n1=4# # Path loss exponent\n",
- "N1=7# # First consideration: frequency reuse factor N=7\n",
- "DR1=sqrt(3*N1)# # Co-channel reuse ratio\n",
- "si1=(1/io)*(DR1)**n1# # Signal to interference\n",
- "sidB1=10*log10(si1)# # Signal to interference(dB)\n",
- "\n",
- "# For n=3\n",
- "n2=3# # Path loss exmponent\n",
- "si=(1/io)*(DR1)**n2# # Signal to interference for first consideration: frequency reuse factor N=7\n",
- "sidB=10*log10(si)# # Signal to interference(dB)\n",
- "\n",
- "N2=12# # second consideration : frequency reuse factor N=12 since sidB<SIdB \n",
- "DR2=sqrt(3*N2)# # Co-channel reuse ratio\n",
- "si2=(1/io)*(DR2)**n2# # Signal to interference\n",
- "sidB2=10*log10(si2)# # Signal to interference(dB)\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Signal to noise ratio for n=4 with frequency reuse factor N=7 = %0.2f dB\"%(sidB1)\n",
- "print \"\\n Signal to noise ratio for n=3 with frequency reuse factor N=7 = %0.2f dB\"%(sidB)\n",
- "print \"\\n Signal to noise ratio for n=3 with frequency reuse factor N=12 = %0.2f dB\"%(sidB2)\n",
- "print \"\\n Since SIR is for n=3 with frequency reuse factor N=7 greater than the minimum required, so N=12 is used.\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.4 Page No.80"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Total number of users for 1 channel = 1\n",
- "\n",
- " Total number of users for 5 channel = 11\n",
- "\n",
- " Total number of users for 10 channel = 40\n",
- "\n",
- " Total number of users for 20 channel = 111\n",
- "\n",
- " Total number of users for 100 channel = 809\n"
- ]
- }
- ],
- "source": [
- "# To find number of users for Number of channels (C) a)C=1 b)C=5 c)C=10 d)C=20 e)C=100\n",
- "\n",
- "# Given data\n",
- "GOS=0.005# #G rade of Service\n",
- "Au=0.1# # Traffic intensity per user\n",
- "\n",
- "# a)To find number of users for C=1\n",
- "C1=1# # Number of channels\n",
- "A1=0.005# # Total traffic intensity from Erlangs B chart\n",
- "U1=(A1/Au)# # Number of users\n",
- "U1=1# # Since one user could be supported on one channel\n",
- "\n",
- "# b)To find number of users for C=5\n",
- "C2=5# # Number of channels\n",
- "A2=1.13# # Total traffic intensity from Erlangs B chart\n",
- "U2=round(A2/Au)# # Number of users\n",
- "\n",
- "# c)To find number of users for C=10\n",
- "C3=10# # Number of channels\n",
- "A3=3.96# # Total traffic intensity from Erlangs B chart\n",
- "U3=round(A3/Au)# # Number of users\n",
- "\n",
- "# Answer is varrying due to round off error\n",
- "\n",
- "# d)To find number of users for C=20\n",
- "C4=20# # Number of channels\n",
- "A4=11.10# # Total traffic intensity from Erlangs B chart\n",
- "U4=round(A4/Au)# # Number of users\n",
- "\n",
- "# Answer is varrying due to round off error\n",
- "\n",
- "# e)To find number of users for C=100\n",
- "C5=100# # Number of channels\n",
- "A5=80.9# # Total traffic intensity from Erlangs B chart\n",
- "U5=round(A5/Au)# # Number of users\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Total number of users for 1 channel = %0.0f\"%(U1)\n",
- "print \"\\n Total number of users for 5 channel = %0.0f\"%(U2)\n",
- "print \"\\n Total number of users for 10 channel = %0.0f\"%(U3)\n",
- "print \"\\n Total number of users for 20 channel = %0.0f\"%(U4)\n",
- "print \"\\n Total number of users for 100 channel = %0.0f\"%(U5)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.5 Page No.83"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Total number of users in system A = 47280\n",
- "\n",
- " The percentage market penetration of system A = 2.36\n",
- "\n",
- " \n",
- " Total number of users in system B = 44100\n",
- "\n",
- " The percentage market penetration of system B = 2.205\n",
- "\n",
- " \n",
- " Total number of users in system C = 43120\n",
- "\n",
- " The percentage market penetration of system C = 2.156\n",
- "\n",
- " \n",
- " Total number of users in all 3 systems = 134500\n",
- "\n",
- " The combined Market penetration percentage of all systems = 6.725\n"
- ]
- }
- ],
- "source": [
- "from __future__ import division\n",
- "# To find number of users for a)system A b)system B c)system C\n",
- "\n",
- "# Given data\n",
- "GOS=0.02# # Grade of Service (Probability of bloacking)\n",
- "lamda=2# # Average calls per hour\n",
- "H=(3/60)# # Call duration in seconds\n",
- "\n",
- "Au=lamda*H# # Traffic intensity per user\n",
- "\n",
- "# a)To find number of users for System A\n",
- "C1=19# # Number of channels used\n",
- "A1=12# # Traffic intensity from Erlang B chart\n",
- "U1=round(A1/Au)# # Number of users per cell\n",
- "cells1=394\n",
- "TU1=U1*cells1# # Total number of users\n",
- "MP1=TU1/(2*10**6)*100# # Market penetration percentage\n",
- "\n",
- "# b)To find number of users for System B\n",
- "C2=57# # No. of channels used\n",
- "A2=45# # Traffic intensity from Erlang B chart\n",
- "U2=round(A2/Au)# # Number of users per cell\n",
- "cells2=98\n",
- "TU2=U2*cells2# # Total no. of users\n",
- "MP2=TU2/(2*10**6)*100# # Market penetration percentage\n",
- "\n",
- "# c)To find number of users for System C\n",
- "C3=100# # Number of channels used\n",
- "A3=88# # traffic intensity from Erlang B chart\n",
- "U3=round(A3/Au)# # Number of users per cell\n",
- "cells3=49\n",
- "TU3=U3*cells3# # Total no. of users\n",
- "MP3=TU3/(2*10**6)*100# # Market penetration percentage\n",
- "\n",
- "TU=TU1+TU2+TU3# # Total number of users in all 3 systems\n",
- "MP=TU/(2*10**6)*100# # Combined Market penetration percentage\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Total number of users in system A = %0.0f\"%(TU1)\n",
- "print \"\\n The percentage market penetration of system A = %0.2f\"%(MP1)\n",
- "print \"\\n \\n Total number of users in system B = %0.0f\"%(TU2)\n",
- "print \"\\n The percentage market penetration of system B = %0.3f\"%(MP2)\n",
- "print \"\\n \\n Total number of users in system C = %0.0f\"%(TU3)\n",
- "print \"\\n The percentage market penetration of system C = %0.3f\"%(MP3)\n",
- "print \"\\n \\n Total number of users in all 3 systems = %0.0f\"%(TU)\n",
- "print \"\\n The combined Market penetration percentage of all systems = %0.3f\"%(MP)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.6 Page No.84"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Number of cells in given system = 31 cells\n",
- "\n",
- " \n",
- " Number of channels per cell in given system = 95 channels/cell\n",
- "\n",
- " \n",
- " Traffic intensity in given system = 84 Erlangs/cell\n",
- "\n",
- " \n",
- " Maximum carried traffic in given system = 2604 Erlangs\n",
- "\n",
- " \n",
- " Total number of users = 86800 users\n",
- "\n",
- " \n",
- " Number of mobiles per unique channel = 130 mobiles/channel\n",
- "\n",
- " \n",
- " Theoretically maximum number of served mobiles is the number of available channels in the system.\n",
- "\n",
- " Theoretical Maximum number of users could be served at one time = 2945 users\n",
- "It is 3.4% of customer base.\n"
- ]
- }
- ],
- "source": [
- "# To find a)Number of cells in given area b)Number of channels/cell c)Traffic intensity per cell d)Maximum carried traffic e)Total number of users for 2% GOS f) Number of mobiles per unique channel g)Maximum number of users could be served at one time\n",
- "\n",
- "# Given data\n",
- "Area=1300# # Total coverage area in m**2\n",
- "R=4# # Radius of cell in m\n",
- "N=7# # Frequecy reuse factor\n",
- "S=40*10**6# # Allocated spectrum in Hz\n",
- "Ch=60*10**3# # Channel width in Hz\n",
- "\n",
- "# a)Number of cells\n",
- "CA=2.5981*R**2# # Area of hexagonal cell in m**2\n",
- "Nc=round(Area/CA)# # Number of cells\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Number of cells in given system = %0.0f cells\"%(Nc)\n",
- "\n",
- "# b)Number of channels/cell\n",
- "C1=round(S/(Ch*N))# # Number of channels\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Number of channels per cell in given system = %0.0f channels/cell\"%(C1)\n",
- "\n",
- "# c) Traffic intensity per cell\n",
- "C1=95# # Number of channels from b)\n",
- "GOS=0.02# # Grade of service\n",
- "A=84# # Traffic intensity from Erlang B chart\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Traffic intensity in given system = %0.0f Erlangs/cell\"%(A)\n",
- "\n",
- "# d)Maximum carried traffic\n",
- "traffic=Nc*A# # Maximum carried traffic\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Maximum carried traffic in given system = %0.0f Erlangs\"%(traffic)\n",
- "\n",
- "# e)Total number of users for 2% GOS \n",
- "trafficperuser=0.03# # Given traffic per user\n",
- "U=traffic/trafficperuser# # Total number of users\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Total number of users = %0.0f users\"%(U)\n",
- "\n",
- "# f) Number of mobiles per unique channel\n",
- "C=666# # Number of channels\n",
- "mobilesperchannel=round(U/C)# # Number of mobiles per unique channel\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Number of mobiles per unique channel = %0.0f mobiles/channel\"%(mobilesperchannel)\n",
- "\n",
- "# g)Maximum number of users could be served at one time\n",
- "print \"\\n \\n Theoretically maximum number of served mobiles is the number of available channels in the system.\"\n",
- "C=C1*Nc# # Maximum number of users could be served at one time\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Theoretical Maximum number of users could be served at one time = %0.0f users\"%(C)\n",
- "print \"It is 3.4% of customer base.\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.7 Page 85"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Number of users per square km in given system = 62 users/sq km\n",
- "\n",
- " \n",
- " Percentage of probability that delayed call have to wait longer than t=10 sec = 56.29 percent\n",
- "\n",
- " \n",
- " Percentage of probability that call is delayed more than 10 sec = 2.81 percent\n"
- ]
- }
- ],
- "source": [
- "from math import exp\n",
- "# To find a)number of users per square km b)probability that delayed call have to wait longer than t=10sec c)probability that call is delayed more than 10 sec\n",
- "\n",
- "# Given data\n",
- "R=1.387# # Radius of cell in m\n",
- "Area=2.598*R**2# # Area of hexagonal cell in m**2\n",
- "cellpercluster=4# # Number of cells/cluster\n",
- "channels=60# # Number of channels\n",
- "\n",
- "channelspercell=channels/cellpercluster# # Number of channels per cell\n",
- "\n",
- "# a)To find number of users per square km\n",
- "A=0.029# # Traffic intensity per user\n",
- "delayprob=0.05# # Grade of service\n",
- "traffic=9# # Traffic intensity from Erlang chart C\n",
- "U1=traffic/A# # Total number of users in 5sq.km.\n",
- "U=round(U1/Area)# # Number of users per square km\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Number of users per square km in given system = %0.0f users/sq km\"%(U)\n",
- "\n",
- "# b)To find the probability that delayed call have to wait longer than t=10sec\n",
- "lamda=1# # Holding time\n",
- "H1=A/lamda# # Duration of call\n",
- "H=H1*3600# # Duration of call in second\n",
- "t=10\n",
- "Pr=exp(-(channelspercell-traffic)*t/H)*100# # probability that delayed call have to wait longer than t=10sec.\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Percentage of probability that delayed call have to wait longer than t=10 sec = %0.2f percent\"%(Pr)\n",
- "\n",
- "# c)To find the probability that call is delayed more than 10 sec\n",
- "Pr10=delayprob*Pr# # probability that call is delayed more than 10 sec\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n \\n Percentage of probability that call is delayed more than 10 sec = %0.2f percent\"%(Pr10)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.8 Page 89"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Number of channels without use of microcell = 300 channels\n",
- "\n",
- " \n",
- " Number of channels with the use of lettered microcells = 660 channels\n",
- "\n",
- " \n",
- " Number of channels if all base stations are replaced by microcells = 1020 channels\n"
- ]
- }
- ],
- "source": [
- "# To find number of channels in 3 km by 3 km square centered around A in Figure 3.9 for a)without use of microcell b)with the use of lettered microcells c)all base stations are replaced by microcells\n",
- "\n",
- "# Given data\n",
- "R=1# # Cell radius in km\n",
- "r=0.5# # Micro-cell radius in km\n",
- "Nc=60# # Number of channels in base station\n",
- "\n",
- "# a)To find number of channels without use of microcell\n",
- "Nb1=5# # Number of base stations in given area\n",
- "N1=Nb1*Nc# # Number of channels without use of microcell\n",
- "\n",
- "# b)To find number of channels with the use of lettered microcells\n",
- "Nb2=6# # Number of lettered microcells\n",
- "Nb2=Nb1+Nb2# # Total number of base stations in given area\n",
- "N2=Nb2*Nc# # Number of channels with the use of lettered microcells\n",
- "\n",
- "# c)To find number of channels if all base stations are replaced by microcells\n",
- "Nb3=12# # Number of all the microcells\n",
- "Nb3=Nb1+Nb3# # Total number of base stations in given area\n",
- "N3=Nb3*Nc# # Number of channels if all base stations are replaced by microcells\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Number of channels without use of microcell = %0.0f channels\"%(N1)\n",
- "print \"\\n \\n Number of channels with the use of lettered microcells = %0.0f channels\"%(N2)\n",
- "print \"\\n \\n Number of channels if all base stations are replaced by microcells = %0.0f channels\"%(N3)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Example 3.9 Page 92"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "collapsed": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Cell capacity of unsectored system = 1326 calls/hour\n",
- "\n",
- " \n",
- " Cell capacity of 120 degree sectored system = 1008 calls/hour\n",
- "\n",
- " \n",
- " Decrease in cell capacity in 120 degree sectored system = 0 percent\n"
- ]
- }
- ],
- "source": [
- "# To analyze trunking efficiency capacity of sectoring and unsectoring\n",
- "\n",
- "# Given data\n",
- "H=2/60# # Average call duration in hour\n",
- "GOS=0.01# # Probability of blocking\n",
- "\n",
- "# Unsectored system\n",
- "C1=57# # Number of traffic channels per cell in unsectored system\n",
- "A=44.2# # Carried traffic in unsectored system\n",
- "calls1=1326# # Number of calls per hour in unsectored system from Erlangs B table\n",
- "\n",
- "# 120 degree sectored system\n",
- "C2=C1/3# # Number of traffic channels per antenna sector in 120 degree sectored system\n",
- "calls2=336# # Number of calls per hour in 120 degree sectored system from Erlangs B table\n",
- "Ns1=3# # Number of sectors\n",
- "capacity=Ns1*calls2# # Cell capacity or number of calls handled by system per hour\n",
- "\n",
- "dif=calls1-capacity# # decrease in cell capacity in 120 degree sectored system\n",
- "percentdif=(dif/calls1)*100# # decrease in cell capacity in 120 degree sectored system in percentage\n",
- "\n",
- "# Displaying the result in command window\n",
- "print \"\\n Cell capacity of unsectored system = %0.0f calls/hour\"%(calls1)\n",
- "print \"\\n \\n Cell capacity of 120 degree sectored system = %0.0f calls/hour\"%(capacity)\n",
- "print \"\\n \\n Decrease in cell capacity in 120 degree sectored system = %0.0f percent\"%(percentdif)"
- ]
- }
- ],
- "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
-}